我正在使用 Cudafy 在 NVIDIA GPU 上进行一些计算。(Quadro K1100M 功能 3.0,如果重要的话)
我的问题是,当我使用以下
cudaGpu.Launch(new dim3(44,8,num), new dim(8, 8)).MyKernel...
当我在内核中使用它时,为什么 GThread 实例中的 z 索引总是为零?
int z = thread.blockIdx.z * thread.blockDim.z + thread.threadIdx.z;
此外,如果我必须做类似的事情
cudaGpu.Launch(new dim3(44,8,num), new dim(8, 8, num)).MyKernel...
z 确实给出了不同的索引,但是由于每个块的线程数的限制, num 不能很大。关于如何解决这个问题的任何建议?
编辑
另一种表达方式。当块大小仅为 2D 时,我可以在内核中使用 thread.z(用于任何有用的东西)吗?