【问题标题】:stream multiprocessor, core per streamprocessor in cuda流多处理器,cuda中每个流处理器的核心
【发布时间】:2014-04-22 06:15:07
【问题描述】:

不同的nvidia显卡有不同的规格,流式多处理器的数量不同,每个流处理器的核数也不同。

线程块根据设备的容量分配给单个处理器,例如 1 块 32 经线或 2 块 16 经线。

但我无法理解每个流处理器中的核心数量。 每个流处理器中拥有更多内核的设备有什么意义???

我想我们需要更好地利用设备属性进行更好的优化

关于流处理器和每个流处理器的核心,cuda 程序在设备中的实际流动情况如何?/

【问题讨论】:

    标签: optimization cuda


    【解决方案1】:

    每个流处理器中具有更多内核的设备有什么意义???

    每个 SM 的内核数大致转换为在任何给定时钟周期内可以处理多少条扭曲指令。单个 warp 指令可以在任何给定的时钟周期内处理,但需要 32 个内核才能完成(并且可能需要多个时钟周期才能完成,具体取决于指令)。具有 32 个“核心”的 cc2.0 fermi SM 平均每个时钟最多可以退出 1 条指令(实际上是每 2 个时钟 2 条指令)。具有 192 个内核的 Kepler SMX 每个时钟可以退出 4 条或更多指令。如需更准确的答案,请参阅编程指南的计算能力架构部分,并注意每个计算能力都有一个部分1.02.03.0。

    关于流处理器和每个流处理器的核心,cuda 程序实际上是如何在设备中流动的??/

    这个问题已经在 CUDA 标签上回答过很多次了。网格中与内核启动相关的每个线程块都分配给一个 SM(当 SM 有空闲槽时)。然后 SM 将线程块“解包”到 warp 中,并在 SM 内部资源(例如“核心”和特殊功能单元)上调度 warp 指令,因为这些资源变得可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      相关资源
      最近更新 更多