第二部分 · 基础设施
V4 的"骨" —— MegaMoE 通信、TileLang 内核、批不变与确定性、FP4 QAT、训练 / 推理框架。架构定了形,基础设施决定它能不能在真实集群上跑起来。
读完这部分,你将能够
- 用不等式(C/B ≤ 6144 FLOPs/Byte)解释 V4-Pro 的 MegaMoE 理论隐藏条件,并判断何时增加带宽仍有帮助。
- 解释 TileLang 替掉 ATen 的三个动机:host 开销、SMT 求解、位级可复现。
- 区分"批不变"与"确定性"是两件事,并说出 V4 是怎么在 Attention / MatMul / Sparse Attn / MoE 反向里分别保证的。
- 画出 FP4 QAT 的"FP32 master → FP4 → FP8 展开 → forward"信号链,并说明当前权重满足何种 scale 条件时,展开步骤不引入额外舍入。
- 说清 Muon + ZeRO 冲突的根因,以及 V4 是怎么"稠密 / MoE 二分 + FP32→BF16 SR 通信"折中的。
- 对比 PagedAttention 与 V4 的 State Cache + Block Cache 二分,列出至少 3 处不能共用的原因。
- 面对一个新模型的部署问题,能从"通信、内核、数值、梯度切分、KV 布局"五个维度独立诊断。
本部分章节路线图
计算-通信全融合:MegaMoE
专家 wave 调度,提高 dispatch、combine 与 GEMM 的重叠。
TileLang 内核
DSL 替手写 CUDA,host 开销 <1µs,Z3 SMT 进编译器。
批不变 与 确定性
批不变与确定性 kernel,改善跨 batch、跨运行的复现与调试。
FP4 量化感知训练
MoE expert weights 与 Indexer QK 路径使用 FP4;满足 scale 条件时,FP4 可无额外舍入地展开到 FP8。
训练框架与 mHC 工程
混合 ZeRO、张量级 checkpointing、二阶段 CP。
推理框架与 KV 异构
State Cache + Block Cache 二分,盘上前缀复用。
如果你做训练 infra,Ch7 / Ch11 / Ch9 优先; 如果你做推理部署,Ch12 / Ch10 / Ch9 优先; 如果你想理解 V4 的"工程主义",Ch9(确定性)是隐藏 MVP —— 它让前面的所有奇技淫巧可被复现、可被调试。
本部分小结
核心要点回顾
- 通信(Ch7 · MegaMoE):用 expert wave 流水重叠通信与计算;对 Pro,$C/B\le6144$ FLOPs/Byte 是理论上的完全隐藏条件。
- 内核(Ch8 · TileLang):host codegen 将 CPU validation overhead 降至每次调用低于 1µs,Z3 辅助整数分析,并支持按需与 CUDA baseline 位级对齐。
- 可重放(Ch9 · 批不变 + 确定性):为关键 kernel 固定归约或累加顺序,减少 batch 组织和重复运行带来的数值差异;报告没有概括成所有 train / RL / infer 路径逐位一致。
- 数值(Ch10 · FP4 QAT):FP32 master → FP4 → FP8 展开 → forward;在报告验证的 scale 条件下,展开步骤不引入额外舍入,推理则直接加载 FP4 权重。
- 训练(Ch11 · ZeRO + CP):稠密 / MoE 二分切;FP32→BF16 stochastic rounding 减半通信;mHC 融合 kernel + DualPipe overlap,把开销压到 6.7%;二阶段 CP 跨压缩边界。
- 推理(Ch12 · KV 异构):State Cache 装位置敏感的 SWA / 尾巴,Block Cache 装压缩 KV;盘上 KV 给共享前缀复用。
关键参数 / 公式速查
| 位置 | 关键值 / 公式 | 含义 |
|---|---|---|
| MegaMoE 协设 | C/B ≤ 2d = 6144 FLOPs/Byte | 每 GBps 互联养 6.1 TFLOP/s |
| TileLang host 开销 | < 1 µs | 从 ATen 的几十~几百 µs 砍下来 |
| FP4 sub-block | 1 × 32(FP4 E2M1) | scale 比值落在 FP8 E4M3 动态范围内 |
| FP8 量化块 | 128 × 128(FP8 E4M3) | 与 FP4 sub-block 嵌套;当前权重满足无额外舍入的 scale 条件 |
| Indexer 提速 | 2× / 99.7% recall | FP4 QK + BF16 score |
| mHC wall-time 开销 | 6.7% | 融合 kernel + DualPipe overlap 后 |
| 二阶段 CP 输出长度 | s/m + 1 | 压缩边界 + 1 token 同步 |
设计直觉地图
- 架构层(Part 1)的每个新元素,在基础设施层都对应一项"代价":mHC → 融合 kernel + 张量级 ckpt;CSA → 二阶段 CP + 盘上 KV;FP4 → 反量化嵌套;Muon → 混合 ZeRO + SR。
- Ch9 的批不变与确定性 kernel 主要服务于复现、稳定性分析和跨训练/推理流水的一致性;报告未与其他系统作“护城河”式比较。
- "硬件协设"不只是 Ch7 的 6144 FLOPs/Byte:FP4 嵌套、TileLang 与 SMT、KV 异构布局,都是同一个"软硬协同"姿态。
自检题
Q1. C/B ≤ 6144 FLOPs/Byte 这个阈值的物理含义是什么?为什么超过它再堆带宽是浪费?
查看参考答案
它给出的是通信可被计算完全覆盖的临界点。若硬件 $C/B$ 高于 6144,说明计算相对网络过快,通信仍会暴露,增加带宽有帮助;若已低于阈值,通信可以被计算隐藏,继续增加带宽的边际收益很小。
Q2. Muon 与传统 ZeRO 为什么冲突?V4 是怎么折中的?
查看参考答案
Muon 需要完整梯度矩阵做 NS 正交化,而 ZeRO 按维度切梯度会让每个 rank 看不到完整矩阵。V4 的做法:稠密参数限制最大 ZeRO 并行度 + 背包均衡 + padding;MoE 参数按专家独立切;通信用 FP32→BF16 stochastic rounding 减半。
Q3. 为什么 V4 不能直接用 PagedAttention?至少给出 3 个原因。
查看参考答案
(1) PagedAttention 假设所有层共享同种 KV,但 V4 有 SWA / CSA / HCA / Indexer 四种;(2) SWA 有窗口外即丢的过期策略,与 paged 通用回收不兼容;(3) 压缩注意力 kernel 对 cache line 对齐有要求,需要 lcm(m, m') 分块;(4) 各层 KV ratio 不一样。
Q4. FP4 → FP8 反量化为什么是无损的?
查看参考答案
FP4 sub-block (1×32) 与 FP8 量化块 (128×128) 使用嵌套 scale。报告验证当前权重的 scale 比值满足阈值,因此从 FP4 视图展开到 FP8 时不引入额外舍入;这里的“无损”只指展开步骤,不指 FP32 量化到 FP4 的过程。