 void TrainModel(void);
 int ArgPos(char *, int , char **);
 
-__global__ void train_model_kernel(const long long *, const long long, const long long, struct vocab_word *, real *, real *, real *, Lock*);
+__global__ void train_model_kernel(const long long *, const long long, const long long, const struct vocab_word *, const real *, real *, real *, Lock*);
 __device__ long long get_fragment_begin(const long long *, const long long, const unsigned int);
 __device__ long long get_fragment_end(const long long *, const long long, const unsigned int);
     

}

__global__ void train_model_kernel(const long long *cache, const long long cache_length, const long long layer1_size,
                                   struct vocab_word *vocab, real *expTable, real *syn0, real *syn1,
                                   Lock *lock)
{
    const unsigned int thread_idx = (blockIdx.x * blockDim.x) + threadIdx.x;

int *table;

__device__ long long word_count_actual = 0;
__device__ real alpha = 0.25;
__constant__ long long gpu_train_words = 0, iter = 5;
__constant__ real starting_alpha, sample = 1e-3;
__constant__ int window;
