Эй
Я видел на сайте этот пример ядра
__global__ void loop1( int N, float alpha, float* x, float* y ) {
int i;
int i0 = blockIdx.x*blockDim.x + threadIdx.x;
for(i=i0;i<N;i+=blockDim.x*gridDim.x) {
y[i] = alpha*x[i] + y[i];
}
}
Для вычисления этой функции в C
for(i=0;i<N;i++) {
y[i] = alpha*x[i] + y[i];
}
Конечно, цикл for внутри ядра не нужен? и вы можете просто сделать y[i0] = alpha*x[i0] + y[i0]
и полностью удалить цикл for.
Мне просто любопытно, почему он там и какова его цель. Предполагается, что вызов ядра, такой как loop1<<<64,256>>>>
, предположительно gridDim.x = 1