嵌套循环到CUDA
我想将我的c代码移植到CUDA。 主要计算部分包含3个嵌套循环:
for (int i=0; i< Nx;i++){ for (int j=0;j<Ncontains[i];j++){ for (int k=0;k< totalVoxels;k++){ ....... } } }
如何将其转换为我的CUDA内核? 有两个for循环我可以做类似的事情:
int n= blockIdy.y * blockDim.y + threadIdx.y; int i= blockIdx.x * blockDim.x + threadIdx.x;
但是我怎么能最初开始运行呢?
您可以通过多种方式实现目标,其中之一是:
for (int i=blockIdx.x; i< Nx; i += gridDim.x){ for (int j=threadIdx.y; j
以上你会打电话:
// nx,ny block dimensions kernel <<< dim3(nBlocks), dim3(nx, ny) >>> (...);