parallel-processing - CUDA 并行 block 的最佳数量

标签 parallel-processing cuda gpu gpgpu

如果每个 block 中的线程数已经大于 CUDA 核心数,那么与一次启动一个 block 相比,同时启动 block 网格是否有任何性能优势?

最佳答案

我认为有;一个线程 block 被分配给一个流式多处理器 (SM),SM 进一步将每个 block 的线程划分为 32 个线程的 warp(较新的体系结构可以处理更大的 warp),这些线程被安排按顺序执行(或多或少)。考虑到这一点,将每个计算分成 block 以便它们占用尽可能多的 SM 会更快。构建卡支持的每个 warp 线程的倍数的 block 也意味着完整(对于 SM 使用 32 线程 warp 的情况,32 或 64 个线程而不是 40 个线程的 block )。

关于parallel-processing - CUDA 并行 block 的最佳数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865145/

相关文章:

c# - 并行计算多个值。等待所有线程完成

c++ - 在cuda中定义模板化常量变量

javascript - 如何使用 Three.js 检测移动设备上缓慢的 GPU?

python - TensorFlow 从多个 GPU 中选择要使用的 GPU

opencl - 内存分配 Nvidia vs AMD

multithreading - 有序队列的内存可见性

Java拒绝访问属性权限

c# - picbox.BorderStyle = BorderStyle.FixedSingle | picbox.BorderStyle = BorderStyle.FixedSingle |跨线程操作无效

visual-studio - 关于CUDA安装说明的困惑(microsoft Visual Studio到底是什么?)

cuda - 安装 CUDA 5.0 RC 示例