0
我預期從0.0看號碼999.0而是得到一些很奇怪,長數一些指數下面的代碼:正確計算gridDim用於CUDA內核
__global__ void kernel(double *res, int N)
{
int i = (gridDim.y*blockIdx.y+
blockIdx.x)*blockDim.x*blockDim.y+
blockDim.y*threadIdx.y+threadIdx.x;
if(i<N) res[i] = i;
}
void callGPU(int N)
{
dim3 dimBlock(8, 8);
dim3 dimGrid(2, 8);
...
kernel<<<dimGrid, dimBlock>>>(res, N);
...
}
即使我改變dimGrid到(8,2)和(1,16),但是如果我將gridDim更改爲(16,1),那麼我會得到正確的索引。你可以展示如何正確計算gridDim的這種情況?如果可能的話任意N.很多謝謝!