title: 什么是内存带宽?
内存带宽是指数据在内存层次结构的不同层级之间传输的最大速率。
它代表了以字节/秒为单位移动数据时理论上可达到的最大吞吐量。它决定了硬件屋顶线模型中"内存屋顶"的斜率。
在一个完整的系统中有许多内存带宽——内存层次结构的每一层级之间都有一个带宽。
最重要的带宽是GPU显存与流式多处理器 (SM)的寄存器文件之间的带宽,因为大多数内核的工作集只能存放在GPU显存中,而无法放在内存层次结构中更高的层级。正是由于这个原因,在GPU内核性能的屋顶线建模中,该带宽是主要使用的带宽。
当代GPU的内存带宽以TB/秒为单位进行测量。例如,B200 GPU与其HBM3e内存之间的(双向)内存带宽为8 TB/秒。这远低于这些GPU中张量核心的算术带宽,从而导致屋顶线模型中的脊点所需的算术强度增加。
下表列出了从Ampere到Blackwell流式多处理器架构的NVIDIA数据中心GPU的代表性带宽数值。
| 系统(计算/内存) | 算术带宽 (TFLOPs/s) | 内存带宽 (TB/s) | 脊点 (FLOPs/byte) |
|---|---|---|---|
| A100 80GB SXM BF16 TC / HBM2e | 312 | 2 | 156 |
| H100 SXM BF16 TC / HBM3 | 989 | 3.35 | 295 |
| B200 BF16 TC / HBM3e | 2250 | 8 | 281 |
| H100 SXM FP8 TC / HBM3 | 1979 | 3.35 | 592 |
| B200 FP8 TC / HBM3e | 4500 | 8 | 562 |
| B200 FP4 TC / HBM3e | 9000 | 8 | 1125 |