SGLang Main 分支每日变更总结 (2026-04-08)

概述

北京时间 2026 年 4 月 8 日 00:00 ~ 24:00,SGLang main 分支共有 38 次提交。主要变更涵盖:DFLASH 推测解码新功能、HTTP/2 服务器支持、Score API 扩展支持 SequenceClassification 模型、多项性能优化,以及跨 NVIDIA/AMD/NPU 平台的 bug 修复。


一、新模型与新功能

1.1 DFLASH 推测解码支持

DFLASH 是一种全新的推测解码算法,使用小型 draft model 捕获 target model 的辅助隐藏状态来高效生成草稿 token。Draft model 不包含 token embedding 或 LM head(复用 target model 的),引入了专用的 worker、Triton kernel 以及与 scheduler、cuda graph runner、flashinfer backend 的深度集成。

Commit Message 总结 PR 链接
[Feature] Add DFLASH speculative decoding support (#22077) 新增 DFLASH 推测解码算法,包含 draft worker、Triton kernel、server_args 参数等完整实现 PR #22077

server_args.py 新增参数:

  • --speculative-dflash-block-size:DFLASH 的 block size(verify window 长度),即 draft token 数量
  • --speculative-dflash-draft-window-size:Draft model KV cache 的滑动窗口大小,默认全上下文

注意事项: DFLASH 不支持 dp attention 和 pipeline parallelism(pp_size 必须为 1),会禁用 overlap scheduler 和 mixed chunked prefill。

1.2 HTTP/2 服务器支持

Commit Message 总结 PR 链接
Support HTTP2 server (#21700) 集成 Granian 实现 HTTP/2 服务器支持,支持 HTTP/1.1 和 HTTP/2 自动协商 (h2c) PR #21700

server_args.py 新增参数:

  • --enable-http2:启用 HTTP/2 服务器(默认关闭)

新增环境变量:

  • SGLANG_GRANIAN_PARENT_PID:Granian worker 进程中标识主进程 PID

限制: 不支持 SSL 热重载,不支持多 tokenizer worker。

1.3 Score API 支持 SequenceClassification 模型

Commit Message 总结 PR 链接
[Score API] Add SequenceClassification Model support (#22118) Score API 扩展支持 SequenceClassification 模型(如分类模型),返回 pooled class logits 而非 logprob PR #22118

二、性能优化

2.1 GPU Kernel 与计算优化

Commit Message 总结 PR 链接
Kernels community fa3 (#20796) 集成 kernels-community 的 FlashAttention v3,支持从社区仓库加载优化 kernel,回退到 sgl-kernel PR #20796
[NVIDIA] Enable FP4 flashinfer trtllm routed moe (#21240) FP4 FlashInfer TRTLLM MoE runner 新增 routed topk 路径,支持外部路由选择 PR #21240
Reduce unnecessary kernels and copies in the NSA indexer (#22232) NSA indexer 启用 torch.compile(AMD HIP),修复 RoPE 更新中的 self-aliasing 问题 PR #22232
[HiSparse] Optimize the scheduling of decode backup. (#21932) HiSparse decode backup 使用独立 CUDA stream 和 event 同步,实现异步备份与计算重叠 PR #21932
[Mamba] eliminate D2H if tracking mamba states (#20522) Mamba 状态追踪预先计算 mask 信息,消除不必要的 device-to-host 同步 PR #20522
[NPU] enable index Cache for npu (#21502) NPU DeepSeek MLA 启用 index cache,层间复用 topk indices,减少冗余计算 PR #21502

新增环境变量:

  • SGLANG_CACHE_DIR:指定 kernel 社区 kernel 的缓存目录
  • SGLANG_USE_SGL_FA3_KERNEL:控制是否使用 sgl-kernel 的 FA3 实现

2.2 推测解码优化

Commit Message 总结 PR 链接
Switch eagle_infer_beta to EAGLE3 (#22303) 测试从 EAGLE 切换到 EAGLE3,调整启动参数和精度阈值,反映 EAGLE3 成熟度 PR #22303

三、Bug 修复

3.1 并发与锁问题

Commit Message 总结 PR 链接
[fix] Fix writer lock deadlock in update_weights_from_ipc during pause_generation (#22290) 修复 pause_generation 期间 update_weights_from_ipc 的 writer lock 死锁 PR #22290
[tiny] Fix TOCTOU race in pause-aware weight update locking (#22304) 修复上述死锁修复引入的 TOCTOU 竞态条件,保持 is_pause_cond 上下文内完成检查与执行 PR #22304

3.2 平台特定修复 (NVIDIA / AMD / NPU)

Commit Message 总结 PR 链接
fix: wrap _import_static_state in inference_mode to fix resume on Blackwell (#21035) Blackwell (GB200) 上恢复 checkpoint 时 buffer 赋值触发 autograd,用 inference_mode 包裹修复 PR #21035
[AMD] Fix GLM-5 fp8 KV quant path dispatch on MI300 (#22314) 修复 AMD MI300 上 GLM-5 FP8 KV 量化路径分发顺序,确保走 HIP 路径而非 NVIDIA 路径 PR #22314
[Bugfix] [NPU] Qwen3.5 with quantization fix (#21692) 修复 NPU 上 Qwen3.5 ModelSlim 量化加载,改进 scheme 检测并扩展 packed_modules_mapping PR #21692
[NPU] fix qwen3.5 video processor (#22266) 修复 NPU 上 Qwen3.5 视频处理,添加 NPU 专用的 video preprocessing wrapper PR #22266
[AMD] Fix DLPack Error in Aiter flydsl GEMM by Detaching MoE Gate Weight (#22262) AMD Aiter flydsl GEMM 的 MoE gate weight 带 autograd history 导致 DLPack 错误,添加 detach 修复 PR #22262
[NPU] enable mla prepare fused kernel only when being mla attn (#22024) NPU MLA fused kernel 仅在模型实际使用 MLA attention 时启用,防止非 MLA 模型 KV cache 处理错误 PR #22024

3.3 模型与推理修复

Commit Message 总结 PR 链接
[fix] [whisper] ensure inputs are moved to the correct device before processing. (#22293) Whisper encoder 的 input_features 和 position_ids 可能在 CPU 而模型在 GPU,显式移动到正确设备 PR #22293
[HiCache] Fix write_backup return type when parent not backed up (#22185) write_backup 在 parent 未备份时返回 None 导致调用方计数错误,改为返回 0 PR #22185
[diffusion] fix: make warmup image initialization rank-safe (#21817) 多 GPU diffusion 中每个 rank 独立创建 warmup image 导致竞争,改为 rank 0 创建后广播 PR #21817
fix: Auto-correct page_size for Mamba no_buffer radix cache mode (#20538) Mamba 模型使用 no_buffer radix cache 时需要 page_size=1,自动检测并纠正配置 PR #20538

四、CI 与测试改进

Commit Message 总结 PR 链接
[CI] Update nightly test models for H200/B200 (#22288) 更新 H200/B200 夜间测试模型(后被 revert) PR #22288
Revert “[CI] Update nightly test models for H200/B200 (#22288)” (#22297) 回退上述 H200/B200 夜间测试模型更新 PR #22297
Add fast-fail to multimodal-gen CI (#22284) 为 multimodal-gen CI 添加 fast-fail 机制 PR #22284
[CI] Migrate mgsm_en eval to gsm8k to remove openaipublic dependency (#21931) 将 mgsm_en 评估迁移到 gsm8k,消除对 openaipublic 的依赖 PR #21931
Only upload CUDA coredumps on test failure (#22301) 仅在测试失败时上传 CUDA coredump PR #22301
[CI] Fix stage-b-test-1-gpu-large (0) timeout by reordering LoRA tests and using tokenizer from cache (#22292) 重新排序 LoRA 测试并使用缓存 tokenizer 解决超时问题 PR #22292
Use dedicated runner label for deepep 8-GPU tests (#22309) 为 deepep 8-GPU 测试使用专用 runner label PR #22309
[CI] Move manual-only nightly tests out of test/registered/ (#22298) 将仅手动的夜间测试移出 test/registered/ PR #22298
[AMD] Add GLM-5-FP8 nightly performance benchmarks for MI30x and MI35x (#21710) 新增 AMD MI30x/MI35x 上 GLM-5-FP8 的夜间性能基准测试 PR #21710
Add CI tests for GLM-5 (#22285) 新增 GLM-5 模型的 CI 测试 PR #22285
[CI] Relax gpt-oss 4GPU accuracy threshold from 0.60 to 0.58 (#22237) 放宽 gpt-oss 4GPU 精度阈值 PR #22237
[CI] Set RUNAI_STREAMER_MEMORY_LIMIT=0 for stage-b-test-1-gpu-small (#22346) 为 stage-b-test-1-gpu-small 设置 RUNAI_STREAMER_MEMORY_LIMIT=0 PR #22346
Refactor auto benchmark unit tests and fix CI bug (#22270) 重构 auto benchmark 单元测试为包结构并修复 CI bug PR #22270
[Diffusion] Add diffusion NVFP4 scaled-mm correctness test (#22127) 新增 B200 上 diffusion NVFP4 scaled matrix multiplication 正确性测试 PR #22127
[tiny] migrate /get_server_info; print accept length in accuracy tests (#22282) 测试从 /get_server_info 迁移到 /server_info 端点 PR #22282
[AMD] Fix test_kimi_k25_mxfp4.py (#22188) 固定 Kimi K2.5 MXFP4 测试的模型 revision hash PR #22188

五、UX 与其他改进

Commit Message 总结 PR 链接
UX: clean loggings (#22174) 修复 encoder 模型参数名拼写错误,抑制 noisy flash_attn logger,简化 JSON response 类 PR #22174

六、重点汇总

server_args.py 新增参数一览

参数名 用途 相关 PR
--speculative-dflash-block-size DFLASH block size(verify window 长度) #22077
--speculative-dflash-draft-window-size DFLASH draft model KV cache 滑动窗口大小 #22077
--enable-http2 启用 HTTP/2 服务器(Granian) #21700

新增环境变量一览

环境变量 用途 相关 PR
SGLANG_GRANIAN_PARENT_PID Granian worker 进程标识主进程 PID #21700
SGLANG_CACHE_DIR kernel 社区 kernel 缓存目录 #20796
SGLANG_USE_SGL_FA3_KERNEL 控制是否使用 sgl-kernel 的 FA3 实现 #20796
RUNAI_STREAMER_MEMORY_LIMIT RunAI streamer 内存限制(CI 测试用) #22346

新模型支持

  • DFLASH:全新推测解码算法,支持独立 draft model 配置(#22077
  • SequenceClassification 模型:Score API 新增支持 Llama/Qwen2/Qwen3 分类模型(#22118
  • GLM-5-FP8:新增 AMD MI30x/MI35x 性能基准测试(#21710