
一家应用公司开源了自己的训练内核8月4日Cursor研究院把一个名为Mixture-of-Kittens的CUDA内核开源了Apache 2.0协议代码直接挂在GitHub上供所有人下载。仓库里不仅有内核源码还带上了单层基准的复现代码任何人都能在兼容的硬件上验证它的性能主张。单看这条消息它只是无数开源项目里不起眼的一个但仔细看看发布方的身份就会意识到这件事的份量完全不一样。Cursor是做AI编程助手起家的应用公司不是芯片厂商也不是云服务商它连自己的算力都要向别人租。在AI融资最疯狂的年代应用公司最值钱的是模型效果内核这种底层细节通常被当作可以外包的苦力活。一家应用公司把自己训练模型的看家内核拿出来白送这在两年前的AI行业几乎是不可想象的那时候应用公司的护城河还是模型本身。更反常的是它给出的成绩单在同样的GB300 NVL72机架上端到端训练吞吐提升了百分之四十一从每块GPU每秒760.9个token涨到1070.2个token。这不是发布会PPT上的目标值而是它生产环境里连续跑出来的实测数据。对一家估值靠产品说话的公司来说公布这类数字等于把自己内部的工程水准摊在阳光下接受检验。而做到这一切的核心手段用一句话概括就是把MoE层原本被拆开的通信和计算重新焊接成一个完整的、确定性的单一内核。这句话听起来轻描淡写背后牵扯的问题却深得惊人值得把它一层层拆开看。从应用层一路挖到CUDA层这种下沉速度本身就是行业竞争烈度最直观的注脚。MoE层训练时间的第一黑洞先回到一个经常被忽略的事实对大模型训练来说MoE层早就不只是一个普通的组件了它是整个训练流程里的时间黑洞。Cursor官方博客写得很直白在不同的负载和配置下MoE层可以吃掉端到端训练时间的一半以上这个比例高得让人意外。原因并不复杂专家路由让每个token只走少数几条计算路径算力需求降下来了但token的归属却变得高度动态谁也说不准它下一秒该去哪块GPU。这个比例看似夸张逻辑上却完全成立。MoE模型把前馈网络拆成几十个甚至上百个专家每个token只激活其中少数几个专家计算量确实省下来了但代价是token必须在GPU之间频繁搬家。于是训练系统不得不为每一次路由结果安排一次数据搬运搬运的次数越多通信占的比重就越大。搬家的成本在单卡训练时代可以忽略不计一旦进入GB300 NVL72这种整机架互联的场景跨GPU的通信开销就会迅速反超计算开销。训练日志里最常见的画面就是GPU利用率不满算力在空转数据在路上堵车。数据在路上堵车的时候再快的计算单元也只能干等这是分布式训练里最经典的资源浪费形态。传统的优化思路是把通信和计算分开打磨通信部分交给NCCL、DeepEP这类专门库计算部分交给cuBLAS、Transformer Engine这类算子库。两条线各自都优化得极强但拼在一起的时候接缝处总有漏风的地方。每次内核切换都要付出调度、同步、显存读写三笔账账目虽小架不住MoE层一天要跑成千上万轮。什么是MoK一个把整层焊死的巨无霸内核MoK的全称是Mixture-of-Kittens跟MoE的命名开了一个温柔的玩笑但它做的事情一点都不温柔把MoE层一次完整的前向过程从token分发、专家计算、结果汇合到全部网络通信全部融进单个CUDA内核里执行。在CUDA的世界里内核是GPU上执行的最小程序单元一次MoE前向在传统写法里要连续启动十几个内核每个内核完成一小步数据在显存和寄存器之间进进出出。典型的执行顺序是先做路由计算再按路由结果分发token然后各专家并行做矩阵乘法最后把结果收回来汇合十几步操作环环相扣。每两个内核之间都有调度和同步的开销这些开销单独看都不大合在一起却足以吞掉可观的训练时间。MoK的做法是让一个巨无霸内核从头跑到尾中间不退出GPU、不经手CPU调度、不产生内核启动的间隙。所有专家计算和所有通信都在同一段代码里按照确定的顺序完成像一个精密装配的流水线。CPU只在两头露个面中间全程由GPU自己接力省下的不仅仅是启动时间还有每一轮交接时的隐式同步。正因为它是一个确定性内核同样的输入在任何一次运行里都会产生完全一致的执行路径。对训练来说确定性意味着可复现意味着出了故障可以精确回放现场这对数万卡规模的生产集群是性命攸关的特性。这种特性在推理侧叫稳定性在训练侧叫可诊断性两个词指向的是同一种工程能力。瓶颈的真正来源内核边界不是免费的为什么把内核焊在一起能快这么多答案藏在GPU的工作方式里。内核与内核之间的边界并不是免费的分界线每一次内核启动、每一次同步、每一次CPU介入都是真金白银的延迟成本。内核启动本身是微秒级的开销单独看微不足道但乘上MoE层一天上亿次的执行次数就是实打实的训练时间。MoE前向尤其吃亏因为它的通信模式是典型的全对全每个专家可能收到来自任意一块GPU的token每块GPU也要把token发给任意一个专家这种模式天然就是碎片化的。全对全通信在系统里对应的原语是all-to-all它在网络拓扑上的流量模式最散也最难被局部优化吃掉。碎片化的直接后果是GPU大部分时间处于半空闲状态算完一批分发要等通信回来通信完成了又要等下一个内核被调度上去计算单元和网络单元永远在互相等待谁也不肯先干完。利用率曲线因此变成锯齿状每一个低谷都是一笔被浪费的电费和机时。Cursor实测过这个等待到底有多贵。在它的生产环境里仅分发和汇合两个阶段的信令开销就要103微秒在微秒级优化的世界里这已经是一个大得惊人的数字相当于好几轮内核启动的时间。103微秒里既有握手信号也有同步等待还有缓冲区的管理开销每一块都被Cursor的团队逐一量化过。两份成绩单2.37倍与1.41倍的差距是诚实MoK发布里最值得玩味的地方是它同时公布了两组数字单层基准的2.37倍和端到端吞吐的1.41倍。两者差距巨大而恰恰是这组差距让它显得比大多数发布更可信。愿意把层级的漂亮数字和端到端的朴素数字一起摆出来本身就是一种工程自信。2.37倍来自MoE单层的MXFP8前向基准对比对象是业界公开的最快方案包括NCCL加PyTorch、DeepEP加PyTorch、DeepEP加Transformer Engine以及英伟达HybridEP加Megatron的四种组合。MXFP8是英伟达新一代浮点格式在精度和吞吐之间取了平衡点能在它上面拉开差距说明内核的调度质量是真实的。但MoE层只是完整训练步骤里的其中一层它再快也快不过整条流水线里的其他环节。单层的2.37倍摊到全流程之后变成端到端的1.41倍这是符合工程常识的换算也是诚实发布该有的样子。这个换算关系恰恰是很多性能发布故意含糊过去的细节。对外行来说2.37倍是新闻标题对工程师来说1.41倍才是真相。一个在真实规模上把吞吐抬高四成的内核比一个只在单层基准上翻倍的演示有价值得多因为它经过了生产的检验。生产环境里的每一个百分点背后都是真金白银的GPU账单。方案组合组成单层前向相对性能NCCL PyTorchNCCL集合通信加cuBLAS计算内核公开基线中的最慢档DeepEP PyTorchDeepEP通信路径加cuBLAS内核低于MoKDeepEP Transformer EngineDeepEP加TE融合算子低于MoKHybridEP Megatron英伟达HybridEP加Megatron内核公开基线中最快者MoK单一确定性megakernel比最快公开基线快2.37倍通信压到18微秒拉取分发与推送汇合MoK把信令开销从103微秒压到了18微秒降幅超过百分之八十靠的是两招组合拉取分发加推送汇合。分发阶段由接收方主动拉取自己需要的token汇合阶段由计算方直接推送结果数据流向和信息流向被彻底解耦。这套组合拳的本质是把原先串行的通信步骤改成并行的数据流让GPU的多个引擎同时干活而不是排队等活。传统实现里分发是一个推的动作发送方把token推给专家所在的GPU中间需要大量的握手和确认信号。MoK反过来做让接收方按需拉取发送方只负责把结果推回来中间的冗余信号被成批砍掉。一拉一推之间通信链路上的无效往返被压缩到了极限。另一项关键设计是环形token缓冲区。传统实现里token缓冲区的管理需要CPU参与MoK让缓冲区在GPU上自行旋转既不丢token也彻底移除了CPU与GPU之间的同步点这是去掉内核边界后的自然红利。缓冲区像一条环形传送带token流上去又流下来全程不需要外部干预。这些优化叠加在一起在512张GB300 GPU的实测里端到端吞吐从每卡每秒760.9个token提升到1070.2个token整体提升百分之四十一。在已经高度优化的生产栈上还能挤出这么多说明之前的瓶颈确实被精准命中了。通信被计算完全覆盖之后GPU的空闲窗口消失了利用率曲线从锯齿状变成了一条平滑的高位直线。重叠粒度之争中间值才是最优解为什么MoK不直接复用现有的通信计算重叠方案因为重叠也有粒度问题。Comet走的是细粒度重叠DeepEP走的是粗粒度重叠而Cursor团队论证最优解在两者中间而且取决于具体的工作负载。粒度太细调度开销反而压过收益粒度太粗通信又藏不住两头不讨好。它给出的启发式规则很具体每个按专家分组的GEMM至少覆盖两个完整的SM wave。SM wave是GPU调度里的一轮完整执行波次两个wave意味着计算量足够把通信完全藏在计算身后。wave的宽度由硬件决定一旦算力跑满一个wave调度器就会自动开始下一轮这个机制是所有GPU吞吐优化的底层语言。这个阈值不是拍脑袋定的。以Kimi 2.5的模型形状为例也就是Composer 2.5的基座模型按这个启发式算出来的token下限是2368个实测延迟和这个估计高度吻合误差小得惊人。这说明启发式背后有扎实的硬件模型支撑不是靠经验碰出来的。小于这个规模的批次通信占主导融合的收益有限大于这个规模计算占主导通信自然被盖住。MoK的调度器就贴着这条线做文章把每一轮执行的节奏都卡在临界点附近。这条线既是性能的分水岭也是设计哲学的浓缩所有的优化都围绕一个物理事实展开而不是围绕框架的抽象层展开。一段可运行的代码复现SM wave启发式这些机制里最值得工程师亲手验证的一部分是SM wave阈值的估算逻辑。下面是一段完整可运行的Python代码它根据SM数量、每SM每wave的token处理能力计算覆盖指定wave数所需的最小token数并给出调度建议。只要机器上有Python3解释器把代码粘贴进任意文件就能运行不依赖任何第三方库。def estimate_wave_tokens(sm_count, tokens_per_sm_per_wave, waves2): 估算覆盖指定数量SM wave所需的最小token数。 规则一个完整wave能处理的token数等于SM数乘以每SM每wave的token数。 return sm_count * tokens_per_sm_per_wave * waves def decide_batch(tokens, threshold): if tokens threshold: return f{tokens} {threshold}: 通信可被计算隐藏走融合路径 return f{tokens} {threshold}: 通信占主导建议增大批次或走非融合路径 if __name__ __main__: sm_count 132 tokens_per_sm_per_wave 9 threshold estimate_wave_tokens(sm_count, tokens_per_sm_per_wave, waves2) print(f两个完整SM wave的token阈值: {threshold}) for batch in (1000, threshold, 5000): print(decide_batch(batch, threshold))这段代码在任意装有Python3的机器上直接运行输出的是两个完整SM wave的token阈值是23761000个token的批次会被建议走非融合路径2376和5000的批次会被判定为通信可隐藏。这个数量级与Cursor官方按Kimi 2.5形状算出的2368非常接近说明启发式的骨架是可以被独立复现的。把参数换成自己模型的专家配置和GPU规格就能估算出自己训练任务里通信开始被隐藏的临界点这是从这篇发布里能直接带走的最实用工具。确定性训练回放能力的隐形价值确定性带来的收益被绝大多数人低估了。分布式训练里最痛苦的排查场景是同样的输入两次运行得到不同的结果你根本分不清是代码问题、网络抖动还是别的环境因素。没有回放能力的时候排查一个分布式问题往往要花掉整个团队好几天而有了回放定位时间可以压缩到小时级。MoK把整条MoE路径变成确定性的等于给训练加上了回放功能任何一次崩溃都能用完全相同的执行轨迹复现现场。对正在数万张卡上训练模型的团队来说这个能力本身就是巨大的工程资产它把玄学问题变成了可复现的bug。另一个隐性收益是性能剖析的质量。当执行路径完全确定时剖析器抓到的热点就是真实热点不存在调度抖动造成的假信号优化工作可以像调试单机程序一样按部就班地进行。每一轮优化都能确认是变好了还是变坏了不会把噪声当成收益。还有一层是安全收益确定性执行让行为审计变得可行任何一次异常输出都能追溯到确定的输入和参数这在模型安全治理越来越严格的当下会成为训练基础设施的加分项。监管要的回溯能力在确定性系统里是天然自带的。门槛只有Blackwell整机架玩得起当然MoK不是免费的午餐它的硬件门槛高得直接。它只支持英伟达Blackwell架构的SM100和SM103芯片需要CUDA 13.0以上的工具链PyTorch 2.10以上目标平台是GB200和GB300的NVL72整机架。整机架拓扑意味着七十二张卡之间通过NVLink组成一个高速互联域卡间带宽比传统以太网高一个数量级这是它敢把通信写进内核的硬件前提。这意味着绝大多数团队现在用不上它单机八卡实验室跑不了AMD的集群跑不了上一代Hopper架构的卡也跑不了。它服务的是一小撮拥有整机架Blackwell互联的玩家普通开发者只能先看个热闹。但门槛高不等于没有意义看懂它的设计思路不需要任何特殊硬件。开源的价值在于它把一条被验证过的完整工程路径摊开了别人怎么分析瓶颈、怎么设计内核结构、怎么权衡重叠粒度每一步都有据可查后来者可以踩着脚印走。即使现在用不上等硬件到位的那一天方案已经等在那里了。等Blackwell普及到更多数据中心这套内核可以直接拿来用不必重新发明轮子。开源的时间点往往领先硬件普及三到五年MoK正好卡在这个窗口期上提前把方案固化了下来让硬件普及的那一天直接有成熟软件可用。行业信号应用公司开始改写算力这件事更大的信号在产业层面一家应用公司开始自己造训练基础设施了。Cursor在模型上的投入正在从单纯地买算力转向直接改造算力这是质变。当应用公司开始把训练内核当作核心资产来经营芯片厂商和云厂商的定价话语权都会在不知不觉中被削弱。过去两年的AI叙事是应用公司用现成的模型和云服务Cursor的Composer模型加MoK内核组合说明这个叙事正在被改写。应用公司手里握着真实的训练负载比任何芯片厂商都清楚瓶颈长在哪里这是它们做基础设施的天然优势也是它们敢于下场的底气。Cursor说MoK已经在数万张GPU上支撑Composer训练这个部署规模本身就是宣言训练基础设施不再是只有头部大厂才碰得起的领域有真实负载的公司都可以下场。规模在这里不是炫耀而是验证验证这套方案在真实压力下确实站得住。对独立开发者和小团队这轮开源的直接价值在认知层面。当你还在纠结提示词怎么写的时候头部玩家已经在对CUDA内核动刀了这个剪刀差本身就是值得警惕的信号。竞争的战场已经下沉到了硅片之上这个事实比任何单个数字都更值得记住。冷静看发布哪些数字要打折也要冷静看待发布里的水分。百分之四十一和2.37倍都是Cursor自己报告的数字公开仓库单独跑不出端到端结果外部能复现的只有单层基准部分这一点官方在文档里也承认了。在自报数据的年代愿意把参照系讲清楚的人反而更容易被社区记住。官方明确说端到端数字来自内部生产系统无法仅凭公开代码复现。这是所有公司自报性能数据的通病MoK只是比大多数发布做得透明把层级基准的复现方法一并交了出来。复现的门槛是硬件不是代码这一点它没有藏。还有一个容易混淆的参照系2.37倍的对比对象是公开基线不包含Cursor自己的旧栈而百分之四十一恰恰是对比它自己的旧栈DeepEP加自家优化得出的。两套数字的参照系不同不能混在一起解读否则就会得出错误的结论。另外MoK要求GB300 NVL72的整机架拓扑NVLink域内的高带宽互联是它敢把通信写进内核的前提。离开这个前提整套方案直接失效移植到别的拓扑需要重做大量工作。方案的有效性边界划得很清楚这也是它专业的地方。四课普通工程师能从MoK带走什么第一课通信和计算的边界是人为的不是物理的。性能优化的最高形态是消除边界而不是在边界两侧各自拼命优化MoK把这条原则贯彻到了极致。当你下一次优化遇到瓶颈先问问自己这个边界是不是我自己画的。第二课度量单位的选择决定了优化方向。Cursor报告吞吐用的是每卡每秒token数而不是抽象的FLOPs因为对训练来说真正有价值的是每卡每秒吐出的有效数据量。指标选对了优化才不会跑偏。第三课好的启发式胜过盲目调参。两个SM wave的阈值来自对硬件调度模型的深入理解规则少而准比在超参数空间里大海捞针高效得多。一条有物理依据的规则顶得上一百次随机实验。第四课发布要诚实才走得远。同时公布单层的2.37倍和端到端的1.41倍看起来数据不够惊艳实际上建立了稀缺的可信度工程社区最缺的就是可信的基准。这四课没有一条需要Blackwell硬件才能实践它们属于方法论层面任何规模的团队都能立刻用上。下一次瓶颈可能就在你定义之外MoE训练优化的战场正在从谁能把专家计算写得更快转向谁能把通信藏得更彻底。MoK是这条路线上的一个里程碑但肯定不是终点Megakernel的思路正在向更多算子蔓延内核融合会成为越来越多性能故事的共同主角。下次打开训练日志看到GPU利用率不满的时候可以想想Cursor的选择瓶颈可能根本不在计算而在那些看不见的内核边界上。答案往往藏在问题被重新定义的地方而重新定义问题的能力才是这次开源真正给出的礼物。