第 13 章 多 GPU 推理与 Prefill/Decode 分离¶
开场问题:模型能装进 8 卡,但 TP=8 的吐字速度并没有比 TP=4 快多少,问题出在哪?
13.1 先问为什么要多卡¶
两个完全不同的动机,导出的配置完全不同。
装不下:模型权重加上 KV 超过单卡显存,必须切。这时目标是可行性,配置以"刚好装下并留足 KV 空间"为准。
嫌太慢:模型装得下,但单请求的 TPOT 不达标。Decode 是带宽受限的,把权重摊到 N 张卡上,每张卡只需读 1/N 的权重,理论上 TPOT 可以降到 1/N。这时目标是延迟。
第三种情况最常见也最容易搞错:只想要吞吐。这时通常应该部署多个独立副本而不是加大 TP——多副本的路由简单、故障隔离好、没有跨卡通信开销。
13.2 张量并行的收益为什么会饱和¶
TP 在推理里的通信模式和训练一样:每个 Transformer Block 两次 AllReduce。区别在于 Decode 阶段每次通信的数据量很小(只有 batch 个 token 的 hidden),这时通信的瓶颈不是带宽而是延迟——每次 AllReduce 的固定开销几乎不随数据量变化。
于是 TP 从 4 加到 8:权重读取减半(好),但通信次数不变、每次的固定延迟不变,而每张卡的计算量已经小到无法摊薄这个开销。开场那个现象就是这么来的。TP 在 Decode 上有明确的收益拐点,且强烈依赖卡间互联质量——NVLink 域内尚可,跨 PCIe 或跨机基本没有收益。
13.3 流水线并行在推理里的定位¶
PP 在推理里主要用于"跨机装下超大模型",而不是提速。单请求在 PP 下是严格串行经过各 stage 的,延迟不降反升;只有当并发足够多、能把流水线填满时,吞吐才上得去。
它的优点是通信量极小(只在 stage 边界传激活),适合互联较差的环境。缺点是 KV 分散在不同 stage、调度复杂、单请求延迟高。在线交互服务里通常是最后选择。
13.4 专家并行与 MoE 推理的真实瓶颈¶
MoE 推理必须把专家分散到多卡(第一册 8.6 节讲过,显存要按总参数算,不是激活参数)。这带来两个 Decode 阶段特有的问题。
GEMM 太小:Decode 每步只有 batch 个 token,经路由分散到几十上百个专家上,每个专家可能只分到几个 token。矩阵乘退化成极瘦的形状,GPU 效率极低。这就是为什么 MoE 推理往往达不到理论上"激活参数少所以快"的预期。
AllToAll 在关键路径上:每层两次,且 Decode 每步都要来一遍。加上热专家(某些专家被选中的概率显著偏高)造成的负载不均,部分卡会成为每一步的瓶颈。工程上的对策包括冗余部署热专家、专家放置优化,以及让注意力部分走数据并行而专家部分走 EP 的组合布局。
13.5 多副本服务:经常是正确答案¶
模型能装进单卡(或单机)时,横向复制通常优于纵向切分:请求级路由、故障只影响一个副本、没有跨卡通信、扩缩容简单。
路由器需要做的判断比"轮询"复杂一点:要看各副本的队列长度、KV 剩余量,以及前缀缓存命中情况——把同一个会话的后续请求送到已经缓存了它前缀的那个副本上,收益往往比负载均衡本身还大。
13.6 Prefill / Decode 分离¶
10.4 节的矛盾是根本性的:两个阶段的资源特性相反,放一起必然互相干扰。PD 分离把它们放到不同的 GPU 池,各自用最适合的批策略和并行配置,还能按实际负载独立扩缩容。
核心难点是 KV 传输:Prefill 节点算出的整段 KV 要送到 Decode 节点。数据量不小(8B 模型、4K prompt 约 600 MB),需要 RDMA 并做成逐层流式传输,让传输和后续层的计算重叠,否则传输时间会把省下的收益吃回去。
什么时候不该做 PD 分离:输出很短(Decode 占比小,收益有限)、prompt 很短(Prefill 本来就不碍事)、模型较小、互联带宽不足、或者只有单机部署。这些情况下分块 Prefill 更简单也更有效。它是超大规模在线服务的方案,中小规模照搬大厂架构只会徒增复杂度。
核心问答¶
Q:模型装得下单卡,还要不要开 TP? 先问目标。要吞吐,用多副本;要低延迟,才考虑 TP,且要实测收益拐点。
Q:为什么 TP 在 Decode 上收益会饱和? Decode 每步通信量很小,瓶颈是通信的固定延迟而非带宽。卡数翻倍减不了通信次数,计算量却已经小到摊不薄开销。
Q:MoE 推理为什么没有想象中快? Decode 阶段每个专家分到的 token 太少,GEMM 形状差;加上每层两次 AllToAll 和热专家导致的负载不均。激活参数少只在算力上占便宜,访存和通信都不省。
Q:训练和推理的并行配置必须一致吗? 不必。权重可以重分片,但要有可靠的转换和验证流程,尤其 MoE 的专家布局变化时。