追踪瓶颈:MiniMax M3 如何在 AMD MI355X 上持续提速
导语
大型 MoE 模型的推理优化,很少是找到一个“最快内核”就结束。vLLM 对 MiniMax M3 在 AMD Instinct MI355X 上的复盘表明,真正有效的路径是持续追问:当前 rank 实际处理什么形状?哪些工作在层间或 token 间重复?数据究竟搬运了多少?预期的快速路径是否真的被调用?当内核已经不再主导耗时时,哪条队列正在变长?
性能进展并非来自单点突破
在固定拓扑的标准服务中,MXFP8、TP4/EP1 的并发 32 输出吞吐从 109.1 提升至 342.4 token/s/GPU,达到 3.14 倍;中位 TTFT 从 1.46 秒降至 0.67 秒,平均 TPOT 从 69.1 毫秒降至 22.1 毫秒。并发 128 时,吞吐从 297.8 提升到 623.7 token/s/GPU。MXFP4 在相同四卡路径上曾从 212.1 提升至 716.8,后续改用 TP2/EP1 后达到 943.5,但这同时体现了部署密度变化,不能简单视为固定拓扑加速。EAGLE3 将并发 128 的 TP4/EP1 结果推至 682.4;进一步采用 P/D 解耦和重新调校拓扑后,在并发 512 达到 6,370.5 total token/s/GPU,TTFT 为 1.32 秒。
五个优化观察点
- 先看本地形状。 TP 切分、KV 头复制、padding 和 token 路由会改变每个 rank 真正看到的 M、N、K。TP8 下,Q 头被切分,但 KV 与索引头复制,因此融合 QKV 投影的本地 N 是 1536,而不是简单的全局维度除以 8。针对大 M 和小 M 分离 launcher,再依据局部形状选择 tile,TP8 8K/1K 吞吐提升了 7.8%—9.4%。
- 消除重复路径。 共享专家原本作为独立 dense MLP 执行,带来额外 launch 和中间结果流量。将其并入 routed expert 表后,可由 grouped GEMM 统一处理,并保持模型计算不变;并发 1 的输出吞吐提升 30.2%,并发 128 时提升 5.6%。这也说明低并发更容易暴露启动开销。
- 把不变量移出服务循环。 MXFP8 权重和 scale 的重排被移至模型加载阶段。稀疏注意力索引器则从“每个 speculative token 一个 workgroup”改为“每个请求一个 workgroup”,批量处理 draft 位置并复用 key 加载,索引内核最高提升 48.9%,端到端约提升 3.3%。
- 关注控制面数据。 稀疏注意力减少了计算,却增加了 top-k、物理页映射等元数据处理。相邻稀疏层往往选择相近 block,因此共享索引后,低并发平均 TPOT 约下降 10%,更高并发也有约 4% 改善。
- 瓶颈上移后再调度。 图执行降低 launch 开销;不同输入长度和并发区间需要在原生 MXFP8、仿真线性层及稀疏 paged attention 后端之间切换。P/D 解耦的关键也不只是增加算力,而是先验证 KV 交接,再为真正等待的队列增加容量。
意义与影响
这份复盘的价值在于提供了一种可迁移的性能模型。TP4、TP2、prefill 和 decode 并不是足够精确的优化标签;同一模型在不同局部形状、后端和负载下,可能需要完全不同的实现。内核级收益也不能直接等同于应用收益,索引内核接近 49% 的提升,端到端却只有约 3.3%,正是关键路径占比的体现。对于 AMD GPU 上的 MoE 和稀疏模型服务,最值得复制的不是某个固定配置,而是“测量局部形状—删除重复工作—核验数据与派发—追踪队列”的循环。
来源:vLLM Blog
评论
正在确认登录状态……
正在加载评论……