5.9. 什么是算术带宽?
算术带宽是系统能够执行算术运算的 峰值速率。
它代表了理论上每秒可实现的算术运算吞吐量上限,决定了硬件 屋顶模型 中”计算屋顶”的高度。
在一个完整系统中有多种算术带宽——每组提供算术操作执行的硬件单元都有对应的算术带宽。
在许多 GPU 中,最重要的算术带宽是 CUDA 核心 的浮点运算带宽。GPU 通常为浮点操作提供比整数运算更高的带宽,而 统一计算设备架构 (CUDA) 的关键在于 CUDA 核心 及其支持系统为 GPU 应用程序提供了统一的计算接口(与早期的 GPU 架构不同)。
但在近年来的 GPU 中,随着 张量核心 的引入,架构的统一性有所降低。张量核心仅执行矩阵乘法运算,但其算术带宽远高于 CUDA 核心 —— 张量核心 与 CUDA 核心 带宽的比例通常约为 100:1。 这使得对于希望最大化性能的 内核 而言,张量核心 的算术带宽变得最为重要。
当代 GPU 的 张量核心 算术带宽以 petaFLOPS(每秒千万亿次浮点运算)为单位。例如,B200 GPU 在运行 4 位浮点矩阵乘法时的带宽为 9 PFLOPS。
以下表格列出了 NVIDIA 数据中心 GPU 从 Ampere 到 Blackwell 流式多处理器架构 (Streaming Multiprocessor Architecture) 的代表性带宽数据。
系统 (计算 / 内存) |
算术带宽 (TFLOPs/秒) |
内存带宽 (TB/秒) |
屋脊点 (FLOPs/字节) |
|---|---|---|---|
312 |
2 |
156 |
|
989 |
3.35 |
295 |
|
2250 |
8 |
281 |
|
1979 |
3.35 |
592 |
|
4500 |
8 |
562 |
|
9000 |
8 |
1125 |