AI AI infra · 推理侧
第 1 章
AI infra · 推理侧

附录 A 公式与速查

这一页把全书用到的账集中在一处,做估算时可以直接查。所有公式都是近似,忽略固定开销和碎片,用来判断量级,不用来做验收。

显存

权重体积等于参数量乘以每参数字节。FP16 和 BF16 是二字节,FP8 和 INT8 是一字节,INT4 是半字节。7B 模型 FP16 约 14 GB。

KV 缓存每条请求的字节数等于二乘以层数、KV 头数、每头维度、序列长度和每元素字节数。8B 的 GQA 模型每 token 约 128 KiB,8K 请求约 1 GiB。

可用并发约等于(显存减去权重再留两到四 GiB 余量)除以单条请求的缓存。这是上限,实际要按块内碎片和淘汰策略打折。

时间

预填充的计算量约为两倍参数量乘以输入长度。8B 模型 8K 输入约 131 TFLOP,加上注意力部分约 166 TFLOP。

逐字生成的单步时间约等于权重字节数除以显存带宽。7B 模型 FP16 在 A100 上约 6.9 毫秒。

总时间约等于首字延迟加输出长度乘以单步时间。批处理时单步时间不变,多出来的计算被并行的请求摊掉。

瓶颈判断

硬件的算力带宽比等于峰值算力除以显存带宽,单位是每字节多少次运算。A100 约 153,H100 约 295。

任务的算术强度等于运算量除以读取字节数。逐字生成接近一,远低于硬件比值,所以是带宽受限;预填充可以到几千,高于硬件比值,所以是算力受限。

批处理的交叉点约等于硬件的算力带宽比。A100 上约 153,超过它之后每步时间开始随批量上升。

容量与成本

利特尔法则:系统中的平均请求数等于到达率乘以平均停留时间。每秒 10 条、每条 5 秒,就需要能同时容纳 50 条。

每百万 token 成本等于每小时成本除以每小时产出的百万 token 数。产出一百万 token 需要的时间,等于一百万除以单步产出。

硬件常数

型号FP8 稠密算力显存带宽
A100不适用80 GB2.04 TB/s
H1001979 TFLOPS80 GB3.35 TB/s
H2001979 TFLOPS141 GB4.8 TB/s
B200约 5 PFLOPS192 GB8 TB/s
L40362 TFLOPS48 GB864 GB/s

A100 没有 FP8 张量核心,表里不填。跨卡带宽:节点内 NVLink 在 Hopper 上 900 GB/s,机器间 InfiniBand 每张网卡 50 GB/s。

五步判断

第一步,看 config.json 里的层数、隐藏维度、KV 头数、词表大小。

第二步,算权重和单条缓存,判断装不装得下。

第三步,算首字延迟和出字速度,判断达不达标。

第四步,用利特尔法则算并发需求,折算成卡数。

第五步,看瓶颈在哪一段,再决定用量化、缓存、投机还是并行。

顺序不能反。先加优化再判断瓶颈,是最常见的浪费。