GPU 性能数字速记

GPU 性能分析的所有起点都是这几张表——峰值算力、带宽、SM 数告诉你硬件上限,内存层级延迟告诉你为什么 tiling 有用,临界算术强度告诉你 kernel 该往哪个方向优化。

1. 主流数据中心 GPU 横向比较

GPUFP32 (TFLOPS)FP16 Tensor (TFLOPS)BF16 TensorINT8FP8 (Hopper+)带宽SM 数显存
V100 32GB15.71250.9 TB/s8032 GB HBM2
A100 40GB19.5312312624 TOPS1.6 TB/s10840 GB HBM2e
A100 80GB19.5312312624 TOPS2.0 TB/s10880 GB HBM2e
H100 80GB679899891979 TOPS19793.35 TB/s13280 GB HBM3
H200 141GB679899891979 TOPS19794.8 TB/s132141 GB HBM3e
B200(Blackwell)80225022504500 TOPS90008.0 TB/s208192 GB HBM3e

Tensor 数字默认 fp32 accumulator。稀疏(2:4)再 ×2,本表不算。

2. 消费级 GPU(测试 / 推理常用)

GPUFP32FP16 Tensor带宽SM 数显存
RTX 309035.6 TFLOPS142 TFLOPS936 GB/s8224 GB GDDR6X
RTX 409082.6 TFLOPS165 TFLOPS(密集)1.0 TB/s12824 GB GDDR6X
RTX 5090~104 TFLOPS~419 TFLOPS1.79 TB/s17032 GB GDDR7

3. 内存层级延迟(粗略,A100 量级)

层级延迟(cycle)容量谁能访问
寄存器165536 个 32-bit / SM单 lane
L1 / Shared~20192 KB / SM(可拆分)单 SM
L2~20040 MB(整 GPU 共享)所有 SM
HBM(global)~50080 GB所有 SM
PCIe~10000+受限于 hosthost ↔ device

两层差一个数量级 —— 这就是为什么 tiling 把 hot data 提到 shared memory 能带来巨大收益。

4. SM 内部结构速记(Ampere / Hopper)

Ampere(A100)Hopper(H100)
每 SM CUDA core(FP32)64128
每 SM Tensor Core 数44(更大)
每 SM 寄存器文件65536 × 32-bit65536 × 32-bit
每 SM 最大 thread 数2048(64 warp)2048(64 warp)
每 SM 最大 block 数3232
每 SM shared memory164 KB(L1/Shared 可调)228 KB
Warp scheduler / SM44

5. 关键带宽数字(算 roofline 用)

通路带宽
H100 HBM33.35 TB/s
A100 HBM2e(80GB)2.0 TB/s
NVLink 4(H100)900 GB/s 双向
NVLink 3(A100)600 GB/s 双向
PCIe 5.0 ×1664 GB/s 双向
PCIe 4.0 ×1632 GB/s 双向

PCIe 跟 HBM 差 50-100 倍 —— 这就是为什么”host ↔ device 拷贝”是性能毒药,要尽量留在 GPU 上。

6. 算术强度(Arithmetic Intensity)的临界点

Roofline 上 compute-bound vs memory-bound 的分界:

临界算术强度 = 峰值 FLOPS / 峰值带宽 = FLOP / byte
GPU临界算术强度(FP32)临界(FP16 Tensor)
A100 80GB19.5T / 2.0T = 9.75 FLOP/B312T / 2.0T = 156 FLOP/B
H100 80GB67T / 3.35T = 20 FLOP/B989T / 3.35T = 295 FLOP/B

算术强度低于临界 → memory bound,提高数据复用率(tiling)是关键高于临界 → compute bound,优化指令选择 / 用 tensor core

举例:naive matmul 算术强度 ≈ 1 FLOP/B,远低于 9.75 → memory bound,需要 tiling 提升到 16-32 才能让 A100 跑出 fp32 峰值。

7. 参考文档

评论区
评论功能即将上线, 敬请期待。