Когда я пытаюсь скомпилировать мой файл .cu, используя nvcc -c, возникает следующая ошибка:
mag_cuda.cu (213): ошибка: выражение должно иметь арифметический или перечислимый тип
Рассматриваемая строка, если часть функции, которая будет выполняться графическим процессором, приведена здесь:
__global__// all kernels are preceded by __global__ keyword
void sum_all_indv_B(int No_poles, double *B_x, double *B_y, double
*B_z, double *indv_B[][3])
{
// determine thread ID within block
int index = blockIdx.x * blockDim.x + threadIdx.x;
// determine stride of loop (more elements in array than threads)
int stride = blockDim.x * gridDim.x;
//loop over all the poles
for(int counter_1 = index; counter_1 < No_poles; counter_1+=stride)
{
//sum the B field contribution from all poles in x,y and z directions
B_x += indv_B[counter_1][0];
B_y += indv_B[counter_1][1];
B_z += indv_B[counter_1][2];
//Divide total by number of Poles
B_x = B_x/No_poles;
B_y = B_y/No_poles;
B_z = B_z/No_poles;
}
}
Ошибка возникает при "B_x + = indv_B [counter_1] [0];", "B_x = B_x / No_poles;"и подобные линии.
Любые идеи, так как я не слишком разбираюсь в своих указателях