如何设计GPU芯片
Chapter 9 Power Energy and Thermal Management

第 9 章: 功率、能源和热量管理

随着图形处理单元 (GPU) 进化成为高度并行、可编程的加速器,能够提供巨大的计算吞吐量,管理它们的功耗和热量输出变得日益重要。高功耗不仅会导致能源成本增加和移动设备电池寿命缩短,还需要更先进的冷却解决方案和包装技术来维持可靠的运行。在本章中,我们将探讨 GPU 功耗的来源、时钟和电源门控技术、动态电压和频率缩放 (DVFS)、以及各种 GPU 冷却解决方案和包装方法。

GPU 功耗的来源

为了有效管理 GPU 的功耗,了解主要的功率耗散来源非常重要。GPU 功耗可大致分为动态功耗和静态功耗。

动态功耗

动态功耗是 GPU 在积极处理数据和执行指令时消耗的功率。GPU 的动态功耗可以用以下公式表示:

P_dynamic = α * C * V^2 * f

其中:

  • α 是活动因子,代表正在切换的晶体管比例
  • C 是切换晶体管的总电容
  • V 是供电电压
  • f 是工作频率

从该公式可以看出,动态功耗与供电电压的平方成正比,与工作频率成线性正比。因此,降低电压或频率都会导致动态功耗显著降低。

活动因子 α 取决于正在执行的特定工作负载以及各种 GPU 组件的利用率。例如,保持 GPU 内核繁忙的计算密集型工作负载会有较高的活动因子,而消耗更多时间等待内存的内存限制型工作负载会有较低的活动因子。### 静态功耗

静态功耗,也称为漏电功耗,是即使 GPU 处于空闲状态,也仍然消耗的功耗。静态功耗主要是由于晶体管中的漏电电流造成的,随着晶体管尺寸的不断缩小,这一部分功耗正变得愈加重要。

静态功耗可以使用以下公式来表示:

P_static = I_leakage * V

其中:

  • I_leakage 是总漏电电流
  • V 是供电电压

漏电电流受到诸如晶体管尺寸、阈值电压和温度等因素的影响。随着晶体管越来越小,漏电电流会增加,导致静态功耗变高。此外,温度升高也会导致漏电电流增加,形成一个正反馈循环,如果没有得到适当管理,可能会导致热失控。

图 9.1 说明了一个典型 GPU 中动态功耗和静态功耗的占比情况。

        动态功耗 (70%)
       /                  \
      /                    \
     /                      \
    /                        \
   /                          \
  /                            \
 /                              \
/                                \
|----------------------------------|
|                                  |
|         静态功耗 (30%)         |
|                                  |
|----------------------------------|

图 9.1: 一个典型 GPU 中动态功耗和静态功耗的占比情况。

时钟门控和电源门控技术

时钟门控和电源门控是两种广泛使用的降低 GPU 功耗的技术,它们通过选择性地关闭未使用或空闲的组件来实现。

时钟门控

时钟门控是一种通过关闭特定组件或功能单元的时钟信号来降低功耗的技术。通过阻止时钟信号传递到空闲的组件上,时钟门控消除了动态文件中有关不必要的晶体管开关所带来的功耗的内容。

图9.2 阐述了时钟门控的概念。

           时钟
             |
             |
             |
             |
             |
         时钟门控
         使能信号
             |
             |
             |
             |
             |
        +---------+
        |         |
        |  门控的 |
        |  时钟   |
        |         |
        +---------+
             |
             |
             |
             |
        功能单元

图9.2: 时钟门控概念。

在这个例子中, 时钟信号由一个使能信号进行门控, 该使能信号由GPU的电源管理单元控制。当功能单元不需要使用时, 使能信号被取消, 阻止时钟信号进入功能单元, 从而消除了其动态功耗。

时钟门控可以应用在从个别功能单元到整个GPU内核甚至更大的子系统等不同粒度上。细粒度的时钟门控提供了更精确的功耗控制, 但需要更复杂的控制逻辑, 可能会引入额外的开销。而粗粒度的时钟门控实现起来较为简单, 但可能导致功耗节省不太理想。

电源门控

电源门控是一种技术, 它可以在某个组件或功能单元不使用时完全断开其电源供应。通过切断电源, 电源门控消除了该组件的动态和静态功耗。

图9.3 阐述了电源门控的概念。

           电源供应
                |
                |
            电源开关
                |
                |
        +--------------+
        |              |
        |  功能        |
        |  单元        |
        |              |
        +--------------+

图9.3: 电源门控概念。

在这个例子中, 一个电源开关用于控制功能单元的电源供应。当功能单元不需要使用时, 电源开关断开电源,下面是该 markdown 文件的中文翻译。对于代码部分,我只翻译了注释,而没有翻译代码本身。

电源开关被设置在电源供应装置和功能单元之间。当功能单元不需要使用时,电源开关被关闭,完全断开电源供应装置与功能单元的连接,消除了动态和静态功耗。

断电功能可以应用于不同粒度的范围,从单个功能单元到整个 GPU 内核,甚至更大的子系统。细粒度的断电功能提供了更精确的功耗控制,但需要更复杂的控制逻辑,并可能带来额外的开销。相比之下,粗粒度的断电功能更简单实现,但可能会导致功耗节省效果不太理想。

实现断电功能需要仔细的设计考虑,例如:

  1. 断电控制逻辑:需要电路来确定何时打开和关闭断电功能,这取决于功能单元的活动情况。这种控制逻辑应该最小化断电对性能的影响。

  2. 状态保留:当一个功能单元被断电时,它的内部状态(如寄存器值)会丢失。如果需要在断电周期中保留状态,则需要使用额外的状态保留机制,如影子寄存器或内存。

  3. 断电开销:打开和关闭断电功能会引入一定的延迟和能量开销。这种开销应该尽量降低,以确保断电带来的好处大于成本。

  4. 电源域划分:GPU 架构应划分为适当的电源域,每个电源域都有自己的断电控制,以最大限度地节省功耗,同时尽量减少对性能的影响。

例子: NVIDIA Fermi 架构中执行单元的断电

在 NVIDIA 的 Fermi 架构中,每个流式多处理器 (SM) 包含 32 个 CUDA 核心,分为两组,每组 16 个核心。当 GPU 执行并行度有限的工作负载时,每个 SM 可能不需要全部 32 个 CUDA 核心处于活跃状态。这个 Markdown 文件的中文翻译如下:

在这种情况下,Fermi 架构可以对 16 个 CUDA 内核中的一组进行电源门控,从而减少功耗。

图 9.4 说明了 Fermi SM 中执行单元的电源门控。

                 SM
        +-----------------+
        |                 |
        |   CUDA Cores    |
        |   (Group 1)     |
        |                 |
        |   Power Switch  |
        |                 |
        |   CUDA Cores    |
        |   (Group 2)     |
        |                 |
        +-----------------+

图 9.4: Fermi SM 中执行单元的电源门控。

当工作负载不需要所有 32 个 CUDA 内核时,电源开关可以关闭,对第二组 16 个 CUDA 内核进行电源门控,从而减少 SM 的功耗。

动态电压和频率缩放 (DVFS)

动态电压和频率缩放 (DVFS) 是一种根据当前工作负载和性能要求动态调整 GPU 电压和频率的技术。通过在低利用率期间降低电压和频率,DVFS 可以显著降低功耗,而不会大幅影响性能。

GPU 的功耗与电压的平方成正比,与频率成线性比例,如动态功耗方程所示:

P_dynamic = α * C * V^2 * f

其中:

  • α 是活动因子
  • C 是电容
  • V 是电压
  • f 是频率

通过降低电压和频率,DVFS 可以实现动态功耗的立方级降低。

DVFS 通常使用硬件和软件技术的组合来实现:

  1. 电压和频率域: GPU 被分成多个电压和频率域,每个域都可以独立控制。这允许对功耗和性能进行细粒度控制。

  2. 性能监控: 使用硬件性能计数器和传感器来监控 GPU 的工作负载和温度。这些信息用于 DVFS 控制逻辑来决定何时以及如何调整电压和频率。

  3. DVFS 控制逻辑:软件或硬件控制逻辑负责根据当前工作负荷和性能要求确定适当的电压和频率设置。这个控制逻辑可能使用各种算法,如基于查找表或闭环反馈控制,来做出 DVFS 决策。

  4. 电压和频率缩放:一旦 DVFS 控制逻辑确定了目标电压和频率,硬件电压调节器和时钟发生器就会调整到新的设置。这个过程可能需要几个时钟周期才能完成,在此期间 GPU 可能需要暂停或以较低的性能水平运行。

示例: NVIDIA Fermi 架构中的 DVFS

NVIDIA 的 Fermi 架构包括一个硬件 DVFS 控制器,可以根据当前的工作负荷和热量条件动态调整 GPU 的电压和频率。Fermi 架构支持多个电压和频率域,允许独立控制 GPU 核心和内存子系统。

图 9.5 说明了 Fermi 架构中的 DVFS 系统。

        +--------------------+
        |                    |
        |   GPU Core Domain  |
        |                    |
        +--------------------+
                 |
                 |
        +--------------------+
        |                    |
        |  DVFS Controller   |
        |                    |
        +--------------------+
                 |
                 |
        +--------------------+
        |                    |
        | Memory Domain      |
        |                    |
        +--------------------+

图 9.5: Fermi 架构中的 DVFS 系统。

DVFS 控制器监视 GPU 的工作负荷和热量条件,并相应地调整电压和频率设置。例如,如果 GPU 正在运行以下是所提供 Markdown 文件的中文翻译版本。对于代码部分,我仅翻译了注释,而没有翻译代码本身。

当 GPU 执行计算密集型工作负载且温度低于某个阈值时,DVFS 控制器可能会增加电压和频率以提高性能。相反,如果 GPU 处于空闲状态或正在执行内存密集型工作负载,DVFS 控制器可能会降低电压和频率以节省电力。

DVFS 可以显著降低 GPU 的功耗,同时保持良好的性能。但它也带来了一些挑战,例如:

  1. 延迟开销: 更改电压和频率设置会产生一定的延迟,在此期间 GPU 可能需要暂停或以降低的性能水平运行。应该尽量减少这种延迟开销,以确保 DVFS 的收益大于成本。

  2. 稳定性和可靠性: 更改电压和频率会影响 GPU 的稳定性和可靠性。DVFS 控制器必须确保电压和频率设置在安全的操作范围内,并且不同设置之间的切换是平滑和无故障的。

  3. 与其他电源管理技术的交互: DVFS 可能会与其他电源管理技术(如时钟门控和电源门控)产生互动。DVFS 控制器必须与这些其他技术进行协调,以确保最佳的功率和性能权衡。

示例: 移动 GPU 中的 DVFS

考虑一个支持三种电压和频率设置的移动 GPU:

  1. 高: 1.0 V, 500 MHz
  2. 中: 0.9 V, 400 MHz
  3. 低: 0.8 V, 300 MHz

GPU 正在运行一个交替计算密集型和内存密集型阶段的游戏。在计算密集型阶段,DVFS 控制器将 GPU 设置为高设置以maximiz性能。在内存密集型阶段,DVFS 控制器将电压和频率降低到中设置,以在不显著影响性能的情况下节省电力。

如果 GPU 温度超过某个阈值,DVFS 控制器可能会进一步将电压和频率降低到低设置。提供这个 Markdown 文件的中文翻译。对于代码部分,不需要翻译代码,只需要翻译注释。以下是文件内容:

为了防止过热。一旦温度恢复到安全水平,DVFS 控制器可以将电压和频率提高回到中等或高设置,这取决于工作负载。

GPU 冷却解决方案和包装

随着 GPU 变得更加强大和功率密集,有效的冷却解决方案和包装技术变得越来越重要,以确保可靠的操作和最佳性能。冷却解决方案旨在从 GPU 中移除热量,并将芯片温度保持在安全的工作限制内。包装技术用于在 GPU 和冷却解决方案之间提供有效的热接口,并保护 GPU 免受物理损坏和环境因素的影响。

空气冷却

空气冷却是 GPU 最常见和最经济实惠的冷却解决方案。它涉及使用散热片和风扇将热量从 GPU 散发到周围的空气中。散热片是一个被动部件,可以将热量从 GPU 导走,并提供大量的表面积来散热。风扇是一个主动部件,可以强制空气通过散热片,从而增强对流传热。

图 9.6 说明了 GPU 的一个典型的空气冷却解决方案。

        风扇
         |
         |
    _____|_____
   |           |
   |  散热片   |
   |___________|
         |
         |
        GPU

图 9.6: GPU 的空气冷却解决方案。

空气冷却解决方案的效果取决于几个因素,比如:

  1. 散热片设计: 散热片应该有大的表面积和高效的热导率,以最大程度地增加散热。铜和铝是散热片常用的材料,因为它们有高的热导率。

  2. 风扇性能: 风扇应该提供足够的气流经过散热片,以有效地移除热量。风扇速度和叶片设计可以优化,以平衡冷却性能和噪音水平。

  3. 热界面材料 (TIM): TIM, 如热膏或热垫, 用于在 GPU 和散热片之间提供高效的热传导。热垫,用于填补 GPU 和散热器之间的间隙,确保良好的热接触。TIM 应具有高热导率和低热阻。

  4. 气流管理:GPU外壳内部的总体气流应该得到优化,以确保冷空气被吸入并且热空气被有效排出。这可能涉及使用额外的风扇、导风管或通风孔来指导气流。

对于大多数消费级 GPU 和一些功耗适中的专业级 GPU,空气冷却是适合的。然而,对于功率密度非常高的高端 GPU,空气冷却可能无法维持可接受的温度,需要更先进的冷却解决方案。

液体冷却

液体冷却是一种先进的冷却解决方案,它使用液体冷却剂来去除 GPU 的热量。液体冷却可以提供比空气冷却更好的热性能,因为液体具有更高的热容量和热导率。GPU 的液体冷却解决方案主要有两种类型:一体式(AIO)液体冷却器和定制液体冷却循环。

AIO 液体冷却器是预先组装好的封闭式系统,包括水块、散热器、泵和管路。水块直接安装在 GPU 上,液体冷却剂被泵送通过水块吸收 GPU 的热量。加热后的冷却液流到散热器,由风扇冷却后再返回水块。AIO 液体冷却器安装和维护相对简单,因此受到高端游戏 GPU 用户的欢迎。

定制液体冷却循环比 AIO 冷却器更复杂和可定制。它由单独的组件组成,如水块、散热器、泵、储液罐和管路,由用户自行组装。定制循环提供更大的组件选择和布局灵活性,可实现更高效的冷却和美观设计。但它需要更多的专业知识来设计和构建。以下是该 Markdown 文件的中文翻译。代码部分未翻译,只翻译了注释。

图 9.7 展示了一个典型的 GPU 液体冷却解决方案。

        散热器
           |
           |
        管路
           |
           |
        水块
           |
           |
          GPU

图 9.7: GPU 液体冷却解决方案。

相比于空气冷却,液体冷却可以提供以下几个优点:

  1. 更低的 GPU 温度: 液体冷却可以保持较低的 GPU 温度,从而允许更高的加速频率和更好的性能。

  2. 更安静的运行: 液体冷却系统可以以较低的风扇转速运行,从而产生更安静的噪音。

  3. 更佳的超频潜力: 液体冷却提供的较低温度和更好的热负荷空间,可以实现更激进的 GPU 超频。

然而,液体冷却也有一些缺点,如更高的成本、复杂度和泄漏的可能性。定期更换冷却液和检查泄漏是确保液体冷却系统长期可靠性的关键。

封装技术

封装技术在 GPU 的热量管理和可靠性中扮演着关键角色。封装为 GPU 芯片和冷却解决方案之间提供接口,并提供对物理损坏和环境因素的保护。一些常见的用于 GPU 的封装技术包括:

  1. 反翻转球栅阵列 (FC-BGA): 在 FC-BGA 封装中,GPU 芯片被翻转并通过一排焊球连接到封装底板。焊球提供电气连接和机械支撑。FC-BGA 允许高引脚密度和良好的热性能,因为散热器可以直接附着在 GPU 芯片的背面。

  2. 芯片-在-晶圆-在-基板 (CoWoS): CoWoS 是一种先进的封装技术,允许多个芯片,如 GPU 和 HBM 内存,集成在一个封装中。这些芯片首先被粘合到使用微凸点的硅垫片,然后垫片采用倒装芯片技术粘接到封装基板上。CoWoS 实现了 GPU 和内存之间的高带宽、低延迟互连,同时改善了电源供给和热量管理。

  3. 直接芯片粘贴(DCA):在 DCA 封装中,GPU 芯片直接粘贴在 PCB 上,使用导电粘合剂或焊料。这样就不需要单独的封装基板,降低了热阻,改善了电源供给。但是 DCA 需要仔细设计 PCB 并组装,以确保可靠连接并防止损坏 GPU 芯片。

  4. 多芯片模块(MCM):MCM 封装涉及在单个封装基板上集成多个芯片,如 GPU 和内存。这些芯片使用线键合或倒装芯片技术连接,封装基板提供了芯片之间以及外部引脚之间的互连。相比离散封装,MCM 封装具有更高的集成密度和更好的信号完整性。

有效的封装技术应该提供:

  1. 良好的热传导性:封装应具有低热阻,以便有效地将 GPU 芯片的热量传导到冷却解决方案。

  2. 可靠的电气连接:封装应提供稳定且低电阻的电气连接,连接 GPU 芯片与 PCB 或垫片。

  3. 机械保护:封装应保护 GPU 芯片免受物理损坏,如冲击、振动和弯曲。

  4. 环境保护:封装应屏蔽 GPU 芯片免受环境因素的影响,如湿度、灰尘和电磁干扰。

随着 GPU 功率密度的不断提高,诸如 2.5D 和 3D 集成等先进封装技术变得日益重要,以实现有效的热量管理和高性能互连。

结论

功耗、能耗和热量管理是 G这是一份关于GPU电源设计和操作的文件。

随着GPU变得越来越强大和密集,有效的管理技术对于确保最佳性能、能源效率和可靠性至关重要。

了解功耗的来源,包括动态功耗和静态功耗,对于制定有效的电源管理策略非常关键。时钟门控和电源门控是广泛使用的技术,分别用于减少动态功耗和静态功耗,通过有选择地关闭未使用或空闲的组件来实现。

动态电压和频率缩放(DVFS)是另一种功能强大的技术,可以在保持良好性能的同时大幅降低GPU功耗。通过根据工作负载和热量条件动态调整电压和频率,DVFS可以实现性能和能源效率之间的良好平衡。

高效的冷却解决方案和封装技术对于管理现代GPU的热量输出也至关重要。空气冷却是最常见和最经济实惠的解决方案,但液体冷却可以为功率密度极高的高端GPU提供更好的热性能。先进的封装技术,如CoWoS和MCM,可以实现高效的热量管理和高性能互连。

随着GPU架构的不断发展和功耗密度的增加,新颖的电源、能源和热量管理技术将成为确保GPU性能和效率持续扩展的关键。在先进的DVFS算法、集成电压调节器和先进封装技术等领域的研究将在支持下一代高性能、高能效GPU中发挥关键作用。