技巧精选

LMSYS 用 megakernels 把解码速度从 517 提到 1,109 tokens/s

精选理由

LMSYS 放出完整技术拆解:8 块 GB300 上把解码干到 1,109 tokens/s,每步 kernel 启动从 1,450 砍到 97。prefetch、指令缓存预热、跨卡通信这些招数都写了,还带 CUDA/PTX 代码。做推理优化的工程师直接照着学就行。

LMSYS 发布 Muse Spark Open 技术博客,在 8× GB300 上用 SGLang megakernels 将解码速度从 517 提升到 1,109 tokens/s。每个 decode step 的 kernel 启动次数从 1,450 降到 97,实现每层只启动一个 kernel。方法上,作者 Pranjal Shankhdhar 解释了三个关键机制:提前把权重 prefetch 进共享内存和 L2、预热指令缓存避免大 kernel 取码停顿、用数据本身作为跨 GPU 通信的就绪信号。配套优化还包括融合 draft model,使 drafting 速度快 2.6×。文章附带实测时间线、CUDA/PTX 代码示例,以及为什么停在每层一个 megakernel 而不做更大的取舍分析。

图片来源 · LMSYS Org (SGLang)
正文

这类 megakernel 思路的本质是削减 kernel launch 开销,把计算、内存读写和通信重叠在同一层的大 kernel 里完成。对做推理优化的工程师来说,博客里的实测数据和方法拆解可以直接参考复现,也说明了在 GB300 这类新硬件上系统层调优仍有很大空间。

原文 · LMSYS Org (SGLang)

Muse Spark Open: 517 → 1,109 tokens/s on 8× GB300 with SGLang megakernels. One kernel launch per layer, overlapping compute, memory loads and communication. Total launches per decode step drop from 1,450 to 97.

https://t.co/YXb3pGDKH3

In our new technical post, Pranjal Shankhdhar explains what makes this work: - Prefetching weights into shared memory and L2 before they’re needed. - Warming the instruction cache so large kernels don’t stall fetching their own code. - Using data itself as a readiness signal for cross-GPU communication. - Fusing the draft model to make drafting 2.6× faster.

The post also includes measured timelines, CUDA/PTX examples, and the tradeoffs behind stopping at one megakernel per layer.

产业坐标与信源核验

本条情报归属 AITOP「技巧」核心栏目,重点聚焦北美前沿实验室与硅谷科技巨头。在跨区域产业观察坐标中,该动态直接关联「AI 开发者工具链、Coding Agent 与工程化实践」「中美大模型技术代差与商业化对照」研究主线,反映出当前技术演进与商业落地的最新风向。涉及核心实体与技术议题包括:SGLang、GB300、megakernels、推理优化,读者可通过下方标签进入对应专题页查阅历史脉络与关联对比。

信源核验说明:本文原始线索采编自「LMSYS Org (SGLang)」(@lmsysorg),经 AITOP 多维评分管线结构化提炼。

LMSYS 用 megakernels 把解码速度从 517 提到 1,109 tokens/s|AI热报