Constraint-Driven AI Infra Design(从约束推导设计)
来自 《深入理解 AI Infra》 前言与第 1 章。与本 wiki 的 Quantitative Architecture Fundamentals / Architecture Paper Reading 同族:先算物理下界,再解释实测差距。
四类数字
任务要保存 (M)、算 (F) FLOPs、经某接口读写 (R)。加速器提供容量 (M_{\mathrm{cap}})、吞吐 (\Pi)、带宽 (\beta):
[ M\le M_{\mathrm{cap}},\qquad T_{\mathrm{compute}}=F/\Pi,\qquad T_{\mathrm{memory}}=R/\beta. ]
容量决定能否同时放下(权重 + 状态 + 工作区须相加);后两项是时间下界。峰值下界 = 硬件物理极限。
| 比值 | 定义 | 上界 |
|---|---|---|
| MFU | (F/(\Pi T)) | 1 |
| MBU | (R/(\beta T)) | 1 |
书中反复用同一判据:下界与实测之差,不是模型漏项(忘了 KV、通信、重算),就是可去掉的系统开销(逐 kernel launch、就绪偏差)。
五个数据搬移问题
从片上 SRAM 到超节点到端边云,都问:
- 搬什么 — 权重 / KV / 激活 / 梯度 / 通知
- 搬多少 — 字节;精度与表示(GQA vs MLA)直接改这个数
- 搬几次 — 复用次数 (r) 决定远程读 vs 搬回本地
- 经过哪里 — HBM、NVLink、NIC、Clos 上联、WAN
- 谁必须等它 — 依赖边;集体通信从最慢 rank 的就绪时刻开始
对应本 wiki:End-to-End Memory Data Path、Interconnection Design Space。
设计顺序(书中反复出现)
- 容量:(W_i+K_i+A_i+U_i\le C_i)(逐卡,不是集群总和)。
- Roofline:(T_{\mathrm{op}}=\max(F/P,,V/B))。
- 通信:算法字节 × 割集带宽 + 轮次 (\alpha);小消息看启动,大消息看持续带宽。
- 重叠与关键路径:能藏进计算的通信不再决定步时间。
- 测量修正排名;差距小于噪声则两方案都留。
先判断再摊:先排除装不下或超 SLO 的方案,再在可行集里比延迟 / 吞吐 / 按时成本。
常见漏项(书中点名 LLM/芯片估算)
- 只算权重读,忘了 decode 读 KV。
- 算了读时间,没加工作区,显存其实放不下。
- 用峰值 FLOP/s,没查带宽能否供数。
- 把工作均分到多卡,漏卡间通信与就绪偏差。
- 报了很高吞吐,没加串行依赖与往返。
Citations
[1] 前言 [2] Ch.1 [3] PDF release [4] raw stub