10月18日,调研机构SemiAnalysis披露了一项英伟达针对月之暗面Kimi K3的上游vLLM优化:在相同的GB300 NVL72硬件上,2.8万亿参数的Kimi K3跑出423 tokens/s/user,性能提升1.68倍。这项优化出自CentML团队工程师Benjamin,核心是一个约1.2万行代码的Megakernel(巨核)融合方案。相关实现已于10月16日合入vLLM上游,不过需要使用者主动打开才会生效。驱动中国IT之家知乎
提速的不是"读懂",是"吐出"每个字
推理分两段:预填充(prefill)是模型消化你的问题,解码(decode)是一个token一个token地吐出回答。对一个2.8T参数的稀疏MoE模型来说,decode才是体验的瓶颈——每生成一个字,GPU都要依次经过注意力计算、跨卡归约、路由、专家分发等环节;矩阵小、kernel启动碎、还要反复等跨卡结果,光把算术做快解决不了"GPU大部分时间在等"的问题。这次新增的正是一条针对GB300的专用decode执行路径,把原本分散在一层里的操作重新组织,同时尽量让GPU计算、跨卡通信和权重读取同时进行。知乎
Megakernel怎么"缝":把排队改成并排
思路不是找一个最强算子套在所有输入上,而是按任务形状重组执行流:小矩阵单独设计GEMM内核,batch变大后切换split-K让更多计算单元分担;注意力算完的输出投影结果直接放进NVLink可访问缓冲区,接收方拿到就继续算,通信和计算交叠起来;原本每张卡重复计算的MoE路由分数拆到不同TP rank再交换结果;共享专家放到另一条GPU流上并行执行,并配合下一步权重的预取。这个新内核用英伟达的CuTe DSL编写,把一层里的十几个步骤"缝"成少数几个融合kernel。一句话概括:让计算、通信、读权重三件事同时发生,而不是排队发生。张通社
1.68、1.73……同一个事件为什么有多个倍数
标题里的1.68倍对应423 tokens/s/user的单用户速度口径。同一轮优化里,开启DSpark投机解码后,16张GB300上单请求decode达到842 tokens/s,是同配置原版vLLM的1.73倍;即便不用投机解码,不同batch下也有明显提升。倍数不完全一致,是因为batch大小、是否叠加投机解码、统计的是单用户速度还是整组吞吐各不相同。阅读时还要提防另一种口径陷阱:有流传的"约1.8倍"对比,拿的是16张卡的成绩和8张卡的历史结果作参照,跨硬件数量的数字不能直接比。知乎
对用户意味着什么,对英伟达又意味着什么
这首先改变的是服务端的账本:2.8T MoE模型过去又慢又贵的decode环节被压缩,同样的卡能服务更多用户,交互式与智能体任务的延迟更低。你在Kimi官方API上何时感受到,还要看月之暗面自己是否启用这条路径,官方目前尚未回应。
把它放回更长的线索里更有意思。7月K3发布后的48小时曾被称为全球AI行业的"平静被打破",英伟达市值单日缩水千亿美元级别。此后白宫方面被曝考虑限制中国开源模型,黄仁勋公开反对封禁K3等中国AI大模型。而这一次,英伟达为最热的开源中国模型做深度推理优化,逻辑并不矛盾:此前它已靠Blackwell软件栈把DeepSeek V4这类模型的推理成本大幅压低,效率越高、模型越好用,最终消耗的卡反而越多——卖铲子的公司,正在给用铲子的人打磨铲柄。21世纪经济报道微博
需要留的边界:上述数字均来自英伟达与SemiAnalysis一侧披露的同硬件基准测试,不是Kimi官方API实测;优化默认不开启,不同并发与配置下的收益幅度也不同。
校验提示文案
校验提示文案