flowchart LR
subgraph Cheatsheet["AI Infra 六大核心量化推导支柱"]
direction TB
M1["1. 显存账本 (Memory Accounting)<br>参数/梯度/优化器/激活值/ZeRO-1/2/3"]
M2["2. 分布式通信量 (Communication Volume)<br>AllReduce / All-to-All / Ring / Tree"]
M3["3. 算力利用率 (MFU & HFU)<br>6Phi 浮点模型 / 有效吞吐与硬件峰值"]
M4["4. 推理系统 (Inference & KV Cache)<br>KV Cache 显存容量 / Prefill vs Decode"]
M5["5. 硬件微架构 (Roofline Model)<br>算术强度 / HBM 拐点 / 访存受限判定"]
M6["6. 流水线气泡 (Pipeline Bubbles)<br>1F1B / 虚拟交织 / 非均质多模态气泡"]
end
AI Infra 面试必备:一页纸核心公式与推导速查表(The Ultimate Cheatsheet)
涵盖显存账本、通信量、MFU/HFU、KV Cache、Roofline 拐点与流水线气泡的一站式白板推导心法
定位说明:专为大厂 AI Infra、大模型系统、高性能算子与端侧部署面试打造的核心量化公式速查表。拒绝模糊死记硬背,全部公式附带“第一性原理推导”与“即查即用白板心法”。
核心公式速查全景图
模块一:大模型静态与动态显存账本
设模型总参数量为 (单位:十亿参数量,如 个浮点数)。
1. 静态显存(Static Memory: 模型参数 + 梯度 + 优化器)
对于标准 FP16 / BF16 混合精度训练 + AdamW 优化器:
| 组成部分 | 元素精度 | 单参数字节 | 单卡显存公式 (未切分) | 70B 模型显存实例 |
|---|---|---|---|---|
| 模型参数 (Parameters) | FP16 / BF16 | 2 Bytes | ||
| 反向梯度 (Gradients) | FP16 / BF16 | 2 Bytes | ||
| 优化器状态 (AdamW) | FP32 | 12 Bytes | ||
| - FP32 主权重副本 (Master Weights) | FP32 | 4 Bytes | ||
| - FP32 一阶动量 (Momentum) | FP32 | 4 Bytes | ||
| - FP32 二阶动量 (Variance) | FP32 | 4 Bytes | ||
| 总常驻静态显存 | - | 16 Bytes |
白板心算心法: 记住口诀 “二四十六” —— 参数占 ,梯度加参数占 ,加上 AdamW 优化器一共是 Bytes(约等于参数量数值的 16 倍,70B 需要 1120 GB,相当于 14 张 80GB A100/H100 显卡)。若优化器保存 FP32 梯度,则为 或 。
2. ZeRO-1 / ZeRO-2 / ZeRO-3 (FSDP) 显存切分公式
设数据并行组内 GPU 卡数为 :
- ZeRO-1(优化器状态切分): 当 时,显存渐进下限为 (节省约 75% 显存)。
- ZeRO-2(优化器状态 + 梯度切分): 当 时,显存渐进下限为 (仅常驻模型参数,节省约 87.5% 显存)。
- ZeRO-3 / FSDP(参数 + 梯度 + 优化器全切分): 所有静态数据均匀分摊,显存占用与卡数严格成反比。
3. 动态激活值显存(Activation Memory)精算公式
设序列长度为 ,微批次大小为 ,隐藏层维度为 ,注意力头数为 ,全网 Transformer 层数为 。
每个标准 Transformer 层在前向传播过程中暂存的激活值显存总量(FP16/BF16):
详细物理构成推导(常数 34 与 5 的来源): * Attention 模块: * Q, K, V 投影输入与输出: Bytes * 注意力得分矩阵 与 Softmax 输出: Bytes * 注意力 Dropout 掩码: Byte 合计注意力矩阵占用 * Attention 对 V 聚合后输出映射(Projection): Bytes * Attention 残差连接与 Dropout: Bytes * MLP / FFN 模块: * 两层全连接(中间维度扩大至 ): Bytes * 激活函数(GELU/SwiGLU)中间值与 Dropout: Bytes * LayerNorm / RMSNorm: * 两个归一化层的均值与方差暂存: Bytes * 小计: 线性项,加上 注意力二次方项。
重计算(Activation Checkpointing)显存压缩心法: - 全量重计算(Full Recomputation):每层仅保留 LayerNorm 输入( Bytes),激活显存由 降为 ,代价是增加 33% 的前向 FLOPs 计算量; - 选择性重计算(Selective SAC):仅重计算 的 Attention 部分(消耗算力极小但显存占比极大),保留 MLP 的线性部分。
模块二:分布式通信算子通信量与时延建模
设待传输张量大小为 Bytes,参与通信的 GPU 卡数为 。网络通信延迟为 (秒/次),单向网络链路带宽为 (Bytes/秒)。
| 通信原语 (Collective) | 每卡发送/接收字节量 (Bytes) | Ring 环形通信时间模型 | 对应典型应用场景 |
|---|---|---|---|
| Ring AllReduce | 数据并行 DDP / TP 张量并行线性层 | ||
| ReduceScatter | ZeRO-2/3 梯度切分 / 序列并行 SP | ||
| AllGather | ZeRO-3 前向参数重建 / TP 序列展开 | ||
| All-to-All | MoE 专家路由分发 / 跨 Mesh 张量重排 | ||
| P2P Send / Recv | 流水线并行 PP 激活值在相邻 Stage 传递 |
白板心算核心法则: - 为什么 AllReduce 是两倍的 ?
因为 Ring AllReduce 算法在物理实现上严格拆解为两个阶段:第一阶段 ReduceScatter(环上流转 步,每步传输 ),第二阶段 AllGather(环上再流转 步)。两阶段传输量相等,故 。当 时,,每卡通信量近似为 。
模块三:算力利用率(MFU 与 HFU)精算心法
1. 浮点运算量(FLOPs per Token)
对于一个稠密标准 Transformer 模型,处理单 Token 的浮点运算量为: 当序列长度 远小于隐藏层维度时,注意力项可忽略,简化为经典黄金法则: (若开启全量激活重计算,前向额外重算一次,总计算量变为 )
2. MFU 与 HFU 的量化公式
模型算力利用率(Model FLOPs Utilization, MFU):衡量模型有效计算的纯利用率(不计入重计算开销):
硬件算力利用率(Hardware FLOPs Utilization, HFU):衡量 GPU 芯片物理硬件的忙碌程度(计入重计算 FLOPs):
工业界评判标准: 优秀集群训练任务的 MFU 通常在 (A100/H100 NVLink 域内可突破 )。若 MFU 低于 ,说明严重受限于通信瓶颈、小算子 Launch 开销或流水线气泡。
模块四:推理引擎显存与吞吐推算(Inference & KV Cache)
1. KV Cache 单步与全量显存计算
设批次大小为 ,序列长度为 ,网络层数为 ,模型注意力头数为 ,每个注意力头维度为 ,KV 头数为 。
在 FP16(2 Bytes)精度下:
全网总 KV Cache 显存占用:
| 架构类型 | KV 头数比例 | 显存压缩率 | 典型代表模型 |
|---|---|---|---|
| MHA (Multi-Head) | (无压缩) | 经典 LLaMA-1、GPT-3 | |
| GQA (Grouped-Query) | 显存压缩 | LLaMA-2-70B、LLaMA-3、Mistral | |
| MQA (Multi-Query) | 极致压缩 | Falcon-40B |
2. Prefill 与 Decode 阶段的硬件瓶颈与吞吐上限
flowchart TD
subgraph InferenceDualism["推理双阶段硬件本质分野"]
direction LR
subgraph Prefill["1. Prefill 阶段 (Prompt 处理)"]
P_In["输入长文本 S 个 Tokens 一次性前向"] --> P_Compute["大矩阵乘 GEMM: (B*S, h) x (h, h)"]
P_Compute --> P_Bound["计算密集型 (Compute-Bound)<br>打满 Tensor Core 峰值 TFLOPS"]
end
subgraph Decode["2. Decode 阶段 (自回归逐字生成)"]
D_In["每次仅输入 1 个 Token (B=1)"] --> D_Mem["GEMV: 权重矩阵与 KV Cache 全部从 HBM 读到片上"]
D_Mem --> D_Bound["访存密集型 (Memory-Bound)<br>受限于 HBM 带宽 (TB/s)"]
end
end
在 Decode 阶段,生成每个 Token 必须将模型参数从 HBM 显存全量读入片上 SRAM 一次。 自回归解码的最大物理理论吞吐上限(Tokens/sec): 例如:A100 SXM4 带宽为 ,运行 70B FP16 模型(权重 ),单卡在单批次下的最大理论生成速度仅为:!必须依靠 Continuous Batching 将 Batch 增大,提高算术强度。
模块五:微架构与 Roofline 模型速算
1. 算术强度(Arithmetic Intensity)
2. 硬件拐点(Machine Balance Point)
硬件拐点是算子从访存受限(Memory-Bound)跃迁为计算受限(Compute-Bound)的临界临界值:
| 硬件加速卡 | 算力规格 (BF16 Tensor Core) | HBM 显存带宽 | 硬件临界拐点 |
|---|---|---|---|
| NVIDIA V100 (SXM3) | |||
| NVIDIA A100 (SXM4) | |||
| NVIDIA H100 (SXM5) | |||
| NVIDIA B200 (Blackwell) |
面试优化判定准则: - 若算子的 (如 LayerNorm、Softmax、GEMV、GeLU):属于 Memory-Bound,优化重点是算子融合(Kernel Fusion)消除中间读写,或使用 Shared Memory 缓存; - 若算子的 (如大维度 GEMM、Conv2D):属于 Compute-Bound,优化重点是打满 Tensor Core 瓦片(Tiling)、提升 Warp 活跃度与隐藏指令发射停顿。
模块六:流水线并行气泡率(Pipeline Bubbles)
设流水线切分为 个物理阶段(Stages),微批次数量为 。
1. 经典 1F1B 稳态气泡率
充水期(Warm-up)有 个微批次前向,抽水期(Cool-down)有 个微批次反向。
2. 交错式虚拟阶段 1F1B(Interleaved 1F1B)
每张 GPU 虚拟承接 个非连续的虚拟阶段(Virtual Stages): 气泡率直接被虚拟阶段数 稀释约 倍,但代价是模型激活值暂存显存增加。
3. 非均质流水线气泡率(具身 VLA / 多模态两头重场景)
设各阶段前向耗时向量为 ,瓶颈阶段耗时 : 当 时,稳态极限气泡率为 ,必须依赖非均匀层分配(Layer Re-balancing)抹平阶段耗时差异。
面试白板推导 60 秒极速通关口诀
- 显存记三数:参数为 ,梯度为 ,AdamW 为 ;全网无切分 ,ZeRO-1 剩 ,ZeRO-2 剩 ,ZeRO-3 全摊派 。
- 激活算两项:线性项 ,注意力量级 ;全重算去二次方,选择性重算省显存保算力。
- 通信看环长:Ring AllReduce 走两圈,两倍 ;ReduceScatter 与 AllGather 各走一圈,每卡只需单倍量。
- 吞吐看六倍:单 Token 运算量恒定 ;每秒 Token 数乘 除以硬件标称算力即为 MFU,破 为合格,破 为极优。
- 推理看阶段:Prefill 是矩阵乘算力受限(Compute-bound),Decode 是单字生成带宽受限(Memory-bound);总 KV Cache 显存为 。
- Roofline 辨拐点:A100 拐点是 ,H100 拐点是 ;低于拐点做融合,高于拐点打满 Tensor Core。