首页 / 资讯详情
103μs 降到 18μs 背后,Cursor 为何剑指英伟达,重写 GPU?
摘要
MoK:把 token 调度、跨 GPU 通信和专家计算塞进同一个 GPU 内核。 作者丨郑佳美 编辑丨岑 峰 7 月 21 日,NVIDIA 公布了 GB300 NVL72 训练 DeepSeek-V3 的最新成绩:256 张 GPU 上,单卡性能达到 1,648 TFLOPS。不到两周后,Cursor 开源了 Mixture-of-Kittens,简称 MoK。它没有继续折腾更快的矩阵乘法,而是直接重写了一层 MoE 的执行方式,把 token 调度、跨 GPU 通信和专家计算塞进同一个 GPU 内核。这件事有点反直觉。因为 GB300 NVL72 已经把 72 张 GPU 放进同一个 NVLink Domain,整机架 NVLink 总带宽达到 130 TB/s。按这个规格看,GPU 之间传数据应该已经足够快。可在大规模 MoE 训练里,通信依然会拖住专家计算。问题出在 MoE 的数据流。Router 每一步都会重新决定 token 去哪个专家,而专家分散在不同 GPU 上。token 要先跨卡送过去,算完再传回来;发送之前还要整理位置,到达之后还要等待数据完整。随着 MXFP8 和 Blackwell Tensor Core 把专家计算压得越来越短,这些原本还能藏在计算后面的等待开始越来越显眼。Cursor 做 MoK,就是从这里下手。它没有只追求一次 Dispatch 能传多快,而是重新安排 token 怎么到达专家、什么时候开始计算,以及通信和计算怎样同时占用 GPU。在算力资源被 Blackwell 和 NVLink 堆到极致的今天,开发者发现:硬件跑得再快,也救不了低效的软件编排。MoK 的开源不仅是一个内核的胜利,它标志着“应用层定义算子”的时代的开始:为了压榨最后 30% 的算力,AI 创业公司正在发起一场底层主权的夺权战争。雷峰网不过要理解 Cursor 的这套设计为什么有效,先是得看清一层 MoE 到底在什么地方交了“通信税”。01MoE 的「通信税」,远不止把 token 传过去在普通稠密 FFN 里,token 要经过哪些权重基本是固定的。MoE 加入 Router 之后,每个 token 临时选择几个专家。采用 Expert Parallel 时,专家又被拆到很多 GPU 上,于是一次前向传播至少要发生两轮跨卡通信。雷峰网第一轮叫 Dispatch,把 token 送到专家所在的 GPU;专家计算完成后,再通过 Combine 把结果送回 token 原来的位置。训练还有反向传播,对应再执行两轮反方向的通信。如果只是把一大块连续数据从 A 搬到 B,NVLink 已经足够快。MoE 麻烦在于,Router 每一步给出的数据分布都不同。某个专家这一步可能收到很多 token,下一步又很少。系统需要先数清楚每个专家有多少 token,再决定这些 token 放在目标 GPU 的什么位置,还要把同一专家的数据尽量排在一起。Grouped GEMM 才能拿到规整的输入,高效喂给 Tensor Core。通信结束后也不能立刻开算。目标 GPU 要确认远端写入已经全部完成,数据确实可见。专家负载又不完全均匀,一部分 GPU 可能早早结束,仍然得等最忙的专家收尾。所以一个“通信”阶段里,其实混着数据搬运、布局生成、