gpt4 book ai didi

cuda - 了解流式多处理器 (SM) 和流式处理器 (SP)

转载 作者:行者123 更新时间:2023-12-01 08:35:07 25 4
gpt4 key购买 nike

我试图了解 GPU 的基本架构。我已经浏览了很多 Material ,包括这个very good SO answer .但我仍然很困惑,无法得到一张好的照片。

我的理解:

  • 一个 GPU 包含两个或多个流式多处理器 (SM),具体取决于计算能力值。
  • 每个 SM 由流处理器 (SP) 组成,它们实际上负责指令的执行。
  • 每个块都由 SP 以扭曲(32 个线程)的形式处理。
  • 每个块都可以访问共享内存。不同的块无法访问其他块的共享内存的数据。

  • 困惑:

    在下图中,我无法理解哪个是流式多处理器 (SM),哪个是 SP。我认为 Multiprocessor-1 代表单个 SM,而 Processor-1(最多 M)代表单个 SP。但我不确定这一点,因为我可以看到每个处理器(蓝色)都提供了一个寄存器,但据我所知,一个寄存器提供给线程单元。

    如果您能提供一些关于此图像或任何其他图像的基本概述,这对我将非常有帮助。

    image

    最佳答案

    首先,对问题的“我的理解”部分发表一些评论:

  • SM 的数量取决于 GPU 型号 - 低端型号只有一个 SM,而高端型号多达 30 个!计算能力定义了这些 SM 的能力,而不是一个 GPU 中有多少个 SM。
  • 每个线程块都分配给一个 SM,而不是 SP。在给定的 SM 上可以运行多个线程块,受其资源限制的约束。

  • 上图:
  • 橙色框确实是 SM,就像它们被标记一样。每个 SM 都有共享内存池,在这个 SM 上运行的所有线程块之间划分。
  • 蓝框是 SP。由于 SP 是一个标量 channel ,它运行一个线程,并且每个线程都提供有自己的一组寄存器,同样,如图所示。

  • 解决后续问题:
  • 每个 SM 可以有多个常驻线程块。驻留在 SM 上的最大线程块数由计算能力决定。当受寄存器数量或每个线程块消耗的共享内存量限制时,实现数量可能低于最大值。
  • 然后,SM 将调度来自所有驻留在其上的经线的指令,从具有准备执行指令的经线中挑选——这些经线可能来自驻留在该 SM 上的任何线程块。您通常希望有许多经线驻留,以便在任何给定时刻,SP 都可以忙于运行来自准备好的任何经线的指令。
  • 每个 SM 的核心数不是一个非常有用的指标,此时您无需过多考虑。
  • 关于cuda - 了解流式多处理器 (SM) 和流式处理器 (SP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32226993/

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