第 1 章 · 约 22 分钟
初识 AI Infra
如何用几个关键数字,估算一次模型执行?
方法
先算上限,再看距离
调用一个模型看起来只是发一段文字。底层发生的,是一次次读取、计算、保存和交接。应用开发者不需要亲手做芯片,但必须知道这些操作各自要付多少时间和容量。选多大的模型、留多长的上下文、允许多少请求并发,都会改写系统必须完成的工作。
贯穿本课的习惯来自第一性原理:先按硬件允许的物理极限算出下界,再看真实系统离这个下界还有多远。估算不必一开始就精确,但必须清楚自己算进了什么、还有什么没有算进去。漏掉容量、带宽、通信或串行依赖中的任何一项,结论都可能偏出几个数量级。
01
搬什么
权重、KV、激活、梯度,还是隐藏向量。
02
搬多少
先写成字节。感觉不是数字。
03
搬几次
驻留一次与每步重读,差的是数量级。
04
经过哪里
片上、HBM、NVLink、PCIe、网络、无线。
05
谁必须等它
串行依赖和往返,决定下限能不能重叠掉。
五个问题
数据搬移是整本书的主线。计算单元要取得权重和中间结果,多卡要交换各自算出的数据,远端服务要接收输入并返回结果。无论尺度从片上存储扩到超节点、数据中心还是端边云,都可以反复追问同一组问题。
搬移五问
- 01搬什么:权重、KV、激活,还是梯度?
- 02搬多少:字节数,不是“很大”这种感觉。
- 03搬几次:驻留一次、读取一遍,与每步重读,完全不是一回事。
- 04经过哪里:片上、HBM、NVLink、PCIe 还是网络?带宽差几个数量级。
- 05谁必须等它:有没有串行依赖,通信往返能不能被计算盖住。
- 1应用与任务
- 2模型与负载
- 3训练与推理系统
- 4算子与运行时
- 5处理器与存储
- 6互联与数据中心
从任务到硬件的六层
一次请求从提出到完成,要穿过应用与任务、模型与负载、训练与推理系统、算子与运行时、处理器与存储、互联与数据中心。向下看,任务逐步变成具体的计算与访存;向上看,容量、算力和带宽决定能跑多大模型、同时服务多少人、回答要等多久。
层次之间的接口就是联合优化的切口。模型改状态表示,会改存储和通信;编译器融合相邻算子,会改中间结果放在哪里;运行时让加速器直接交接,会改主机参与的次数。
T_lower = max( F / Π , R / β )
峰值给出的是物理极限。软件无论怎样组织,都不可能比这个更快。实际耗时 T 与下界之比,就是 MFU = F/(ΠT) 与 MBU = R/(βT)。
Speedup = 1 / ( (1 − f) + f / s )
只加速占比为 f 的那一段、加速 s 倍。即便把这段做到瞬时完成,总加速也不超过 1/(1−f)。70B 单步生成里,读取占了几乎全部时间,翻倍算力几乎不改变下限。
| 资源 | RTX 4090 | A100 80GB | H100 SXM |
|---|---|---|---|
| 显存 | 24 GB | 80 GB | 80 GB |
| 带宽 | 1.008 TB/s | 2.039 TB/s | 3.35 TB/s |
| 峰值 | 165.2 TFLOP/s | 312 TFLOP/s | 989.4 TFLOP/s |
| 读 1 GB | 0.99 ms | 0.49 ms | 0.30 ms |
70B 生成一步,为什么过不了 10 ms
DeepSeek-R1-Distill-Llama-70B 的 BF16 权重约 141.11 GB,一张 H100 装不下。分组 8-bit 量化后约 73.73 GB,可以放进 80 GB,但还要给 KV 和工作区留位置。容量过关,不等于速度过关。
按每参数一字节、单请求每步读一遍约 70 GB:70 / 3350 ≈ 20.90 ms。矩阵运算约 2N = 140 GFLOPs,除以 989.4 TFLOP/s 只有 0.14 ms。读取是计算的 148 倍。把算力翻倍,下界纹丝不动;把带宽翻倍,或把权重量化减半,下界才降到约 10.45 ms。
八个请求共享一次权重读取,整批仍要 20.90 ms,但吞吐从约 48 token/s 升到约 383 token/s。每个请求仍然要等完整的一批。吞吐和延迟必须同时报。
实验
单步下限
权重约 70.00 GB,在 80 GB 内(预留 5 GB)。
20.90 ms
带宽墙
下限取两者较大者。较短的一根无论再缩短,只要没超过另一根,总时间就不动。
吞吐
47.9 token/s
运算量
140.00 GFLOPs
考核
第 1 章考核
4 题
1.70B 按每参数 1 字节、单请求 decode 一步,在 H100 SXM(3.35 TB/s,989.4 TFLOP/s)上把算力翻倍。单步时间下界大约?
2.Llama-70B 的 BF16 权重约 141.11 GB。一张 80 GB 的 H100,下列哪项能让权重本身放进去?
3.Amdahl:编码占原耗时 20%,AI 工具把编码加快 5 倍。整体加速比大约?
4.八个请求共享一次 70 GB 权重读取。关于吞吐与延迟,哪句正确?
全部作答后交卷。