CUDA 2D、3D 线程 block

标签 cuda

根据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/

相关文章:

c++ - 在 R 中调用 GPU 函数

无法在 CUDA 中返回指针

visual-c++ - 链接错误 OpenCV 2.4+CUDA windows 7(x64) 命令行

c++ - 将内核函数的参数作为 C++ 结构传递?

c++ - 生成 AES (AES-256) 查找表

c++ - 计算机视觉算法的 CUDA 性能

转置时澄清 CUBLAS 中的主要维度

cuda文件错误 "Invalid device function"

CUDA全局内存拷贝

c++ - 访问cuda内核中类的私有(private)成员