Hyper Optimizing Kimi K3 in vLLM: Moving Fast and Responsibly

发表时间: 2026-10 · Blog post by Benjamin Chislett (NVIDIA) (vllm.ai)

原文: https://vllm.ai/blog/2026-10-16-kimi-k3-megakernel

作者:Benjamin Chislett (NVIDIA)
来源:vLLM Blog (2026-10-16)

Kimi K3在NVIDIA GB300上的解码性能
Kimi K3在NVIDIA GB300上的解码性能

速读

一句话结论 本文通过代码智能体辅助开发面向 NVIDIA GB300 的统一 CuTe DSL 解码路径,并配合工程隔离规范,使 Kimi K3 在 16 张 GB300 上结合 DSpark 投机解码达到 842 tokens/s 吞吐,无投机解码下相比原生 vLLM 获得 1.31 至 1.92 倍吞吐加速。

要解决什么问题 在大模型解码推理中,原有框架 stock vLLM 面临性能瓶颈与工程治理的双重卡点。在执行机制上,解码阶段受限于显存带宽与内核启动开销,原生实现在单层模型中频繁触发细粒度小算子(每层调用 23 个 kernel、耗时 130 微秒);同时,注意力输出的张量并行 All-Reduce 通信与后续计算串行,阻塞了计算单元;在混合专家模型(MoE)中,各张量并行节点全量重复计算路由打分与投影,带来冗余算力消耗与权重读取;通信等低带宽占用期也缺乏对后续权重的预取机制。在工程治理上,代码智能体能快速生成复杂的算子与融合逻辑,但其产出速度远超人工逐行审查与测试的承载上限,若直接合入极易引发线上故障,若人工全量细审又会成为效率瓶颈,亟需兼顾极致性能与自动化风险隔离的实现范式。

怎么做的 核心思路是将特定配置下的计算图深度收拢至定制的 CuTe DSL 核函数中,实现算子融合、通信掩盖与权重预取,同时在架构上将变动局限在模型代码内以隔离风险。该方法主要由四个优化部件与一套治理准则构成:一是算子形状自适应调优,输入投影在小 batch 下使用专用小矩阵算子,大 batch 下切换为将矩阵乘法跨计算单元切分的 Split-K 算子;配合解码上下文并行(DCP)切分长文本 KV 缓存并融合局部计算。二是无屏障的计算与通信重叠,将注意力输出投影、All-Reduce 通信与残差累加深度融合,算子通过跨卡 NVLink 共享缓冲区以无屏障(fence-less)方式读写;较大 batch 下切换为两阶段归约以减少卡间数据搬运:

$$Y_{\text{local}} = \sum_{r \in \mathcal{G}_{\text{local}}} Y^{(r)}, \quad Y = \text{Distribute}(Y_{\text{local}})$$


三是 MoE 路由切分与流水线重叠,将路由评分与投影按张量并行节点切分,合并为单次 GEMM 计算并通过 NVLink 交换结果:

$$S_p = X W_{\text{route}}^{(p)}, \quad p \in \{1, \dots, P\}$$
消除专家计算前的重复计算与 kernel 启动;共享专家在独立 CUDA 流上与路由或受路由专家重叠运行。四是旁路权重预取,在通信等未占满显存带宽的阶段,利用旁路流启动专用 kernel 将下一算子静态权重提前加载到缓存,提升命中率。治理上遵循快速优化规范(Fast-track RFC):代码与运行时状态严格隔离、限定软硬件范围但保留完整采样与长文本等核心服务特性、结合微观算子与整模长文本(MRCR、AIME25)系统化排查编译器违规重排等隐患,并通过自备 GPU(Bring-Your-Own-GPU)机制规模化沉淀评测结果。

效果如何 实验基于 8 卡与 16 卡 NVIDIA GB300(单 NVLink 域且支持多播),对比基线为通用开源推理框架 stock vLLM(代表标准未融合执行路径)。在启用 DSpark 投机解码(草稿长度 7、模拟接受长度 6、batch 为 1)设置下,16 卡 GB300 上的优化实现达到 842 tokens/s 解码吞吐,较 stock vLLM 的 488 tokens/s 提速 1.73 倍;单层执行耗时从 130 微秒降至 69 微秒,算子数从 23 个减少到 13 个。在无投机解码的纯吞吐测试中,16 卡(TP16)在 batch 1 至 64 取得 1.62 至 1.92 倍加速(batch 1 达 256.4 tokens/s,batch 2 达 436.7 tokens/s);8 卡(TP8)取得 1.31 至 1.58 倍加速(batch 1 达 193.3 tokens/s)。在回放真实代码智能体流量的 AgentX 基准测试中,16 卡优化实现的 P90 交互吞吐达到 403.2 tokens/s/user,较此前 8 卡基线的 223.7 tokens/s/user 提升 1.8 倍。作者亦指出了局限与代价:为确保系统稳定,优化路径刻意排除了对全局共享的输入准备、采样及 KV 管理逻辑的改造;优化深度绑定于 GB300 硬件与单 NVLink 域拓扑;且复杂长生成容易暴露时序数值敏感问题,高度依赖大算力资源进行交叉验证。

主要贡献

当前代码辅助智能体(Coding Agents)已能够分担模型优化中最艰难的工程环节,包括编写复杂的 GPU 算子(Kernel)、执行跨算子融合(Cross-operator Fusion)、实现计算与通信重叠(Overlap Computation with Communication),以及针对不同批大小(Batch Size)和 GPU 拓扑配置进行精细化执行调优。针对 Kimi K3 模型,作者团队通过智能体辅助开发流程,在 NVIDIA GB300 架构上构建了一条基于 CuTe DSL 的统一定制解码路径(Specialized Decode Path),全面覆盖了跨 8 卡或 16 卡 GPU 系统的注意力机制(Attention)、混合专家架构(MoE)以及跨卡通信。

该工作的主要贡献与创新成果概括如下:

  1. 极致的解码推理吞吐与交互延迟提升:在 16 块 NVIDIA GB300 GPU 上配合 DSpark 投机解码(合成接受长度 $AL=6$)运行批大小为 1 的测试时,Kimi K3 的解码吞吐超过 840 tokens/s;在多个常规测试配置下实现了 $1.5\sim2\times$ 的解码吞吐提升;在模拟真实编程智能体负载的 AgentX 基准测试中,将系统的 P90 交互响应速率提升了最高 $1.8\times$。
  2. 端到端深度定制的 CuTe DSL 解码路径:在 NVIDIA Blackwell 架构(GB300)的单 NVLink 多播(Multicast)域内,针对 $1\sim64$ 的解码批大小,实现了针对小矩阵与大批次自适应调优的投影算子、KDA(Kimi Delta Attention)定制算子、解码上下文并行(Decode Context Parallelism, DCP)、全无锁屏障(Fence-less)的计算与通信融合算子、分布式 Router 与专家调度重叠,以及通信窗口下的权重预取(Prefetching)机制。
  3. 应对智能体代码膨胀的高速通道工程治理范式(Fast-track RFC):针对智能体生成高性能优化代码速度远超人工代码审查与维护瓶颈的矛盾,提出了旨在管理风险、降低维护负担的快速通道规范,确立了变更隔离、边界清晰但保留核心功能、系统化双层正确性验证以及分布式算力验证的四大工程原则。

背景知识与设计原则

1. 现实矛盾:智能体辅助开发与代码审查/维护的失衡

2. 快速通道优化(Fast-track RFC)的四大核心设计原则

作者团队依托 https://github.com/vllm-project/vllm/issues/59665 确立了四项指导原则,其核心宗旨是在严格控制系统性风险的前提下化解人工审查负担:


方法细节

针对 Kimi K3,该方案引入了一条全新的专用解码路径,采用基于 CuTe DSL 的定制算子替换并融合了几乎所有关键子算子。该路径面向单 NVLink 多播域下的 8 卡或 16 卡 NVIDIA Blackwell 架构(GB300)GPU,支持 $1\sim64$ 的解码批大小,并支持针对超长上下文的解码上下文并行(DCP)。具体技术路径如下:

Kimi K3算子执行时间线:原生vLLM单层耗时130微秒共23个算子;专用解码路径耗时69微秒共13个算子。
Kimi K3算子执行时间线:原生vLLM单层耗时130微秒共23个算子;专用解码路径耗时69微秒共13个算子。

1. 针对工作负载调整张量形状(Tune shapes for the workload)

2. 计算与通信重叠(Overlap computation and communication)

3. 优化 MoE 调度与重叠(Improve MoE scheduling and overlap)

4. 权重预取至缓存(Prefetching upcoming weights into cache)


实验环境


实验结果

1. DSpark 投机解码吞吐加速

在配置为 TP16、采用 DSpark 投机架构(草稿长度 $DL=7$,合成接受长度 $AL=6$,$ISL=1$,$OSL=1\text{k}$)的极小批次(Batch Size = 1)极限测试下,专用的 CuTe DSL 解码路径实现了性能跃升:

Kimi K3在TP16、DSpark DL7及合成AL=6下的批大小1性能:专用解码达到842 tokens/s,相比原生vLLM的488 tokens/s提升1.73倍。
Kimi K3在TP16、DSpark DL7及合成AL=6下的批大小1性能:专用解码达到842 tokens/s,相比原生vLLM的488 tokens/s提升1.73倍。

2. 无投机解码下的批大小吞吐扩展性

在不启用投机解码的纯粹自回归解码负载下,针对 TP8 与 TP16 拓扑,全面测试了批大小从 1 到 64 的绝对吞吐与相对原生 vLLM 的加速比。测试数据如下表所示:

批大小 (Batch size) TP8 吞吐 (tokens/s) TP8 加速比 (vs 原生) TP16 吞吐 (tokens/s) TP16 加速比 (vs 原生)
1 193.3 1.58× 256.4 1.88×
2 317.8 1.50× 436.7 1.92×
4 540.6 1.55× 702.5 1.81×
8 820.1 1.45× 1,157.9 1.79×
16 1,274.8 1.43× 1,758.3 1.71×
32 1,702.6 1.33× 2,550.9 1.64×
64 2,375.9 1.31× 3,606.1 1.62×

3. AgentX 真实智能体业务负载表现

在高度拟真的编码智能体基准测试 AgentX 中,系统在真实上下文交互场景下的交互指标得到大幅改善:

Kimi K3在AgentX基准上的结果:P90交互性与单GPU总吞吐量关系,对比早期GB300 vLLM曲线与专用解码实现。
Kimi K3在AgentX基准上的结果:P90交互性与单GPU总吞吐量关系,对比早期GB300 vLLM曲线与专用解码实现。

补充细节与后续演进

1. 向 DeepSeek-V4.1-Flash 的架构迁移与扩展

该设计模式已成功复现并扩展至 DeepSeek-V4.1-Flash 模型(对应 PR https://github.com/vllm-project/vllm/pull/61868)。该实现统一继承了 decode_backend: latency_specialized 配置开关,支持最高 64 个并发请求、Prefill 与混合批次的透明回落机制,以及完备的投机解码:

四张GB300 GPU上的DeepSeek AgentX测试结果:专用解码开启与关闭状态下的P90交互性与单GPU总吞吐量对比。
四张GB300 GPU上的DeepSeek AgentX测试结果:专用解码开启与关闭状态下的P90交互性与单GPU总吞吐量对比。

2. 最新开源模型优化拓展进展

3. 致谢信息(Acknowledgements)


结论

本项研究展示了以智能体辅助工程(Agent-assisted Engineering)与系统级硬件共拓设计相结合的方式,能够在 Blackwell(GB300)架构上将超大规模前沿混合专家模型(Kimi K3)的推理延迟推向硬件极限。通过构建统一定制的 CuTe DSL 算子流水线,实现了细粒度矩阵调优、跨卡计算与通信深度融合、分布式 Router 去重以及多流权重预取,获得了最高 $1.92\times$ 的无投机吞吐提升与 $1.73\times$ 的投机解码性能跨越。

更为核心的系统性启示在于:面对智能体生成高性能优化代码带来的代码膨胀与维护危机,社区必须转向以“变更严格物理隔离、生产功能绝对保留、算子/模型双层确定性验证、社区算力自治评估”为支柱的快速通道(Fast-track)模式。未来,团队将继续坚持这一高标准演进路线,在保证生产环境确定性与可维护性的绝对前提下,持续推动更多前沿模型与硬件拓扑逼近物理极限速度。


方法细节引用汇总

在《方法细节》与技术演进章节中,原文明确引用的核心提案(RFC)、代码实现拉取请求(PR)及源代码模块汇总如下:

引用编号/标识 引用内容名称与链接 引用出现的段落背景 原文描述摘要
[RFC 59665] https://github.com/vllm-project/vllm/issues/59665 背景知识与设计原则概述 "The proposed fast-track model optimization RFC provides a foundation for this approach. Our guiding principle is to decrease review burden while managing risk."(提供降低审查负担并控制风险的组织基础)
[PR 61867] https://github.com/vllm-project/vllm/pull/61867#issue-5869895165 方法细节引言段落 "This contribution introduces a new decode path for Kimi K3 which fuses and replaces almost all operations with customized CuTe DSL kernels... For more details, please refer to the PR."(引入融合且替换几乎所有操作的全新定制 CuTe DSL 解码路径)
[KDA 模块] https://github.com/benchislett/vllm/blob/620c50482d15d092ad6086c106ce42916efc39cc/vllm/models/kimi_k3/nvidia/specialized_decode/cutedsl/kda/prepared.py 方法细节第 1 节(张量形状微调) "KDA also uses an optimized CuTe DSL decode kernel, with scheduling tuned for the batch size and number of attention heads on each GPU."(KDA 采用针对批大小与单卡注意头数量调度优化的 CuTe DSL 解码算子)
[OProj 模块] https://github.com/benchislett/vllm/blob/620c50482d15d092ad6086c106ce42916efc39cc/vllm/models/kimi_k3/nvidia/specialized_decode/cutedsl/oproj/prepared.py 方法细节第 2 节(计算通信重叠) "At larger batches, the implementation switches to a two-stage reduction: GPUs first combine assigned portions of the output, then distribute the results. This reduces the data movement between GPUs."(较大批次下切换为两阶段规约,先合并指定输出切片再分发,降低跨卡通信量)
[MoE 运行时] https://github.com/benchislett/vllm/blob/620c50482d15d092ad6086c106ce42916efc39cc/vllm/models/kimi_k3/nvidia/specialized_decode/cutedsl/moe/experts_runtime.py 方法细节第 3 节(MoE调度与重叠) "The shared expert runs on a separate stream. Its work overlaps with routing or routed-expert computation, depending on the configuration... Details are in experts_runtime."(共享专家在独立流上运行,根据配置与路由或专家计算重叠,严格平衡并行度防争用)
[RFC 61698] https://github.com/vllm-project/vllm/issues/61698 设计原则第 4 条(规模化验证能力) "The related Bring-Your-Own-GPU evaluation RFC proposes standard evaluation images that contributors can run on their own hardware. Reproducible result bundles and submissions linked to GitHub PRs would make the evidence much more accessible."(提出标准评测镜像让贡献者在自有硬件执行,提交可复现结果包)
[基准方法] https://inferencex.semianalysis.com/agentx 实验环境与结果分析段落 "AgentX replays traffic patterns from real coding-agent sessions, including long contexts, multiple conversation turns, tool pauses, parallel subagents, and KV-cache reuse."(重放真实编程智能体长上下文、多轮对话、工具等待及多子智能体流量)
[PR 61868] https://github.com/vllm-project/vllm/pull/61868 补充细节(未来拓展章节) "For DeepSeek-V4.1-Flash, #61868 follows the K3 design patterns: behind the same opt-in decode_backend: latency_specialized switch... fuses all-reduce + mHC at every sublayer boundary, replaces the large-batch MoE and GEMMs with CuTe DSL kernels..."(沿用 K3 设计模式,通过专用开关融合通信与 mHC 算子并重构 MoE GEMM)