Sglang 代码变更总结 (UTC+8 2026-04-02)
本文总结了 Sglang 项目在 2026年4月2日(UTC+8 0时到24时) main 分支的所有 commit 变更,共计 41 个 commit。
总体概览
| 分类 |
Commit 数量 |
关键变更 |
| 新模型/模型增强 |
3 |
GLM-4.7-Flash(NPU)、MiMo-V2-Flash reasoning parser、MiniMax-M2.5 FP8 MoE |
| 性能优化/Kernel |
7 |
融合 temperature+softmax sampling、ngram corpus 迁移到 TVM FFI、trtllm sparse MLA kernel、NSA trtllm 默认(Blackwell)、DSA trtllm default、flashinfer_trtllm mxfp8 gemm、多线程权重加载默认启用 |
| Bug Fix |
6 |
spec_v2+logprob、multi tool streaming、PCG torch dynamo recompile、tokenizer_manager AttributeError、HiCache host indices 内存泄漏、HTTP 400 streaming 校验 |
| server_args.py 新增参数 |
0 |
无新增,但有逻辑变更(runai_streamer load_format、staging buffer 校验) |
| 新增环境变量 |
4 |
SGLANG_DISAGG_STAGING_BUFFER、SGLANG_DISAGG_STAGING_BUFFER_SIZE_MB、SGLANG_DISAGG_STAGING_POOL_SIZE_MB、SGLANG_STAGING_USE_TORCH |
| 基础设施/特性 |
3 |
Runai Model Streamer 对象存储加载、GPU staging buffer 异构 TP、PP key for file backend |
| Diffusion |
2 |
FA3 attention backend(MUSA)、NVFP4 CI for B200 |
| CI/测试 |
8 |
VLM TP=4 CI、FP8/FP4 SM120 CI、multimodal 超时调整、Kimi K2.5 变体清理、est_time 更新、GSM8K 评估路径统一、comparator e2e 修复 |
| 重构/清理 |
4 |
移除 flashmla 回退、flashinfer trtllm moe 代码去重、/get_server_info 迁移、HiRadixCache TTL pin 回退 |
| PD Disaggregation |
2 |
PD 场景 cache hit 统计、HiCache 内存泄漏修复 |
一、新模型与模型增强
1.1 GLM-4.7-Flash NPU 支持
| Commit Message |
总结 |
PR 链接 |
[NPU] Support GLM-4.7-Flash on NPU (#21408) |
在 NPU 上增加对 GLM-4.7-Flash 模型的支持,修改 ascend_backend 和 rotary_embedding |
PR #21408 |
1.2 MiniMax-M2.5 FP8 MoE
| Commit Message |
总结 |
PR 链接 |
[NVIDIA] Enable fp8 flashinfer_trtllm_routed MoE for MiniMax-M2.5 (#20394) |
在 NVIDIA GPU 上为 MiniMax-M2.5 启用 FP8 flashinfer_trtllm_routed MoE 后端 |
PR #20394 |
1.3 MiMo-V2-Flash Reasoning Parser
| Commit Message |
总结 |
PR 链接 |
fix(MiMo-V2-Flash): add mimo reasoning parser (#21414) |
为 MiMo-V2-Flash 模型添加 reasoning parser,支持 reasoning 输出解析 |
PR #21414 |
二、性能优化与 Kernel
2.1 融合 Temperature + Softmax Sampling
融合 temperature 缩放和 softmax 操作为单个 kernel,减少 decode 阶段的 kernel launch 开销。
| Commit Message |
总结 |
PR 链接 |
[Kernel] Fuse temperature + softmax in sampling for decode speedup (#20501) |
将 temperature 缩放和 softmax 融合为单个 kernel,减少 decode 阶段的 kernel launch 开销(后续被回退) |
PR #20501 |
2.2 Ngram Corpus 迁移到 TVM FFI
将 ngram corpus 从 torch cpp_extension 迁移到 TVM FFI jit_kernel,提升编译效率和运行时性能。
| Commit Message |
总结 |
PR 链接 |
Migrate ngram corpus from torch cpp_extension to TVM FFI jit_kernel (#21920) |
将 ngram corpus 从 torch cpp_extension 迁移到 TVM FFI jit_kernel,新增 10 个 C++/Python 文件 |
PR #21920 |
2.3 DSA/NSA Kernel 优化
| Commit Message |
总结 |
PR 链接 |
[DSA] Set trtllm kernels as nsa default for Blackwell (#21914) |
将 Blackwell GPU 上的 NSA 默认 kernel 设置为 trtllm |
PR #21914 |
[DSA] Support trtllm sparse mla kernel for prefill batches (#21783) |
支持 trtllm sparse MLA kernel 用于 prefill batch 场景 |
PR #21783 |
2.4 flashinfer_trtllm mxfp8 GEMM
| Commit Message |
总结 |
PR 链接 |
[FlashInfer v0.6.7] Integrate flashinfer_trtllm mxfp8 gemm (#21576) |
集成 flashinfer_trtllm mxfp8 GEMM,优化 mxfp8 量化路径性能 |
PR #21576 |
2.5 flashinfer trtllm moe 代码去重
| Commit Message |
总结 |
PR 链接 |
[refactor] Clean up duplicate flashinfer trtllm moe code (#21233) |
清理 flashinfer trtllm moe 的重复代码,精简代码结构 |
PR #21233 |
2.6 多线程权重加载默认启用
| Commit Message |
总结 |
PR 链接 |
Enable multi-thread weight loading by default (#20289) |
默认启用多线程权重加载,加快模型启动速度 |
PR #20289 |
2.7 Revert: FlashMLA 回退
| Commit Message |
总结 |
PR 链接 |
Revert "Rollback flashmla to older version [1/2]" (#21922) |
回退之前对 flashmla 版本回退的变更,恢复到新版本 |
PR #21922 |
三、Bug Fix
| Commit Message |
总结 |
PR 链接 |
Fix spec v2 + logprob when max_num_token is set (#20799) |
修复设置 max_num_token 时 spec_v2 + logprob 的计算错误 |
PR #20799 |
Multi tool streaming fix (#20004) |
修复多工具流式输出的问题 |
PR #20004 |
fix pcg torch dynamo recompile in mxfp8 Triton path (#21888) |
修复 mxfp8 Triton 路径下 PCG 的 torch dynamo 重复编译问题 |
PR #21888 |
fix: pre-init tokenizer_manager to avoid AttributeError in shutdown (#21824) |
预初始化 tokenizer_manager 避免 shutdown 时的 AttributeError |
PR #21824 |
[HiCache] fix: Clone host indices to avoid memory leak (#21624) |
克隆 host indices 以避免内存泄漏 |
PR #21624 |
Return HTTP 400 for streaming validation errors (#21900) |
将流式校验错误返回从 500 改为 HTTP 400 |
PR #21900 |
四、server_args.py 变更
本次时间窗口内没有新增独立的命令行参数,但有以下重要逻辑变更:
4.1 Runai Model Streamer 集成
自动检测 runai:// 对象存储 URI,将 load_format 自动设置为 runai_streamer,并新增 runai_streamer 到 load_format 选项列表。
| Commit Message |
变更内容 |
PR 链接 |
Direct model loading from object storage with Runai Model Streamer (#17948) |
新增 runai_streamer load_format,自动检测 runai:// URI 并触发对象存储下载 |
PR #17948 |
4.2 Staging Buffer 校验
新增对 SGLANG_DISAGG_STAGING_BUFFER 的校验,要求 disaggregation_transfer_backend 必须为 mooncake。
| Commit Message |
变更内容 |
PR 链接 |
[Disagg] GPU staging buffer with dynamic ring allocator for heterogeneous TP KV transfer (#19890) |
增加 staging buffer 环境变量校验,确保仅与 mooncake 后端配合使用 |
PR #19890 |
4.3 其他 server_args 变更
| Commit Message |
变更内容 |
PR 链接 |
[Spec][Ngram] 4/N: Remove max_match_window_size and min_match_window_size (#21225) |
移除 ngram speculative decoding 的 max_match_window_size 和 min_match_window_size 参数 |
PR #21225 |
五、新增环境变量
本次时间窗口内新增 4 个 环境变量,均与 PD Disaggregation GPU Staging Buffer 相关:
| 环境变量 |
默认值 |
说明 |
来源 Commit |
SGLANG_DISAGG_STAGING_BUFFER |
false |
启用 GPU staging buffer 用于异构 TP KV 传输 |
PR #19890 |
SGLANG_DISAGG_STAGING_BUFFER_SIZE_MB |
64 |
Prefill 端每个 worker 的 staging buffer 大小(MB) |
PR #19890 |
SGLANG_DISAGG_STAGING_POOL_SIZE_MB |
4096 |
Decode 端环形缓冲区池总大小(MB) |
PR #19890 |
SGLANG_STAGING_USE_TORCH |
false |
强制使用 PyTorch gather/scatter 回退而非 Triton fused kernel |
PR #19890 |
六、基础设施与特性
6.1 Runai Model Streamer 对象存储加载
支持直接从 Runai 对象存储加载模型权重,无需预先下载,适用于大规模模型部署场景。
| Commit Message |
总结 |
PR 链接 |
Direct model loading from object storage with Runai Model Streamer (#17948) |
支持从 Runai 对象存储直接加载模型权重,新增 runai_streamer load_format 和下载工具类 |
PR #17948 |
6.2 GPU Staging Buffer 异构 TP
引入 GPU staging buffer 和动态环形分配器,支持 prefill 和 decode 使用不同 TP 规模的 KV 传输。
| Commit Message |
总结 |
PR 链接 |
[Disagg] GPU staging buffer with dynamic ring allocator for heterogeneous TP KV transfer (#19890) |
引入 GPU staging buffer 和动态环形分配器,支持异构 TP 的 KV 传输,新增 staging_buffer.py 和 staging_handler.py |
PR #19890 |
6.3 PP Key for File Backend
| Commit Message |
总结 |
PR 链接 |
Support PP key for file backend (#21901) |
为 file backend 增加 PP(Pipeline Parallelism)key 支持 |
PR #21901 |
七、Diffusion
| Commit Message |
总结 |
PR 链接 |
[diffusion] hardware: support FA3 attention backend on MUSA (attn backend, 14/N) (#18648) |
在 MUSA 平台上支持 FA3 attention 后端(diffusion 场景) |
PR #18648 |
[diffusion] CI: add initial nvfp4 ci test for b200 (#21767) |
为 B200 增加 NVFP4 初始 CI 测试 |
PR #21767 |
八、CI / 测试
| Commit Message |
总结 |
PR 链接 |
[VLM] Add VLM TP=4 per-commit CI test and improve MMMU eval prompt/parser (#21841) |
增加 VLM TP=4 per-commit CI 测试,改进 MMMU 评估 prompt 和解析器 |
PR #21841 |
[CI] Add Per-Tensor, Blockwise FP8 Tests on SM120 (#20717) |
在 SM120 上增加 Per-Tensor 和 Blockwise FP8 测试 |
PR #20717 |
[CI] Add Llama 3.1 8B Instruct FP4 CI test on SM120 (#20648) |
在 SM120 上增加 Llama 3.1 8B Instruct FP4 CI 测试 |
PR #20648 |
[CI] Increase multimodal server test timeout from 60 to 90 minutes (#21897) |
将多模态服务器测试超时从 60 分钟增加到 90 分钟 |
PR #21897 |
[CI] Remove crashing Kimi K2.5 EAGLE3/MTP variants, keep TP8 and TP8+DP8 (#21898) |
移除崩溃的 Kimi K2.5 EAGLE3/MTP 变体测试,保留 TP8 和 TP8+DP8 |
PR #21898 |
fix(ci): update est_time for 57 tests based on runtime analysis (#21896) |
基于运行时分析更新 57 个测试的 est_time |
PR #21896 |
Unify GSM8K eval path to Chat API for regression CI readiness (#21667) |
统一 GSM8K 评估路径到 Chat API,为回归 CI 做准备 |
PR #21667 |
[Misc] Fix comparator e2e tests: add polars dep + fix dp-attention test (#21804) |
修复 comparator e2e 测试:添加 polars 依赖和修复 dp-attention 测试 |
PR #21804 |
九、其他变更
| Commit Message |
总结 |
PR 链接 |
[HiCache & PD] Fixed detailed cache hit breakdown in PD scenarios. (#21764) |
修复 PD 场景下详细的 cache hit 统计 |
PR #21764 |
scheduler: add prefill-only update in merge batch (#21840) |
在 merge batch 中增加仅 prefill 的更新逻辑 |
PR #21840 |
Migrate all callers from /get_server_info to /server_info (#21463) |
将所有 /get_server_info 调用迁移到 /server_info |
PR #21463 |
revert: remove TTL-based hard pin from HiRadixCache (#21884) |
回退移除 HiRadixCache TTL-based hard pin 的变更 |
PR #21884 |
chore: bump mooncake version to 0.3.10.post1 (#21844) |
将 mooncake 版本升级到 0.3.10.post1 |
PR #21844 |
Allow /rerun-test to checkout fork PR branch for trusted users (#21890) |
允许 /rerun-test 为可信用户检出 fork PR 分支 |
PR #21890 |
Add merge prohibition policy during CI maintenance mode (#21882) |
增加 CI 维护模式下的合入禁止策略 |
PR #21882 |
[Misc] Add network timeout to eval dataset downloads (#21873) |
为评估数据集下载增加网络超时设置 |
PR #21873 |
Skip Go stdlib and NVIDIA tool CVEs in Trivy scan (#21905) |
在 Trivy 扫描中跳过 Go 标准库和 NVIDIA 工具的 CVE |
PR #21905 |
Fix ngram doc for speculative_num_draft_tokens default (#21910) |
修复 ngram 文档中 speculative_num_draft_tokens 默认值的说明 |
PR #21910 |
test: add manual init test for mooncake transfer engine (#21842) |
增加 mooncake 传输引擎的手动初始化测试 |
PR #21842 |
重点关注总结
新增模型/模型增强
- GLM-4.7-Flash (NPU): NPU 平台支持
- MiniMax-M2.5: NVIDIA 上启用 FP8 flashinfer_trtllm_routed MoE
- MiMo-V2-Flash: 添加 reasoning parser
性能优化
- 融合 temperature+softmax: decode 阶段 kernel 融合(后续回退)
- ngram corpus 迁移到 TVM FFI jit_kernel: 提升编译和运行时性能
- DSA/NSA trtllm kernel: Blackwell 默认 trtllm,sparse MLA prefill 支持
- flashinfer_trtllm mxfp8 GEMM: mxfp8 量化路径优化
- 多线程权重加载: 默认启用,加快启动
- flashmla 版本恢复: 回退之前的版本回退
server_args.py 新增参数
- 无新增独立参数
load_format 新增 runai_streamer 选项
- 移除
max_match_window_size 和 min_match_window_size 参数
新增环境变量(4个)
SGLANG_DISAGG_STAGING_BUFFER: GPU staging buffer 开关
SGLANG_DISAGG_STAGING_BUFFER_SIZE_MB: Prefill 端 buffer 大小(默认 64MB)
SGLANG_DISAGG_STAGING_POOL_SIZE_MB: Decode 端缓冲池大小(默认 4096MB)
SGLANG_STAGING_USE_TORCH: PyTorch 回退模式
基础设施
- Runai Model Streamer: 直接从对象存储加载模型权重
- GPU Staging Buffer: 异构 TP KV 传输
- PP Key for File Backend: 流水线并行文件后端支持
Bug Fix
- spec_v2 + logprob max_num_token、multi tool streaming、PCG dynamo 重编译、tokenizer_manager AttributeError、HiCache 内存泄漏、HTTP 400 streaming 校验