嵌套循环到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) >>> (...);