Prhub

SGLang 周报 2026 第 21 周 · 05-18 至 05-24

本周核心主线是调度器的大规模模块化重构与投机解码性能优化,同时多硬件适配(AMD、NPU、XPU)与 DeepSeek V4 支持持续推进,但重构风险导致了一次 CUDA graph 统一回退,需加强测试覆盖。

仓库:sgl-project/sglang 周期:2026-05-18 至 2026-05-24 来源 PR:301 · 重点 PR:24 自动生成 · 生成于 2026-05-25 01:00

本周亮点

  • 调度器重构成为本周最显著趋势,fzyzcjy 提交了超过 30 个 PR,将 Scheduler 中的 Mixin 逐步拆分为独立组件(如 SchedulerOutputStreamer、SchedulerMetricsReporter、SchedulerWeightUpdaterManager 等),大幅提升代码模块化程度,但大量缺失测试覆盖,需警惕回归。
  • Speculative decoding 相关优化密集:hnyls2002 系列的 FutureMap 改造、seq_lens 路由、output_tokens_buf 统一等,以及 Eagle breakable CUDA graph、trtllm MHA overlap 等,整体提升了推理效率。
  • DeepSeek V4 支持在多平台全面铺开:AMD 修复 JIT 兼容、NPU 新增注意力后端、CUDA graph 适配、MTP CP 支持、仓库预热等,同时伴随 NSA→DSA 重命名(#25821)与 JIT kernel 模块化重构(#25884)。
  • 性能优化亮点:Req token-id 存储迁移至 array.array('q')(#25098),长 prompt 场景张量构建加速;SM90 FP8 GEMM swap-AB 调度(#25532),小 batch 解码加速 5.8-18.5%。
  • 扩散(diffusion)管道引入角色感知组件加载与阶段亲和性(#25168),支持 GLM-Image 并行生成(#25645),以及 MXFP4 量化(#22338),体现多模态推理能力持续增强。
  • 基础设施与 CI 改进:新增 Rust gRPC 原生服务器 crate(#23506)、XPU Qwen3.5 支持(#21668)、MUSA CI 完善(#25074)、bot-cherry-pick 工作流多项修复与增强。

风险观察

  • 调度器重构 PR 普遍标注“缺少测试覆盖”,尤其是核心路径变更如 #25635、#25630、#25628 等,集成测试套件可能不足以捕获所有回归,需加强持续集成覆盖。
  • CUDA graph 统一重构(#26134)因引入严重正确性问题被回退(#26166),表明注意力后端的重构需更充分的测试与评审,相关后续统一尝试应分步并附加单元测试。
  • AMD 与 NPU 平台依赖特定硬件与外部库(如 sgl-kernel-npu、triton-xpu),版本兼容性风险持续存在,例如 cutlass-dsl 版本回退(#25938)与 NPU 依赖问题。
  • 多个 PR 存在未经修复的 review 建议(如 #25884 中 torch.mm out_dtype 不支持、缺失 @cache_once),虽已合并但可能引入潜在 bug,建议跟进修复。
  • DeepSeek V4 相关 PR 数量多且涉及多处核心路径(注意力、内存池、调度),跨 PR 的依赖与冲突风险(如 #25821 目录 mv 冲突),需要协调合并顺序并确保集成测试通过。

完整周报

SGLang 周报:2026 第 21 周(05-18 → 05-24)

1. 执行摘要

本周仓库共合并 301 个 PR,其中高亮 PR 24 个,工作量密集。最显著的变化主线是调度器(Scheduler)的模块化重构——由 fzyzcjy 主导,超过 30 个 PR 将原先集中在 Mixin 中的逻辑拆解为独立组件(如输出流、指标上报、权重更新、不变量检查等),旨在大幅降低继承复杂度并提升可测性。与此同时,投机解码(Speculative Decoding)的性能优化与调度器内 FutureMap 的全面应用(hnyls2002 系列)是本周期另一大重点。硬件支持方面,AMD、NPU、XPU 的 DeepSeek V4 与扩散模型适配持续推进,性能优化(token id 存储、FP8 GEMM)也有重要产出。需警惕的是,本次大规模重构普遍缺乏测试覆盖,且有一例 CUDA graph 统一重构因引入回归而被回退,整体风险偏高。

2. 本周重点变化

  • 调度器重构(Scheduler Decoupling):fzyzcjy 将 Scheduler 中的多个 Mixin(如 SchedulerMetricsMixinSchedulerUpdateWeightsMixinSchedulerOutputProcessorMixin 等)逐一迁移到 scheduler_components/ 下的独立类中。典型步骤是:1)新建组件类并迁移状态与静态方法;2)修改 Scheduler 的调用点;3)删除原 Mixin 文件。此系列 PR 涉及 30+ 文件更改,但行为保持向后兼容。重要子项包括指标上报(#25629-#25631)、输出流(#25634-#25635)、日志概率处理(#25632-#25633)、不变量检查(#25623-#25624)、KV 事件发布(#25625-#25626)、负载查询(#25627-#25628)、权重更新(#25616)等。
  • 投机解码优化(Spec Overhaul):hnyls2002 围绕 FutureMap 结构进行了系统性改造。将 seq_lensoutput_tokens_buf 等关键数据通过 FutureMap 传递,消除不必要的同步等待(#25879、#25922、#25944、#26020)。此外,支持可中断 CUDA 图(#25795)、统一验证输出(#25566)、修复 EAGLE 相关 bug(#25454、#26126)等。这些改进了 spec v2 的吞吐和延迟表现。
  • DeepSeek V4 全面铺开:涉及 AMD 平台(#25898、#24933)、NPU 注意力后端(#23482)、CUDA graph 分段支持(#23351)、MTP Context Parallel(#24934)、JIT kernel 模块化重构(#25884)、仓库预热(#25810)、缓存失效修复(#25889)等。同时完成了 NSA→DSA 的大规模重命名(#25821),引入向后兼容别名。
  • 性能提升:Req token-id 存储从 list[int] 改为 array('q')(#25098),降低张量构建开销;SM90 FP8 GEMM 引入 swap-AB 调度(#25532),小 batch 解码 kernel 几何平均加速 1.156x;ViT 编码优化(#25910);LoRA MoE 去除 GPU 同步瓶颈(#25531)。
  • 扩散模型:角色感知组件加载(#25168)为分解部署奠定基础;MXFP4 量化(#22338)、GLM-Image 并行生成(#25645)、FLUX.2 支持(#25661)等。

3. 模块与主题趋势

3.1 调度器架构从 Mixin 到组件化

  • 这是继上一周之后延续的大动作。fzyzcjy 采用“先建组件、再迁移、后删除”的模式,每个 PR 职责清晰。当前 scheduler_components/ 已包含 output_streamermetrics_reporterbatch_result_processorkv_events_publisherinvariant_checker 等 10 余个模块。该趋势降低了单个文件复杂度,但引入大量新类,文档与测试配套需跟上。

3.2 投机解码管道持续打磨

  • FutureMap 成为连接 Draft/Verify/Scheduler 的核心通信原语,串起 seq_lens、token、output 等数据流。本周进一步合并重构(#26085 移除 FutureIndices 包装类),整体设计趋于成熟。此外,Eagle 可中断 CUDA 图(#25795)与 trtllm MHA overlap(#25925)释放了更多并行度。

3.3 多硬件适配加速

  • AMD:DSV4 运行时修复、AITER 升级、CI 超时调整、测试种子确定性。
  • NPU:扩散注意力后端、MXFP4 量化、DeepSeek-OCR 模型、文档最佳实践。
  • XPU:Qwen3.5 支持、triton-xpu 升级、fused_topk 适配。
  • Intel GPU:Diffusion 基础 kernel、CPU bug 修复。
  • 新增平台(MUSA、Blackwell)CI 与性能调优也持续活跃。

3.4 文档与 CI 改进

  • 多位贡献者更新了 NPU、AMD、Diffusion 等文档。CI 方面:bot-cherry-pick 工作流大幅改进(支持 PR 编号、状态检测、权限分离),pr-test-extra 触发优化,测试套件引入 stage-a 合理性套件(#25831)。cutlass-dsl 版本经历升级→回退→再修复,反映了外部依赖管理的挑战。

4. 风险观察

风险项 相关 PR 说明
缺少测试覆盖 #25635, #25630, #25628 等数十个重构 PR 调度器重构几乎未附带新测试,仅依赖现有集成测试。任何重构引入的回归都有可能漏到生产环境。
核心路径变更回退 #26166(回退 #26134) CUDA graph 统一重构因 FlashInfer use_ragged 不一致等 bug 被回退,说明注意力后端的统一需更稳健的测试与渐进式合并策略。
第三方依赖版本兼容 #25938(cutlass-dsl 4.5.1→4.5.0)、#25576、#23809 NPU、XPU 依赖的 sgl-kernel-npu、triton-xpu 版本频繁变化,可能导致 CI 不稳定或运行时错误。
未修复的 review 问题 #25884(torch.mm out_dtype 不支持、缺失 @cache_once 尽管 PR 已合并,但 reviewer 指出的可能 bug 尚未确认修复,建议后续跟踪。

5. 重点 PR 速览

以下 PR 选取基于重要性、影响范围及趋势代表性:

PR # 标题 作者 关键点
25098 Req token-id 存储迁移至 array('q') Jialin 34 个文件改动,降低张量构建开销,为 Rust Radix Cache 铺垫。
25532 SM90 FP8 GEMM swap-AB 调度 yuan-luo sgl-kernel 优化,Llama-3.1 70B decode 吞吐提升 5.8-18.5%。
25284 Gemma4 流水线并行 yuan-luo 支持 –pp-size 2,权重占用降低 48%,KV 缓存翻倍。
25821 NSA→DSA 重命名(带别名) ch-wan 大规模重命名范例,向后兼容别名设计,涉及 CLI、环境变量、注册表等。
25983 ForwardContext 引入,解耦 ForwardBatch ch-wan 删除 ForwardBatch 中四个运行时引用,通过 context manager 获取,架构解耦。
25678 废弃 NPU 专有 MoE 路径 ch-wan 统一至 FusedMoE 管道,通过 free function 绕过调度器处理 ascend_fuseep。
25635 输出流移至 SchedulerOutputStreamer fzyzcjy 调度器重构典范,机械移动 438 行,职责清晰化。
25879 FutureMap 路由 seq_lens,消除 verify_done 等待 hnyls2002 spec v2 性能关键改进,减少 CPU-GPU 同步。
25979 PD 后端共享逻辑合并到公共基类 ShangmingCai 消除 Mooncake/Mori/Nixl 后端重复代码,降低维护成本。
25898 AMD DSV4 运行时修复 kkHuang-amd 修复 CompressStatePool、JIT 不兼容等三个问题,启用 HIP 适配。

6. 后续建议

  • 强化调度器重构的测试覆盖:当前 merge 了大量无测试的新组件,建议在下周安排专项测试编写,至少覆盖核心路径(如 request ingress、streaming、metrics、weight update)的单元测试。可利用 test/registered/unit/managers/ 目录。
  • 跟进未修复的 review 问题:特别是 #25884 中 torch.mmout_dtype 参数不受标准 PyTorch 支持,以及缺失 @cache_once 可能导致性能退化。建议作者或团队提交修复 PR。
  • 统筹 CUDA graph 统一重构:虽然在 #26166 中被回退,但其方向(减少后端重复代码)是正确的。应先在单一后端上验证充分,分步推进,并增加针对性测试(如回退中发现的 FlashInfer use_ragged 不一致)。
  • 关注 DeepSeek V4 的跨 PR 集成风险:DSV4 相关改动涉及注意力、内存池、调度器、JIT kernel 等多个模块,且与 AMD/NPU 路径重叠。建议设立一个集成测试标签(如 dsv4-integration)在 CI 中每日运行,提前发现交互问题。
  • 投入资源辅助 NPU/AMD 平台稳定性:这些平台的测试经常因超时或依赖版本失败(如 AMD 超时放宽 #25978、NPU 日志抑制),建议细化 CI 资源分配并冻结关键依赖版本。

参与讨论