今天是版本日:SGLang v0.5.18 正式发布(08-22,710 PR / 212 贡献者),vLLM v0.28.0rc1 / rc2 在同一周进入 RC(08-20 / 08-21),rc2 的头条正是 08-19 才在 SGLang 落地的 DFlash2。两个框架都在做同一件事——消灭关键路径上的气泡:SGLang 填的是启动时的 I/O 气泡,vLLM 填的是投机解码的同步气泡。
★ 今日最值得关注
SGLang #32017:重叠检查点载入,Qwen3-32B 启动从 84.8s 压到 35.6s(2.38×)。
先看传统启动在干什么。一个推理实例的启动是串行的两个阶段:
- 权重载入:从磁盘 / 对象存储把 checkpoint 拷进 GPU 显存——这是纯 I/O,GPU 在等。
- CUDA graph 捕获:把各 shape 的 kernel 序列录成 graph——这是纯 GPU 计算与 CPU 侧录制,I/O 在等。
这两件事互相等待,且资源完全正交:拷权重时 GPU 闲着,捕 graph 时磁盘闲着。这是一个教科书式的流水线机会。
v0.5.18 的做法是把「权重分块 staging」与「graph 渐进捕获」流水线化:权重一边分块往显存搬,graph 一边按可用的形状逐步捕获。GPU 等 I/O 的空档被 graph 捕获填满了。
实测(Qwen3-32B,H100):
| 传统串行 | 重叠载入 | 变化 | |
|---|---|---|---|
| 启动耗时 | 84.8 s | 35.6 s | 2.38× |
开关是 opt-in 的:--startup-weight-load-mode overlap。
谁最该关心这个数字:不是跑长稳态的服务,而是重启、扩容、抢占恢复这三类场景。
- 弹性扩容:流量高峰拉起新实例,2.38× 意味着扩容响应快一倍多。
- 抢占式实例:被抢占后重建,这段启动延迟直接计入不可用时间。
- 滚动升级 / 灰度:每次发版都要重启一批实例,启动时间乘以实例数就是总的发布耗时。
- 开发调试:改一行配置等 85 秒和等 36 秒,是两种完全不同的工作节奏。
反过来,稳态长跑的服务吃不到这个收益——启动只发生一次。别拿它当吞吐指标。
同源的三个改动:这次发布里还有两处性质和 #32017 完全一致——TP LMHead 改 All-to-All #32313(DS-V4-Pro B200 上 LMHead 从 320µs 降到 169µs,消灭的是集合通信气泡)和 FlashInfer MNNVL 纯 allreduce #30700(Blackwell 小 batch +6.9%)。加上 08-19 的 DFlash2(消灭 CPU-GPU 同步气泡),SGLang 这一周做的事高度统一:把关键路径上所有「一边等一边闲」的地方填满。
一、关于本期论文侧日报
本期没有 AI 论文 / 产业侧日报。 本系列的日报归档中不存在 2026-08-23 的论文摘要文件,因此本篇不设「AI 产业与论文热点」章节——不编造、不用相邻日期的内容顶替。这一篇只覆盖 vLLM / SGLang 工程侧,篇幅会集中在社区跟踪与原理解读上。
(作为背景:08-21 的论文侧主题是 ResNet 残差跳连与 DeepNorm,08-25 之后的日报由本系列的其他篇目覆盖。)
二、vLLM & SGLang 社区跟踪
SGLang v0.5.18(08-22 发布,710 PR / 212 贡献者)
- 启动优化:#32017 重叠检查点载入(见上文 ★)。
- 性能 / 依赖:
- #32313 TP LMHead 改 All-to-All:DS-V4-Pro 在 B200 上 LMHead 320µs → 169µs。
- #30700 FlashInfer MNNVL 纯 allreduce:Blackwell 小 batch +6.9%。
- #28836 torch 2.13.0 + triton 3.7.1 落地。
- #34304 移除 torchao。
- #32434 内核缓存统一到
SGLANG_CACHE_DIR。
- 模型与配方:新增 Muse Glimmer / SANA-Video / LTX-2.5 / Cosmos3 等多模态与扩散模型,补齐 Qwen3.8 / Ling-3.0 / DeepSeek-V4-Pro-0813 的部署配方。
SGLang 的「脱离 torchao」信号
#34304 移除 torchao 值得单独拿出来看,因为它是今年以来最明确的一个架构取向表态。配合 #32434 统一内核缓存目录,SGLang 在传递的信号是:量化路径与内核栈要自己管。
这与本系列一路跟踪的结论一致——模型定义向 transformers 靠拢求「广度」,数据面 / 运行时向自研靠拢求「确定性」,是分层而非二选一。 SGLang 正在把数据面这一层收得更紧。
代价也要说清楚:
- 升级必须重新编译内核,不能再指望上游 wheel 直接可用。
- 失去了 torchao 这条路径——如果你的部署里有依赖 torchao 的自定义量化流程,升级前必须确认替代方案。
- 内核缓存目录统一为
SGLANG_CACHE_DIR是好事(多版本共存时不再互相踩缓存),但已有的缓存目录需要迁移或清理。
vLLM v0.28.0 进入 RC
- v0.28.0rc1(08-20)/ rc2(08-21) 已进入 RC,稳定线仍是 v0.27.1。rc2 的头条是 DFlash2 投机解码 #52816 落地——08-19 刚在 SGLang 合入的草稿头改进,两天后就出现在 vLLM 的 RC 里。这个传播速度本身是本期最值得记的观察点。
影响:大版本临近,可以提前在 RC 上验证,尤其是 DFlash2 的收益与显存占用。
- #52560(新特性):main 新增 Qwen3-Omni DSpark 投机解码。这是把置信度调度投机(08-13 的 #47808 那条线)扩展到多模态。
多模态此前基本吃不到投机解码的红利——视觉编码器与文本解码的执行剖面差太多。Qwen3-Omni 上跑通,意味着多模态推理吞吐有望打开新的空间。
- Bug 修复 / 架构:#50272 修复 short_conv(LFM2)投机解码;#53204 Rust 前端上报 engine world size;#50723 RL 稀疏 checkpoint 经原生权重加载器更新;Mamba 前缀缓存内部预填充检查点带来 9%~25% TTFT 改善(main commit)。
常驻专题进展
PD 分离。 SGLang v0.5.18 专设了 Disaggregation + PD 条目,这是一个信号——它从「实验特性」变成了「有专人维护的子系统」:NIXL bootstrap 超时 #34692、Mooncake PP prefill #33807、unified-memory PD #33362、prefill 跳过投机 scratch #34191。vLLM 侧则延续 KV 卸载与并行解耦的加固。两家的 PD 都已进入「能运维」阶段,不再是能不能跑通的问题,而是边界条件下会不会炸的问题(超时、驱动、内存统一)。
架构演进。 主线是 DFlash2 跨框架落地:SGLang #35371(08-19 合入)→ vLLM #52816(进 rc2)。投机解码的主干算法正在以「天」为单位在两个框架间同步,这在两年前是不可想象的。另一侧,torch 2.13 双框架跟进,SGLang 移除 torchao、统一内核缓存目录使自研内核栈收敛,MoE deferred finalize 与 DSV4 mhc fusion 均已默认开启。
Step 适配(仍全部 open)。 五个 vLLM Step PR 全部 open(#53174 08-20 更新 / #52115 / #49490 / #49642 / #40070),SGLang #35206 / #32325 全 open。
本期出现了一条来自官方的、很难得的自认:Step 的 ModelScope 部署文档亲口写明「Full MTP3 not yet available in vLLM」,并说明 vLLM 部署仅能设 num_speculative_tokens: 1;相比之下 SGLang 的 dev-step-3.7-flash + EAGLE MTP(3) 更成熟。
这条信息的重要性超过任何一个 PR 状态:它把「Step 的性能卖点依赖 MTP」这个此前只能从 PR 停滞推断的判断,变成了官方承认的事实,并且给出了可验证的配置约束——vLLM 上 num_speculative_tokens 只能给 1,等于没有投机加速。 选型时如果要吃 Step 的 MTP 收益,当前只能走 SGLang。
StepFun-ai org 本期仅 Step-Realtime-CLI 有 08-21 的小更新,核心模型仓持续冻结(Step-3.7-Flash 06-01 / Step-3.5-Flash 04-03)。
三、一句话结论
SGLang v0.5.18 与 vLLM v0.28.0 RC 在同一周把两件事摆上了桌面:启动时间这种「非稳态指标」终于被当成一等公民优化(Qwen3-32B 84.8s → 35.6s,扩容 / 抢占恢复 / 滚动发布直接受益),而 DFlash2 从 SGLang 合入到进入 vLLM RC 只用了两天,投机解码主干算法的跨框架同步速度已经快到需要按天跟踪;今天最该做的两件事是:给弹性扩容的实例加上 --startup-weight-load-mode overlap,以及确认你的 Step 部署是不是正卡在 num_speculative_tokens: 1 上——如果是,换 SGLang。
信息来源:SGLang v0.5.18 Release(2026-08-22);SGLang PR #32017 / #32313 / #30700 / #28836 / #34304 / #32434 / #34692 / #33807 / #33362 / #34191 / #35206 / #32325;vLLM v0.28.0rc1 / rc2 tag;vLLM PR #52816 / #52560 / #50272 / #53204 / #50723 / #53174 / #52115 / #49490 / #49642 / #40070;Step-3.7-Flash-FP8 与 Step-3.5-Flash-Int4 部署文档(ModelScope);StepFun-ai org 仓库推送时间核对。
💬 留言
NaphJohn/LLM-blog尚未启用 Discussions:请在 GitHub 仓库 Settings → General → Features 勾选 Discussions 后刷新本页,评论区即自动显示。