推理系统 · 实验 01 / 04
一次请求,两种物理。
SPLIT INFERENCE · PREFILL ⊥ DECODE
预填充是算力的瞬时风暴,解码是带宽的漫长马拉松。
同一次推理请求里住着两种完全不同的物理过程:预填充(Prefill)要在一瞬间并行处理你输入的全部 token,算术强度极高,是典型的算力受限负载;解码(Decode)则要逐 token 自回归生成,每一步都得把整个权重矩阵和 KV 缓存从内存里过一遍——算术强度趋近于常数,被内存带宽死死压住。
把它们塞进同一块芯片,意味着算力单元在解码时大面积闲置、而带宽在预填充时反过来成为陪衬——更糟的是新请求的预填充风暴会随时打断正在解码的请求。Splitwise 等研究指出的方向就是把两个阶段拆到不同的硬件域:算力域专吃风暴,带宽域专跑马拉松。
LIVE LAB
1024tokens
单体芯片 prefill 与 decode 共享
同一块芯片
首 token 延迟—
解码吞吐—
Split Inference 算力域 + 带宽域
算力域(prefill)
带宽域(decode)
首 token 延迟—
解码吞吐—
拖动滑杆改变 prompt 长度。注意单体泳道里琥珀色闪断——那是新请求的 prefill 风暴在打断解码;分离架构里解码永远匀速。(演示数值,量级取自公开研究)
01
两种算术强度
Prefill 每字节内存访问做上百次浮点运算;decode 每生成一个 token 都要重读全部权重——两者相差两个数量级。
02
干扰即延迟
共享芯片上,一个新请求的 prefill 风暴会让在跑的所有 decode 卡顿——尾延迟爆炸的元凶。
03
各自最优硬件
算力域用高 FLOPs 芯片,带宽域用 PIM / 大带宽内存——分离后两边都能买对硬件。