附录 E 显存与速度速算表¶
第 4 章三个公式的汇总卡片,建议单独印一页随身用。
权重显存¶
权重显存 = P × 每参数字节数
| 精度 | 每参数字节 | 8B 模型 | 70B 模型 |
|---|---|---|---|
| fp32 | 4 | 32 GB | 280 GB |
| bf16 | 2 | 16 GB | 140 GB |
| int8 | 1 | 8 GB | 70 GB |
| int4 | 0.5 | 4 GB | 35 GB |
MoE 模型按总参数代入,不是激活参数。 训练显存 ≈ 权重 + 梯度 + 优化器两份状态 + 激活,约为推理的 6–8 倍。
KV 显存¶
KV 字节数 = 2(K和V)× 精度字节 × L × n_kv × d_h × n × B
先算"每 token 每层"的基本单位,再乘层数:
| 配置 | 每 token 每层 | 每 token 全模型 | 32K 单请求 |
|---|---|---|---|
| MHA, h=32, d_h=128, L=36, bf16 | 16 KB | 576 KB | 19 GB |
| GQA, n_kv=8, d_h=128, L=36, bf16 | 4 KB | 144 KB | 4.8 GB |
| 3:1 混合(仅 9 层产生 KV) | 4 KB | 36 KB | 1.2 GB |
线性 / 状态层只有与长度无关的固定状态,估算时可忽略。
计算量¶
每 token FLOPs ≈ 2 × P_激活 + 4 × L × n × d
前项是权重相关(decode 时的访存主体),后项是注意力的长度相关项。 序列越长后项占比越高;判断某个注意力优化值不值得,先比这两项的大小。
训练总 FLOPs ≈ 6 × P × 训练 token 数
判断瓶颈¶
算术强度 = 计算量 / 访存量,与硬件的"算力÷带宽"比值相比:
- 高于硬件比值 → 算力受限(prefill、大 batch 训练)
- 低于硬件比值 → 访存受限(decode、batch=1 推理)
decode 阶段几乎总是访存受限,这是第 9、14、15 章一系列设计的共同前提。