根据http://en.wikipedia.org/wiki/CUDA , block 的最大 x 或 y 尺寸 1024 block 的最大 z 维度 64
这是否意味着每个 block 可以有 1024 x 1024 x 64 个线程,或者一个 block 中最多可以有 1024+64 个线程?
最佳答案
最新编程指南的附录 G 中定义了限制,但答案是每 block 总计 512 或 1024 个线程,具体取决于您是否拥有 Fermi 还是较旧的卡。
对于费米来说
blockDim.x * blockDim.y * blockDim.z <= 1024
对于 GT200/G90/G80/Ion:
blockDim.x * blockDim.y * blockDim.z <= 512
请注意,其他资源限制(共享内存和寄存器)可能要求 block 大小小于限制,具体取决于代码复杂性。编程指南中也对此进行了详细讨论。
关于CUDA 2D、3D 线程 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7159083/