2016-04-29 3 views
0

コードでの構造体の結果のcudaMemcpy配列:CUDA 6.5(キャップ​​1.1)「無効な引数」

Octree_t* tarr = (Octree*)malloc(nodes * sizeof(Octree_t)); 
//nodearray[2]->test = 42; 
for (int i = 0; i < cnodes; i++) 
{ 
    tarr[i] = *nodearray[i]; 
} 
//printf(" test: %d\n",tarr[2].test); //returns 42 

cudaError_t err; 
Octree_t*  gpu_nodearray; 

//allocate storage on gpu 
err = cudaMalloc(&gpu_nodearray, cnodes * sizeof(Octree_t) != cudaSuccess ); 
if (err != cudaSuccess) 
{ 
    printf("1: %s\n", cudaGetErrorString(err)); 
    return; 
} 
err = cudaMemcpy(gpu_nodearray, tarr, cnodes * sizeof(Octree_t), cudaMemcpyHostToDevice); 
if (err != cudaSuccess) 
{ 
    printf("3: %s\n", cudaGetErrorString(err)); 
    return; 
} 

それは罰金コンパイルが、私はそれを実行すると、それは「3:無効な引数」を返します。だから明らかに何かがcudaMempyに間違っています。私はすでにここで同様の記事を見て、私は間違いを見つけることができません。

ありがとうございました。 「cudaMalloc(..)!= cudaSuccess) 場合

答えて

0

ライン

err = cudaMalloc(&gpu_nodearray, cnodes * sizeof(Octree_t) != cudaSuccess ); 

err = cudaMalloc(&gpu_nodearray, cnodes * sizeof(Octree_t)); 
+0

うわーする必要があります...私は でcudaMallocを持っていましたそれから私はそれを変えました....まあ、それはプロを台無しにするかもしれない小さなことですgrammers day;)あなたのお返事ありがとうございます。 – mad1Z

+0

私たちすべてに起こります:-) – sitic