突破 Blackwell 算力瓶颈:Cursor 推出Warp Decode 将 MoE 推论吞吐量提升 1.84 倍
- 内容介绍
- 文章标签
- 相关推荐
混合专家模型(MoE) 已成为提升模型容量的标配。然而,随着 NVIDIA Blackwell 架构的到来,传统的“以专家为中心”的推论路径正逐渐暴露出它的局限性。
近日,通过彻底翻转并行化逻辑,一种名为 Warp Decode 的全新技术方案脱颖而出。它不仅在 Blackwell GPU 上实现了 1.84 倍 的吞吐量提升,更在提升速度的同时增强了计算精度。
大多数传统的 MoE 推论系统是围绕“专家(Expert)”来组织 Token 的生成路径的。简单来说,就是把一堆 Token 收集起来,分发给对应的专家处理,最后再拼凑回来。这在大规模批处理(Prefill 阶段)时表现优异,但在**小批次解码(Decode 阶段)**时,整理数据带来的额外开销(Overhead)远超计算本身。
Warp Decode 彻底改变了这一点。 开发团队不再将 Warp(GPU 执行指令的最小 32 线程单元)分配给专家,而是让每个 Warp 负责产生单一的输出值(神经元)。
为什么选择 Warp Decode?
- 最大化带宽利用: 针对 Blackwell 的内存架构进行了极限优化。
- 消除冗余阶段: 传统路径中 8 个阶段有 5 个是纯粹的数据搬运(簿记工作),Warp Decode 直接砍掉了它们。
- 高精度计算: 减少了中间过程中的量化损失,使输出更接近完整 FP32 的参考值。
在传统的自回归解码中,一次只产生一个 Token,这使得原本为了优化大批次而设计的“收集、填充、散射”等步骤变得极其低效。
Warp Decode 通过以下方式简化了管线:
- 消除填充(Padding): 传统路径需要将 Token 清单填充到 2 的幂次方以符合对齐要求。Warp Decode 根本不形成“专家批次”,因此无需填充。
- 消除散射与合并(Scatter & Combine): 传统方式需要写回 8 个中间结果再合并。Warp Decode 直接在 Warp 内部的累加器中完成路由权重的叠加,中间结果从未离开过寄存器。
- 释放缓存压力: 每一层为每个 Token 减少了超过 32 KB 的中间缓冲区传输。这省下的 L2 缓存空间,可以直接留给决定性能的关键——权重列(Weight Rows)。
Warp Decode 的高效源于其内核设计中的**“极致易并行性”**。整个 MoE 计算被浓缩为两个核心:moe_gate_up_3d_batched 和 moe_down_3d_batched。
运作机制:
- 原生归约: 使用 __shfl_xor_sync 指令进行 Warp 级别的蝴蝶归约(Butterfly Reduction)。这直接在硬件原语层级交换寄存器数据,完全绕过了共享内存(Shared Memory),不存在 Bank Conflicts 或显式屏障。
- 即时转换: MXFP8 权重在读取时即时转换为 FP32。由于激活值在整个过程中保持为 BF16,累加器为 FP32,精度差距比传统路径缩小了 1.4 倍。
- 零同步开销: 每个 Warp 都是完全独立的。它们不共享状态,不互相等待。当一个 Warp 还在等待内存加载时,调度器可以立刻切换到另一个 Warp,完美隐藏了延迟。
在 NVIDIA B200 GPU 上的测试显示,Warp Decode 的表现令人惊艳:
- 吞吐量: 在不同上下文长度下,稳定实现 1.84 倍 的性能增益。
- 硬件效率: 在 B=32 时,Warp Decode 维持了 3.95 TB/s 的吞吐量,达到了 B200 内存带宽实测峰值的 58%。考虑到路由带来的随机存取开销,这已是极高水平。
- 训练加速: 这一技术也被引入了 Composer 研究与训练管线,让我们能以更短的周期迭代模型版本。
177553669771069604611380939433912400×1350 140 KB
177553671758886499366942521581492400×1350 134 KB
177553672591936320280987449468432400×1350 129 KB
17755371672241364×768 392 KB
用 warp decode 实现更好的 MoE 模型推理 · Cursor
通过翻转并行性轴,我们将 MoE 模型推理提速 1.8 倍,同时提升精度。
网友解答:--【壹】--:
有点没看懂,这是推理侧加速还是训练侧加速,看起来类似sage?
--【贰】--:
最近推理加速省资源的研究好多,如果这个和谷歌的turboquant能叠加的话,推理成本能下降一半了
混合专家模型(MoE) 已成为提升模型容量的标配。然而,随着 NVIDIA Blackwell 架构的到来,传统的“以专家为中心”的推论路径正逐渐暴露出它的局限性。
近日,通过彻底翻转并行化逻辑,一种名为 Warp Decode 的全新技术方案脱颖而出。它不仅在 Blackwell GPU 上实现了 1.84 倍 的吞吐量提升,更在提升速度的同时增强了计算精度。
大多数传统的 MoE 推论系统是围绕“专家(Expert)”来组织 Token 的生成路径的。简单来说,就是把一堆 Token 收集起来,分发给对应的专家处理,最后再拼凑回来。这在大规模批处理(Prefill 阶段)时表现优异,但在**小批次解码(Decode 阶段)**时,整理数据带来的额外开销(Overhead)远超计算本身。
Warp Decode 彻底改变了这一点。 开发团队不再将 Warp(GPU 执行指令的最小 32 线程单元)分配给专家,而是让每个 Warp 负责产生单一的输出值(神经元)。
为什么选择 Warp Decode?
- 最大化带宽利用: 针对 Blackwell 的内存架构进行了极限优化。
- 消除冗余阶段: 传统路径中 8 个阶段有 5 个是纯粹的数据搬运(簿记工作),Warp Decode 直接砍掉了它们。
- 高精度计算: 减少了中间过程中的量化损失,使输出更接近完整 FP32 的参考值。
在传统的自回归解码中,一次只产生一个 Token,这使得原本为了优化大批次而设计的“收集、填充、散射”等步骤变得极其低效。
Warp Decode 通过以下方式简化了管线:
- 消除填充(Padding): 传统路径需要将 Token 清单填充到 2 的幂次方以符合对齐要求。Warp Decode 根本不形成“专家批次”,因此无需填充。
- 消除散射与合并(Scatter & Combine): 传统方式需要写回 8 个中间结果再合并。Warp Decode 直接在 Warp 内部的累加器中完成路由权重的叠加,中间结果从未离开过寄存器。
- 释放缓存压力: 每一层为每个 Token 减少了超过 32 KB 的中间缓冲区传输。这省下的 L2 缓存空间,可以直接留给决定性能的关键——权重列(Weight Rows)。
Warp Decode 的高效源于其内核设计中的**“极致易并行性”**。整个 MoE 计算被浓缩为两个核心:moe_gate_up_3d_batched 和 moe_down_3d_batched。
运作机制:
- 原生归约: 使用 __shfl_xor_sync 指令进行 Warp 级别的蝴蝶归约(Butterfly Reduction)。这直接在硬件原语层级交换寄存器数据,完全绕过了共享内存(Shared Memory),不存在 Bank Conflicts 或显式屏障。
- 即时转换: MXFP8 权重在读取时即时转换为 FP32。由于激活值在整个过程中保持为 BF16,累加器为 FP32,精度差距比传统路径缩小了 1.4 倍。
- 零同步开销: 每个 Warp 都是完全独立的。它们不共享状态,不互相等待。当一个 Warp 还在等待内存加载时,调度器可以立刻切换到另一个 Warp,完美隐藏了延迟。
在 NVIDIA B200 GPU 上的测试显示,Warp Decode 的表现令人惊艳:
- 吞吐量: 在不同上下文长度下,稳定实现 1.84 倍 的性能增益。
- 硬件效率: 在 B=32 时,Warp Decode 维持了 3.95 TB/s 的吞吐量,达到了 B200 内存带宽实测峰值的 58%。考虑到路由带来的随机存取开销,这已是极高水平。
- 训练加速: 这一技术也被引入了 Composer 研究与训练管线,让我们能以更短的周期迭代模型版本。
177553669771069604611380939433912400×1350 140 KB
177553671758886499366942521581492400×1350 134 KB
177553672591936320280987449468432400×1350 129 KB
17755371672241364×768 392 KB
用 warp decode 实现更好的 MoE 模型推理 · Cursor
通过翻转并行性轴,我们将 MoE 模型推理提速 1.8 倍,同时提升精度。
网友解答:--【壹】--:
有点没看懂,这是推理侧加速还是训练侧加速,看起来类似sage?
--【贰】--:
最近推理加速省资源的研究好多,如果这个和谷歌的turboquant能叠加的话,推理成本能下降一半了

