我只需要澄清一些非常基本的东西 - 大多数计算示例都使用如下内容:
ID = blockIdx.x*blockDim.x+threadIdx.x;
// ... 然后对数组 [ID] 进行计算
我的问题是,如果我想在一个块中使用最大线程数(1024),那么我真的需要考虑所有(、、、)来“构造”我的“threadID threadIdx.x
”threadIdx.y
吗threadIdx.z
?
如果是这样,将其散列为单个值的推荐方法是什么?
如果不是这样,为什么有人可以在图像处理相关操作中以类似的方式使用它,例如这篇文章:
https://stackoverflow.com/questions/11503406/cuda-addressing-a-matrix
和怎么样,在这方面他们blockidx.x
和blockidx.y
是一样的吗?threaIdx