Cursor 开源 MoK:面向 GB300 NVL72 的确定性 MoE 训练内核,性能提升 2.37 倍
Cursor Research 开源了 Mixture-of-Kittens (MoK),一个用于 MoE 训练的确定性 megakernel,在 GB300 NVL72 机架上比最强公开基线快 2.37 倍。本文解析其技术亮点、硬件门槛,并探讨对国内 AI 开发者的实际意义。
一句话看懂
Cursor Research 开源了 MoK,一个将 MoE 训练中所有通信与计算融合为单一确定性内核的 megakernel,在 GB300 NVL72 机架上性能提升最高 2.37 倍,但仅支持 Blackwell SM100/SM103 GPU。
详细发生了什么
Cursor Research 开源了 Mixture-of-Kittens (MoK),这是其 Composer 模型背后的 MoE 训练 megakernel。MoK 将 MoE 的通信和计算步骤融合为一个确定性内核,在 GB300 NVL72 机架上,其吞吐量比最强的公开基线高出 2.37 倍。该内核已在数万 GPU 上用于 Composer 训练。
MoK 已发布在 GitHub 上,采用 Apache-2.0 许可证。硬件要求较高:需要 NVIDIA Blackwell SM100 或 SM103 GPU(即 GB200 NVL72 或 GB300 NVL72 机架),以及 Python 3.12+、PyTorch 2.10+ 和 CUDA toolkit 13.0+。此外,GPU 间缓冲区依赖 PyTorch symmetric memory,这限制了实际采用者,主要是拥有或租用 NVL72 容量的机构,如前沿实验室、资金充足的模型初创公司、GPU 云服务商和国家计算中心。单节点团队和 8-GPU 规模的小型团队则无法使用。
MoK 的设计决策包括:按操作选择通信方向,采用 pull-based dispatch 和 push-based combine,将信号延迟从 103 µs 降至 18 µs;重叠粒度介于 Comet 和 DeepEP 之间,目标为每个 expert-grouped GEMM 至少两个 SM wave;使用环形 token buffer 避免丢 token 并消除 CPU-GPU 同步。MoK 支持 BF16 和 MXFP8 精度,调度通过 Blackwell 的 Cluster Launch Control 进行,路由权重梯度采用 SonicMoE 风格计算并融合到 SwiGLU backward 中。
基准测试在单个 NVL72 机架上进行,EP 度为 64,每个 GPU 在路由前持有 2,048 tokens。基线包括 NCCL+PyTorch、DeepEP+PyTorch、DeepEP+TransformerEngine 和 HybridEP+Megatron。模型形状涵盖 Kimi K2.7 Code、GLM-5.2、Qwen3.5-397B-A17B 和 DeepSeek-V4-Pro。与最快基线相比,MoK 在 MXFP8 forward 上快 2.37 倍,MXFP8 backward 快 1.78 倍,BF16 forward 快 1.92 倍,BF16 backward 快 1.58 倍。端到端测试在 512 GPU 上进行,每 GPU 每秒 tokens 从 760.9 提升至 1,070.2,提升 1.41 倍。
中文圈视角
MoK 的开源对国内 AI 开发者来说,更多是“看得到、用不上”的典型。硬件门槛极高,需要 GB300 NVL72 机架,国内能接触到这类资源的机构屈指可数,主要集中在头部大厂和少数科研单位。对于大多数中小团队和独立开发者,MoK 更像是一个技术标杆,而非可直接使用的工具。
不过,MoK 的设计思路值得借鉴。其 pull-based 通信和环形 buffer 方案,对于国内使用 DeepSeek-V3 风格 MoE 模型进行训练的团队,即使没有 NVL72,也能在通信优化上获得启发。国内类似的开源项目如 DeepEP 的改进版或自研内核,可以吸收 MoK 的确定性调度和 CPU-GPU 同步消除策略。此外,MoK 对 MXFP8 的支持,也提示国内硬件生态(如华为昇腾)在低精度训练上的潜力,但需注意 CUDA 依赖,短期内难以直接迁移。
从合规角度看,MoK 的 Apache-2.0 许可证允许商用和修改,但硬件依赖可能促使国内团队转向国产 GPU 的类似实现,这或许会推动国产 AI 训练栈的自主创新。
几条值得记住的细节
- MoK 在 GitHub 上以 Apache-2.0 许可证开源,但要求 Blackwell SM100/SM103 GPU、CUDA 13.0+ 和 PyTorch 2.10+。
- 通信方向优化:pull-based dispatch 将信号延迟从 103 µs 降至 18 µs,提升约 5.8 倍。
- 环形 token buffer 在 minibatch 粒度上循环使用,避免丢 token,并完全消除 CPU-GPU 同步。
- 性能数据:MXFP8 forward 快 2.37 倍,端到端 512 GPU 上每 GPU 每秒 tokens 从 760.9 提升至 1,070.2。
- MoK 支持 BF16 和 MXFP8 精度,调度通过 Blackwell Cluster Launch Control,避免 RDMA 串行化。
一句话总结
MoK 是 NVL72 机架上的性能利器,但硬件门槛高,国内团队可借鉴其设计思路,而非直接部署。