【问题标题】:Max Warps on a GK110 GPUGK110 GPU 上的最大扭曲
【发布时间】:2014-07-18 02:08:51
【问题描述】:

根据GK110 whitepaper,每个SMX最多有64个warp,最大线程容量为2048个线程。

我的问题是:每个 SMX 是否始终以 64 的最大驻留扭曲数运行(假设没有线程分歧且块大小是 64 的倍数)?

我有理由相信,如果 SMX 上的线程数

(我相信这是因为当运行相同代码时,1 个块上的线程数为 1024 时,我的时钟频率相似的 Fermi 卡显示出与我的 Kepler 卡相似的速度)

【问题讨论】:

    标签: cuda kepler


    【解决方案1】:

    我的问题是:每个 SMX 是否总是以 64 的最大扭曲率运行(假设没有线程分歧并且块大小是 64 的倍数)?

    每个 SMX 64 个 warp 是可用并准备好安排的最大 warp 数。这并不意味着所有 64 个 warp 都同时执行。 GK110 SMX 有 4 个 warp 调度器,每个调度器可以从一个 warp 调度 1 或 2 条指令。因此,在任何指令周期/发出槽中,最多将“调度” 4 个扭曲以使其指令在该槽中开始。

    由于线程被安排在 32 个称为 warp 的块中,因此如果您的运行线程少于 1024 个,那么您的运行线程也可能少于 32 个。

    fermi 和 kepler 都限制为每个块 1024 个线程。因此,通过在给定的 SM/SMX 上同时打开多个线程块来实现每个 SM 1536 个线程的费米限制和每个 SMX 2048 个线程的开普勒限制。可调度的 warp 可以来自 SM/SMX 上的任何打开的线程块。

    【讨论】:

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