エラーthatsのコードに「という表現は、整数または列挙型でなければならない」:エラーthatsのコードに「という表現は、整数または列挙型でなければならない」:
__global__ void VectorKernel(float *a, float *b, float *c, int n)
{
int i = threadIdx.x;
float y = 0, z = 0;
if (i < n)
y = (b-a)/n;
for (float j = y; j <= n ; j++) {
z = (((j+y) - j)/6) * function(j) + 4 * (function((j + (y+j))/2)) + function(y+j);
c = c + z;
}
}
エラーがストレッチで、「Z」に起こる:
c = c + z;
(私はCUDAプログラミングの初心者です)
'c'は**ポインタ**です。ポインターに 'float'量の' z'を加えてはいけません。多分あなたは '* c = * c + z;'を意味していたでしょう。これはCプログラミング上の問題であり、CUDA特有の問題ではありません。 'b'と' a'もポインタなので、 '(b-a)'のようなものは本当にあなたが望むものではないようです。 –
ありがとうございます! 変数をGPUに移動する部分を歳差運動のために投稿しません。 –