gpt4 book ai didi

cuda - 为什么GPU的SM中有两个warp调度器?

转载 作者:行者123 更新时间:2023-12-04 19:44:30 25 4
gpt4 key购买 nike

我阅读了 NVIDIA Fermi 白皮书并在计算 SP 内核、调度程序的数量时感到困惑。

根据白皮书,在每个SM中,有两个warp调度器和两个指令调度单元,允许两个warp同时发布和执行。一个SM有32个SP核,每个核都有一个全流水线的ALU和FPU,用于执行一个线程的指令

众所周知,一个warp由32个线程组成,如果我们每个周期只发出一个warp,这意味着这个warp中的所有线程都会占用所有SP核并在一个周期内完成执行(假设没有任何停顿)。

然而,NVIDIA 设计了双调度程序,它选择两个扭曲,并从每个扭曲向一组十六个内核、十六个加载/存储单元或四个 SFU 发出一条指令。

英伟达表示,这种设计可带来最高的硬件性能。也许硬件性能的峰值来自于不同指令的交错执行,充分利用硬件资源。

我的问题如下(假设没有内存停顿并且所有操作数都可用):

  • 每个 warp 是否需要两个周期才能完成执行,并且所有 32 个 SP 内核针对每个 warp 调度程序分为两组?
  • ld/st 和 SFU 单元由所有经线共享(对于来自双调度程序的经线看起来是统一的)?
  • 如果一个经线被分成两部分,先安排哪一部分?有调度程序吗?或者只是随机选择一个部分来执行。
  • 这种设计的优势是什么?只是最大限度地利用硬件?
  • 最佳答案

    Does each warp need two cycles to finish execution and all 32 SP cores are divided into two groups for each warp scheduler?



    是的。与后代不同,费米有一个 "hotclock" (着色器时钟)以“核心”时钟的 2 倍运行。每个单精度浮点指令(例如)发出超过 2 个“热时钟”,但发送到同一组 16 个 SP 内核。净效果是每个调度程序每个“核心”时钟一个问题。

    the ld/st and SFU units are shared by all the warps(looks like uniform for warps from dual schedulers)?



    不是很明白这个问题。所有执行资源都可共享/可用于来自任一调度程序的指令。

    if a warp is divided into two parts, which part is scheduled first? is there any scheduler? or just random selects one part to execute.



    为什么这很重要?机器的行为就像在一个核心时钟中安排了两个完整的扭曲指令,即“双重问题”。无论如何,您无法看到 hotclock 级别发生的任何事情。

    what is the advantage of this design? just maximize the utilization of hardware?



    是的,正如费米白皮书中所述:

    " Using this elegant model of dual-issue, Fermi achieves near peak hardware performance. "

    关于cuda - 为什么GPU的SM中有两个warp调度器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030481/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com