【问题标题】:What will happen if the number of threads in a warp are less than 32?如果 warp 中的线程数少于 32 会发生什么?
【发布时间】:2016-10-18 16:01:13
【问题描述】:

我读到经线中的线程数可以是 32 或更多。这是为什么?如果数量少于 32 个线程,这是否意味着资源未得到充分利用,或者我们将无法容忍内存延迟?

【问题讨论】:

  • 我不明白你的问题。在所有受支持的 CUDA 硬件上,过去和现在,每个 warp 的线程数正好是 32。

标签: cuda gpgpu nvidia


【解决方案1】:

您的问题需要澄清 - 也许您混淆了 CUDA“扭曲”和“块”的概念?

关于扭曲,重要的是要记住扭曲及其大小是硬件的属性。 Warp 是一组硬件线程,它们每个周期都执行相同的指令(这些天)。换句话说,大小宽度表示 SIMD 样式的执行宽度,这是程序员无法更改的。在 CUDA 中,您启动线程块,这些线程块在映射到硬件时会以扭曲大小的束的形式执行。如果你开始块的线程数不能被warp大小整除,硬件将简单地执行最后一个warp,其中一些线程“被屏蔽”(即它们确实必须执行,但对状态没有任何影响GPU/内存)。

有关更多详细信息,我建议您仔细阅读hardware and execution-related sections of the CUDA programming guide

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多