cuda - 未满扭曲中的事件线程数?

标签 cuda nvidia

我正在测试CUDA占用设备,我故意尝试了一个 block 有一个线程。电子表格给了我

Active Threads per Multiprocessor:32
Active Warps per Multiprocessor:1

我明白为什么warps的数量是1,但期望每个SM的事件线程数量为1。这是否意味着,将生成扭曲,其中 31 个结果不会未提交。我怀疑情况确实如此,但想确认这一点。

干杯

最佳答案

当今 GPU 中调度的基本单位是warp,而不是线程。因此,无论您只指定一个线程还是全部指定 32 个线程,warp 都会以相同的方式用于调度目的。

在这种情况下,我想说“事件线程”是指与事件扭曲相关的所有线程。其中一些线程可能不执行任何操作,具体取决于您的 block 配置和/或实际线程代码,但尽管如此,这些线程仍参与计划的扭曲。

是的,如果您只想运行一个线程,它就需要整个扭曲。

这就是网格配置在任一位置都有 1 的原因之一:

my_kernel<<<N, 1>>>();

my_kernel<<<1,N>>>(); 

GPU 资源的使用效率将会很低。

关于cuda - 未满扭曲中的事件线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21995907/

相关文章:

cuda - 跨 CUDA 内核的 L1 缓存持久性

cuda - CUDA 内存副本和 cuFFT 的异步执行

cuda - CUDA 中的非方矩阵乘法

Ubuntu 19.10 更新后停留在 Logo 启动屏幕,恢复模式也无法工作

Cuda Hello World 示例

compiler-errors - CUDA 在编译期间无法识别 nvcuda 命名空间

cuda - Tensorflow无法打开libcuda.so.1

c++ - 使用 twinview Ubuntu 12.04 c++ 在 2 个显示器上的全屏应用程序

java - Swing 渲染在 JDK 1.8 中出现损坏,在 JDK 1.7 中正确

c++ - 在 nVidia Optimus 中以编程方式选择集成显卡