- Support for Muse Glimmer autoregressive multimodal model
- Support for Intern-S2-Mobius autoregressive model
- Support for SANA-Video diffusion model
- Support for LingBot-Video-MoE diffusion model
- Support for LTX-2.5 diffusion model
- Support for Cosmos3 Edge & Distilled diffusion models
- Support for LongCat-Image diffusion model
- Overlapped checkpoint staging at startup with --startup-weight-load-mode overlap flag
- FlashInfer MNNVL for pure allreduce with --enable-flashinfer-pure-allreduce flag
- Native multimodal processing for Qwen VL in Rust server
- Support for inkling dspark in speculative decoding
- Support logprobs with DSpark speculative decoding
- Support logprobs with DFlash speculative decoding
- Support MegaMoE for DSpark under dp attention
- Support DSPARK speculative decoding in unified memory
- TP LMHead allgather and scatter now uses single all-to-all for pure-DP dp-attention
- Triton, FlashInfer, Inductor, DeepGEMM, and CUDA driver caches consolidated under SGLANG_CACHE_DIR
- Updated torch to 2.13.0 with triton 3.7.1
- Updated flashinfer to 0.6.17
- Updated sgl-kernel to 0.4.6.post1
From SGLang
Highlights
710 PRs from 212 contributors.
New models in this release (see the cookbook for all supported models):
| Model | Type | PRs | Cookbook |
|---|---|---|---|
| Muse Glimmer | Autoregressive (Multimodal) | #34262 | link |
| Intern-S2-Mobius | Autoregressive | #33691 | link |
| SANA-Video | Diffusion | #32921 | link |
| LingBot-Video-MoE | Diffusion | #32341 | link |
| LTX-2.5 | Diffusion | #34471 | link |
| Cosmos3 Edge & Distilled | Diffusion | #31590 | link |
| LongCat-Image | Diffusion | #23274 |
Plus cookbook recipes for the Qwen3.8 family, Ling-3.0, Nemotron 3.5 Lightning, Dots3-Note, and DeepSeek-V4-Pro-0813 (#34809).
Overlapped checkpoint staging at startup: Checkpoint pages now stage from storage while CUDA graphs capture. Qwen3-32B on H100 starts 8.6-11.7% faster than serial with prefetch, and 2.38x faster (35.6s vs 84.8s) than the plain default. Opt in with --startup-weight-load-mode overlap (#32017).
TP LMHead with All-to-All: The TP LMHead's allgather + scatter becomes a single all-to-all for pure-DP dp-attention. On DeepSeek-V4-Pro B200 decode, LMHead time drops 320us to 169us and TPOT improves 36.97ms to 35.67ms (#32313).
FlashInfer MNNVL for pure allreduce: Non-fused allreduce sites now reuse the FlashInfer MNNVL workspace instead of falling back to NCCL. DeepSeek-V4-Flash TP4 decode on Blackwell gains up to +6.9% at small batches. Auto-enabled for DeepSeek-V3/V3.2/V4; elsewhere --enable-flashinfer-pure-allreduce (#30700).
One compiled-kernel cache directory: Triton, FlashInfer, Inductor, DeepGEMM, and CUDA driver caches all move under SGLANG_CACHE_DIR. The first launch after upgrading recompiles once; see Breaking Changes (#32434).
Dependencies: torch 2.13.0 with triton 3.7.1 (#28836), flashinfer 0.6.17 (#33997), CuTeDSL 4.6.2, fixing an FA4 startup regression on Blackwell (#34372), DeepEP now installed from released sgl-deep-ep wheels (#33932), and sgl-kernel 0.4.6.post1 (#33842).
Full release notes by category below; breaking changes and known issues are at the end.
Rust Server
- [mm] rust-server: native multimodal processing for Qwen VL (integrate sglang-mm, e2e): #32365
- refactor error responses into shared utils::response helpers: #33894
- move the PD bootstrap registry under api_server::disaggregation: #33895
- Build Rust extensions on demand in source checkouts: #34994
Speculative Decoding
- [spec decoding] support inkling dspark: #31847
- [Spec] Support logprobs with DSpark speculative decoding: #34696
- [Spec] Support output logprobs with DSpark: #34478
- [Spec] Support logprobs with DFlash: #33459
- [Spec] Wire DFLASH aux-hidden capture into the Qwen3.5 text-only wrapper: #34771
- [Spec] Support mamba-radix-cache-strategy extra_buffer_lazy with DFLASH: #34763
- [Spec] Support MegaMoE for DSpark under dp attention: #34844
- [unified memory] Support DSPARK speculative decoding + fix two NaN root causes (page hand-out zeroing, CuTe int32 slot-stride wrap): #33974
- [GDN] Honor configured linear-attn verify backend in the kernel dispatcher: #34592
- [Spec] Relay ngram accept tokens through the FutureMap: #35198
- [Spec] Reduce host-side overhead in ngram draft prep: #35207
- [Spec] Point multi-layer eagle's last shared-read runner at the draft runner: #35057
- Fix DFlash sliding attention causality defaults: #34524
- [Spec] Budget the DFLASH draft KV pool from its own attention geometry: #34234
- fix(dflash): account for DCP in draft KV pool sizing: #33912
- [DSV4] Fix silent KV corruption when speculative draft tokens > 4: #34189
- [Fix] Speculative decoding crashes with DP-Attention: #33892
- [bugfix] Stop/EOS inside a spec accept run beats the max_new_tokens finish: #33758
- [DSpark] Fix EP1 decode performance regression: #34759
- [Fix: RL] Snapshot async state-capture outputs before overlap: #34319
Piecewise & Breakable CUDA Graph
- [BCG][5/N] MLA Fully Support: #33661
- [BCG][6/N] Allow prefill breakable CUDA graph for the Kimi archs: #34245
- fix: always capture default prefill CUDA graph: #33352
- Fix padded positions in breakable CUDA Graph attention: #33253
- fix: avoid piecewise prefill graph for trtllm_mla: #32785
- Reenable breakable CUDA graph for NemotronH: #34538
- Fix prefill CP graph overflow with larger bucket search: #33906
- Fix stale track rows corrupting conv checkpoints under the prefill graph: #34184
- Fix sconv track refresh on graph capture: #35042
- Increase post-capture decode memory reserve: #34996
Attention Backends
- feat(attention): add architecture-owned SM12x FA4 kernels: #32991
- fix: support FA4 backend for GLM4.7-flash: #33436
- feat: Add flashinfer mHC fusion for DSV4: #33616
- [DSV4] Turn on mhc post pre fusion by default: #35214
- [SM12x] Default the fused MHC post+pre path on: #34019
- [trtllm_mha] perf: Stop allocating per-layer scratch inside the decode CUDA graph: #33063
- Select DeepGEMM standard layouts by memory budget: #33474
- [NVIDIA] Enable CuTe DSL BF16 GEMM on SM107: #33617
- add flashinfer cute-dsl backend for mxfp8 gemm: #34042
- [BugFix] Fix race in c128 prefill plan kernel on ragged extend: #32467
- [JIT Kernel][DSv4] Optimize epilogue of c128: #26671
- fix(dsa): use FlashInfer fused top-k for packed PAGED rows: #33006
- [DSA] Fix top-k v2 dropping non-primary ranks' output on CUDA 13.1+ (root cause for #33835): #34167
- [DSA] Skip indexer KV cache for skip-topk layers: #30531
- [Perf] Skip trivial DSV4 nonpaged indexer logits: #33857
- [Fix] Restore layer-level DSV4 RoPE policy: #34788
- Fix _pa_swa_prefill_lens off-by-one in FlashAttentionBackend: #33379
- Support unified SWA page mapping in attention metadata: #35000
MoE & Expert Parallelism
- [MoE] Fuse swiglu moe up gemm epilogue: #32944
- Enable MoE deferred finalize by default and drop its expert_weights dtype workaround: #33618
- [kernel] add triton moe TMA up support: #33559
- [MoE] Single-launch moe_align for tiny batches with many experts: #32395
- [MiniMax-M3] Overlap shared and routed experts: #34542
- [MoE] Route every trtllm-gen MoE call site through one PDL guard: #34789
- fix(qwen3): support DeepEP-class backends and early EPLB state: #34810
- Add explicit EPLB balancedness reporting modes: #34998
- Fix the router GEMM inaccuracy when using _front_w in Kimi-K3: #33764
- [Kimi-K3] Use explicit SiTU activation for MegaMoE: #34883
- Fix Qwen3-MoE producing garbage with the mori a2a backend: #34006
- [Fix][Qwen]: fused shared-expert detection PP-safe protection: #34447
- [FlashInfer v0.6.16] Support FlashInfer CuTe DSL NVFP4 MoE quantization: #28354
- [Fix] Correct W4AFP8 DeepEP scaling and mode-specific dtypes: #33669
- [Fix] Support 128-aligned hidden sizes in the W4AFP8 DeepEP low-latency requant kernel: #35593
- perf: add H200 Triton MoE configs for E256 N512: #34150
Quantization
- Support ModelOpt MXFP8 checkpoints: #32538
- [ModelOpt FP4] Support online MoE weight quantization: #33115
- [Feature] Support NVFP4 token embedding in ModelOpt mixed-precision checkpoints: #34222
- [MXFP8] Use FlashInfer CUTLASS for dense GEMM on SM120, delete Triton path: #33208
- [Quantization] Route per-tensor FP8 checkpoints to FlashInfer on SM90: #33148
- Optimize FP32 LM head for bf16/fp16: #32370
- Pin online NVFP4 4over6 quantization settings: #33621
- [Fix] Support Kimi-K3 ModelOpt mixed NVFP4/FP8 checkpoint: #35077
- [Quantization] Fix GPTQ scheme attachment broken by LinearBase.scheme default: #34962
- [quantization] Add tuned Triton tile configs for channelwise FP8 GEMM…: #34331
- [Fix] Correct dense FP8 Marlin bias ordering: #35020
- Remove the torchao integration (--torchao-config): #34304
Parallelism & Disaggregation
- [Feature] Optimize TP LMHead with All-to-All: #32313 ⭐
- [NVIDIA] Add flashinfer MNNVL backend for allreduce only: #30700 ⭐
- [CP]: Support CP V2 Strategy for dsv4: #33532
- fix: preserve GQA head mapping in Triton DCP prefill: #34161
- Fix DCP KV head mapping for GQA models: #32858
- [DCP] Reuse partial output in natural-log LSE merge: #34213
- [DCP] Drop two per-layer launches from the MLA target-verify path: #34240
- [DCP] Fuse the a2a pack/unpack copies in the MLA LSE reduce: #34614
- [DCP] Share one pack kernel between both a2a backends: #34651
- [DCP] Drop the prefill index-selection syncs by taking each rank's rows by stride: #35084
- [Fix] DCP: advertise the logical KV-event block size: #35298
- Fix DeepSeek-V4/DeepSeek-V4-Pro DP-attention gather semantics: #31700
- [perf] Collapse the DP attention scheduler sync to a single D2H copy: #34338
- Multiple flexibility fixes for DP attention: #33537
- Fix world-size-one aliasing in MLP batch sync: #34997
- [PD] Add the missing Prefill bootstrap timeout for NIXL: #34692
- [PD] Support pipeline-parallel prefill with Mooncake staging buffer: #33807
- [PD] Support --enable-unified-memory with PD disaggregation (kimi-linear MLA hybrid-Mamba): #33362
- [PD] Skip speculative verify scratch on prefill servers (saves num_draft_tokens x mamba pool per rank): #34191
- [PD] Avoid unused PREBUILT prompt tensor transfer: #35070
- feat(grpc): expose KV event discovery metadata: #35714
Scheduler & Runtime
- [Model Loading] Overlap checkpoint staging with CUDA graph capture during startup: #32017 ⭐
- [core] Consolidate compiled-kernel caches under SGLANG_CACHE_DIR: #32434 ⭐
- [Engine] Freeze GC after server warmup: #34999
- feat: add cache salt support to KV cache events: #30827
- perf(kv-events): coalesce cache events: #31479
- [Scheduler] Honor explicit min-free-slots thresholds: #33403
- [Scheduler] Gate SWA eviction on accumulated tokens: #33404
- [Scheduler] Fix to restrict the SWA chunk-cap escape hatch to true head-of-line livelock: #32700
- [srt] Batch scheduler cache frees: #33475
- O(1) slot allocation in ReqToTokenPool.alloc(): #32208
- fix(scheduler): track max prefill batch size over recent real admissions: #34284
- fix tpot by adjusting the sliding max-prefill-size window size: #34856
- fix: route scheduler aborts to multi-tokenizer workers: #33940
- [tracing] sglang tracing v2: support exporting tracing data asynchronously: #30023
- Profiling Enhancements [1/3]: cuda graph profile traces: #24370
- [metrics] Fix prefill FLOPs estimate to count prefix and per-request causal pairs: #34316
- Fix default dtype restoration after model loader errors: #34440
- fix: honor explicit model loader classes: #34880
- feat(cli): add extensible serve backend plugins: #34753
- Clean up environ.py: remove dead env vars, unify deprecation handling, move examples to a unit test: #35060
- fix: make automatic NUMA binding configurable: #30394
- Raise PD zmq per-context socket cap via SGLANG_DISAGGREGATION_ZMQ_MAX_SOCKETS: #34450
Deterministic Inference
- Fix deterministic inference for Inkling: #33417
- Fix deterministic inference all-reduce for tp>1: #34159
- Deterministic gumbel sampling: clamp u=1 so masked tokens can't be sampled: #33423
- feat: support deterministic FA4 for GLM-4.7-Flash: #33945
- Fix NaN logits from deterministic Triton extend on the unified memory pool: #33517
- Add bit-exact class for MTP: #35143
- Add bit-exact unified radix cache KL test for hybrid SWA + mamba: #34607
- Add bit-exact hicache logprob-consistency test: #34356
- Add bit-exact guard for extra_buffer_lazy: #35030
- Skip inkling sheared bias under batch invariance: #35161
HiCache & Radix Cache
- [HiCache] Support packed and sidecar draft caches for MTP/EAGLE/DSpark: #30393
- [Hicache][2/2]Support Mamba branching in Unified Radix Cache with HiCache: #33639
- [HiCache] Support DCP with DSpark: #35221
- Enable unified cache out-of-window slot freeing by default: #34653
- Skip oow slot freeing under eagle: #34823
- [HiCache] write_back: reclaim duplicated host copy first under host pressure: #33777
- [HiCache] Optimize LogicalHostPool free-list release: #33998
- refactor(hicache): flatten L2 transfer execution: #34793
- [PD] Preserve decode KV across retraction in HiCache: #34801
- fix(hicache/umbp): support DeepSeek-V4 hybrid HostPoolGroup (multi-po…: #30762
- [Unified Radix Cache] Complete the tree-core interface boundary: #33580
- [Fix] Snapshot
req.prefix_indiceswhen the prefix cache is disabled: #34644 - Fix swa eviction frontier for bigram keys: #34870
- Retain SWA down to the last state checkpoint: #34729
- Fix mamba checkpoint depth under dcp: #34808
- HiSparse: shared-index (IndexShare) plan-then-IO swap-in prefetch: #34329
- Observability enhancement for HiCache: #32388
Multimodal
- [VLM] split multimodal scheduling from mm_utils: #32415
- [VLM] add content-addressed preprocessing cache infrastructure: #34398
- Add CUDA VMM multimodal feature transport: #33899
- feat(vlm): auto-select cuda vmm on multi-node mnnvl: #33936
- Fix CUDA 13.0 VMM handle type compatibility: #34431
- Gate multimodal feature transport by model capability: #33653
- Reserve multimodal runtime allocations and keep padded inputs aligned: #34141
- [VLM] Avoid synchronizing multimodal placeholder counts: #34995
- fix(vlm): stream-order cuda-ipc feature pool lifecycle and streamline multimodal transport module: #33949
- [EPD] feat: pipeline owner-only multimodal preprocessing: #34206
- [FEAT] Decouple multimodal global cache from Mooncake: #30392
- [Kimi K3] optimize: preprocess cpu-transport images on the vision owner: #33921
- fix(vlm): preserve Kimi-K3 GPU JPEG accuracy: #34163
- vlm: cache kimi-k3 per-image processor artifacts: #34404
- [Fix] Carry the backend on Kimi-K3 deferred preprocessing configs: #34766
- Fix Whisper transcription for audio over 30 seconds: #33604
- fix: preserve priority for batched embedding requests: #32977
Model Support & Optimizations
- fix(muse-glimmer): parse required/named tool calls natively: #34781
- Responses support: #32689
- [Frontend] Apply request header overrides to chat completions: #35001
- Stop losing Kimi-K3 tool calls to reasoning, constraint conflicts, and truncation: #34881
- [Fix] Work around xgrammar 0.2.1 negative integer minimum in Kimi-K3 structural tags: #34778
- [Fix] Make DeepSeek-V4 reasoning and tool-call streaming parsing chunk-invariant: #34458
- [Fix] Require JSON booleans for response_format json_schema.strict: #34777
- Support thinking budget for Inkling: #33146
- [inkling] Let Anthropic thinking=disabled map to reasoning effort "none": #33913
- [inkling] Render tool-result media instead of coercing content to str: #33898
- [DSV4] Add official DSV4 reasoning effort support: #33140
- [feat] Add language_model_only parameter support for Qwen35: #22867
- Support model-defined prefill input embedding width: #35002
- Fix rope config compatibility and VL/transformers-fallback weight loading: #31575
- [LoRA] Laguna: per-layer LoRA hidden-dim resolution for packed attention: #30298
- [Laguna] fix YaRN mscale double-application in rope config: #33558
- enable TRT-LLM for MiniMax M3 by preserving SwiGLU params: #33962
- fix(minimax): use routed TRT-LLM for NVFP4 MoE auto on SM100: #32229
- fix(glm5.2): restrict MoE weights to local PP layers: #33793
- [Fix] Fix Qwen3.5 MTP startup with HiCache: #34560
- Fix DeepSeek-OCR batching crash on variable local-crop counts: #33214
Kernel Library
- [jit_kernel] Move JIT kernels into namespace sglang: #33400
- [kernel] Content-addressed JIT build cache, generated from our own ninja: #34274
- [JIT Kernel] Migrate per-token FP8 quantization from AOT to JIT: #34257
- [JIT Kernel] Migrate moe_topk_softmax from AOT to JIT: #34509
- [JIT Kernel] Migrate causal_conv1d_fwd and causal_conv1d_update from AOT to JIT: #35031
- kernels: scalar scale A support for fp8_gemm: #33469
- [Kernel] Unify BaseFusedOp and MultiPlatformOp dispatch: #33205
- [Kernel] Enable Helion backend for Kimi Delta-Attention: #32593
- [Kernel] cutedsl_bf16_gemm: trailing cluster barrier for 2-CTA TGV kernel exit (#32907): #32954
Configuration System
- config: retire ServerArgs.derive; per-runner values are constructor arguments: #33887
- config: business code no longer reads the published ServerArgs: #34081
- config: the runner and scheduler read resolved config from the bags: #34095
- config: the KV-cache configurator reads the bags: #34096
- config: pin that resolution is reproducible from the raw input: #34094
- config: one control-plane log for the process: #35028
- config: make ServerArgs read-only with a single audited mutation entry: continues in this release across the runner, scheduler, spec, and DCP surfaces (#33925, #34133, #35022, #35025)
SGLang-Diffusion
- [diffusion] feat: data-parallel serving (--dp-size): #33725
- [diffusion] feat: cross-node sequence parallelism (Ulysses x Ring): #33327
- [diffusion] feat: support K/V-gather style sequence parallel (CP-like) attention: #32667
- [diffusion] feat: support sol-attn sparse attention backend for h3: #33702
- [MiniMax-H3] SubBlock: training-free block-sparse attention for the DiT: #34148
- [diffusion] feat: add SageAttention packed varlen path for minimax-h3: #33703
- fix: make Cache-DiT actually cache on MiniMax-H3: #33827
- [diffusion] feat: load quantized H3 text encoder checkpoints: #34986
- [diffusion] feat: support native and peft minimax h3 loras: #34359
- [diffusion] Per-section LoRA adapters on fused linear layers: #34933
- [diffusion] feat: support quant-videogen prq kv-cache quantization (memory-saving) for causal-dit: #32581
- [diffusion] Enable breakable CUDA graph for LTX-2 (H200 two-stage e2e 10.75 s -> 6.90 s, 1.56x): #33885
- [diffusion] Enable breakable CUDA graph for SANA (H200 1024px e2e -26%, bit-exact): #33989
- [diffusion] Enable breakable CUDA graphs for LTX-2.3: #34929
- [diffusion] Z-Image single-GPU BCG: fix the replay crash and make output bit-exact vs eager (#34183): #34210
- [diffusion] BCG: auto-capture the default warmup resolution instead of hard-requiring --warmup-resolutions (H200 SANA denoise 0.73->0.457 s with a single flag): #34174
- [diffusion] weight-only FP8: dequantize linear weights once at first use (Ideogram-4 denoise -18.8% H200 / -7.8% H100, bit-exact): #34305
- [diffusion] Bit-exact data-movement elimination for the Wan causal VAE decoder (H200 LongLive2 704x1280x61f: decode 2.80->2.32 s lossless / 2.12->1.67 s quality=high, e2e -10.7%): #34125
- [diffusion] FLUX.1 fused adaLN modulate (bit-exact) + RoPE cache hoist, LN-affine folding behind quality=high (H200 e2e -3.5% lossless / -6.9% high): #34004
- [diffusion] Ideogram-4: fuse Qwen3-style RoPE and SwiGLU silu-mul (denoise -5.1% H100 / -4.7% H200, bit-exact): #34314
- [diffusion] ERNIE-Image: fuse rotate-half RoPE + GELU-mul and hoist rope cos/sin (denoise -16.2% H100 / -12.7% H200, bit-exact): #34306
- [diffusion] Wan2.2-TI2V: fuse per-token adaLN table add into contiguous slices + hoist rope cache (denoise -13.1% H100 / -12.6% H200, bit-exact; eager beats compile): #34584
- [diffusion] Z-Image bit-exact fused qk-norm (H200 Turbo 1024px e2e -6.4%): #33886
- [diffusion] Add --dit-layerwise-residency-policy for strided DiT residency: #34534
- [diffusion] feat: support dynamically cpu offload components: #34391
- [diffusion] feat: gate /health and /health_generate on warmup completion and add liveness endpoint: #33787
- [diffusion] feat: support --served-model-name in sglang serve: #34228
- [Diffusion] Add online FP8 support for Krea-2: #34136
- [diffusion] feat: expose cosmos3 policies through the Action API: #34243
Local & Desktop AI
- [MLX] Support gpt-oss: sliding-window attention, attention sinks, sm_scale: #30050
- [MLX] Window-bounded SWA KV storage and in-graph sampling: #34166
- feat(dgx-spark): add inkling-small MoE support for sm_121: #33108
- [misc] Pass FP8 scales in FlashInfer SWA prefill, autotune fp8 on SM120, and tighten
is_image_understandable_model: #34217
AMD / ROCm
- [AMD] Support prefill context parallel two batch overlap for DeepSeek V4: #33480
- [AMD] Support DeepSeek V4 DSpark on AMD HIP platform: #30964
- [AMD] Optimize KIMI-K3 with Triton MLA decode kernel by tuning the stage-1 geometry for gfx950: #34580
- [AMD] Add concat_and_cast_mha_k_pad_kernel to support 12-head and enable K3 aiter prefill kernel: #34837
- [AMD] Add K3 verified mla kernel for DSpark on triton backend: #33981
- [AMD] Restore K3 MLA verify kernel path blocked by can_handle() guard: #34261
- [AMD] perf: compact Triton extend-attention for ragged prefill (AMD/HIP-only): #29677
- [AMD] Accelerate AITER unified-attention decode with scaled FP8 Q: #31856
- [AMD] Run V4 MTP target-verify through the decode kernel: #34597
- [AMD] Enable draft-extend CUDA graph and reduce bubble for MTP: #29202
- [AMD][Spec] Accelerate Qwen3.5 verification with grouped-head shared KV: #34517
- [AMD][Perf] Fuse GatedDeltaNet QKVZBA split/reshape/cat into a single Triton kernel for Qwen3.5-architecture MoE on HIP: #34421
- [AMD] Fuse shared_expert_gate GEMV into the MoE append kernel (HIP/aiter): #28666
- [AMD] [GLM5] fp8 MLA absorbed bmm for GLM-5.2 on gfx950: #30519
- [AMD] [GLM5] Skip DSA decode indexer when kv_len <= index_topk (dense k-only fast path): #31324
- [AMD][Quantization] Online MXFP4 quantization 4/N - NVFP4 to MXFP4 Online Requantization on AMD GPUs: #29328
- [AMD] Fix AITER custom reduce-scatter CUDA-graph capture crash under torch_memory_saver: #34203
- [AMD] Preserve the AITER expert mask across torch_memory_saver pause/resume: #34220
- [AMD] Fix Triton 3.7 gfx950 extend-attention spills: #34741
- [AMD] Guard ROCm 7.0 build from using hipMemcpyBatchAsync: #35128
NPU / Ascend
- [Kimi-K3][NPU] Support Kimi-K3 on NPU: #33465
- [NPU] Support DeepSeek-V4 DSpark and refactor DSV4 cache management: #33676
- [NPU] Add mxfp4-w4a8 MOE Quantization Support for NPU: #30318
- [minimax m3][npu]Adaptation of Minimax M3(w8a8) for NPU platforms [1/2]: #32941
- [NPU] Adding a fast layernorm for diffusion models and fix BSA: #29027
- [NPU] Add causal conv1d: #28267
- [npu] [bugfix] Fix PD‑disaggregation error: #33523
- [npu] [bugfix] Fix HiCache MHA backup for NPU: #34341
- [NPU] Modified kernel tag version to 8.10: #34254
CPU / Intel / XPU
- [CPU] Add support for Gemma4 on Xeon: #22498
- [CPU][QUANT] add amx cpu support for auto-round: #29593
- Optimize MiniMax-M2.7 on CPU: #31956
- [XPU] upgrade sglang xpu backend to PyTorch 2.13: #31751
- [XPU] xpu kernel release workflow: #33679
- [XPU] Enable fused GDN QKV split Triton kernel on XPU: #30144
- [XPU] Pad MoE expert weight row stride to avoid L3 aliasing: #33905
- [Intel GPU] DeepSeek V4 8/N: use sgl-kernel implementation of fused_k_norm_rope_flashmla on XPU: #28040
- [Intel GPU] DeepSeek V4 15/N: Add silu_and_mul_clamp support to triton fused_moe for XPU: #33808
- [XPU] Fix NemotronH (hybrid mamba2) launch on --device xpu: #32227
Security
- feat: add safeguards for remote media URLs: #34892
- fix(constrained): reject NUL bytes in grammar specs to stop an xgrammar segfault: #34679
Dependencies
- [Deps] Upgrade CUDA PyTorch stack to 2.13: #28836 ⭐
- Bump FlashInfer to 0.6.17 and remove Kimi K3 workarounds: #33997 ⭐
- Bump CuTeDSL to 4.6.2: #34372 ⭐
- Install DeepEP from release wheels: #33932 ⭐
- Build and release sgl-deep-ep wheels: #33498
- Update sgl-deep-ep release workflow for DeepEP v2: #34914
- Update AOT kernels for Torch 2.13: #33841
- chore: bump sgl-kernel version to 0.4.6.post1: #33842
- [Fix] Pin
cuda-tileto 1.6.0rc5 to unblock Python 3.10 x86_64 installs: #34321 - [AMD] Bump mori to latest in sglang: #33462
Breaking Changes & Upgrade Notes
- The CUDA PyTorch stack moves to torch 2.13.0, with triton 3.7.1, torchvision 0.28.0, and torchcodec 0.15.0 (torchaudio stays at 2.11.0); AOT kernels are rebuilt for Torch 2.13 and the XPU backend follows: #28836, #33841, #31751
- Every compiled-kernel cache moves under
SGLANG_CACHE_DIR, so the first launch after upgrading recompiles once. Copy or symlink the old directories if you pre-warm or volume-mount them (deep_gemmandflashinferare the expensive ones):~/.tritonto{SGLANG_CACHE_DIR}/triton,~/.cache/flashinferto{SGLANG_CACHE_DIR}/.cache/flashinfer,~/.cache/deep_gemmto{SGLANG_CACHE_DIR}/deep_gemm,/tmp/torchinductor_$USERto{SGLANG_CACHE_DIR}/inductor,~/.nv/ComputeCacheto{SGLANG_CACHE_DIR}/nv. Setting any ofTRITON_CACHE_DIR,FLASHINFER_WORKSPACE_BASE,SGLANG_DG_CACHE_DIR,TORCHINDUCTOR_CACHE_DIR, orCUDA_CACHE_PATHkeeps that one where it is: #32434 - The torchao integration is removed (
--torchao-confighad raised ImportError for every accepted value since the torchao pin moved to 0.17.0): #34304 - DeepEP now installs from released
sgl-deep-epwheels instead of building from source: #33932 - MoE deferred finalize is on by default on the NVFP4 +
flashinfer_trtllmpath with an unfused, non-TP1 shared expert (the DeepSeek-V3 family); setSGLANG_ENABLE_MOE_DEFERRED_FINALIZE=Falseto fall back: #33618 - Unified-cache out-of-window SWA slot freeing is on by default for the unified radix cache; set
SGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTS=Falseto restore the old behavior: #34653 - Remote media downloads are bounded to 64 MiB by default, with redirect validation and opt-in exact-hostname allowlisting for image, video, and audio URLs: #34892
- The DSV4 fused MHC post+pre path is on by default, including on SM12x: #35214, #34019
- torch.compile becomes opt-in for diffusion speed mode: #34173
- 22 unmaintained benchmarks are removed: #34520
Known Issues
- The Kimi K3 MLA gate-projection fusion into the QKV-A GEMM was landed and reverted this cycle (#33623, #34642). It is not in this release.
- The AMD GLM-5.2 fused shared-expert append into aiter grouped-topk was landed and reverted (#31323, #35105). It is not in this release.
- The parallel request lifecycle tracking that shipped with gRPC generation semantics in v0.5.17 (#32588) is reverted: #34160
- Several failing NPU test cases are disabled pending fixes: #34377
Full Changelog: v0.5.17...v0.5.18
New Contributors
- @2044145178 made their first contribution in https://github.com/sgl-project/sglang/pull/33676
- @Allor-maker made their first contribution in https://github.com/sgl-project/sglang/pull/31453
- @Ccyest made their first contribution in https://github.com/sgl-project/sglang/pull/34573
- @DanielSwift1992 made their first contribution in https://github.com/sgl-project/sglang/pull/34875
- @DarkraiHL made their first contribution in https://github.com/sgl-project/sglang/pull/34560
- @DmiSergeev made their first contribution in https://github.com/sgl-project/sglang/pull/33379
- @Dragonliu2018 made their first contribution in https://github.com/sgl-project/sglang/pull/22634
- @Elaine4CY made their first contribution in https://github.com/sgl-project/sglang/pull/33827
- @Lenoplus42 made their first contribution in https://github.com/sgl-project/sglang/pull/33787
- @LeonHibnik made their first contribution in https://github.com/sgl-project/sglang/pull/31491
- @NVShreyas made their first contribution in https://github.com/sgl-project/sglang/pull/34443
- @PKUWZP made their first contribution in https://github.com/sgl-project/sglang/pull/32414
- @PheelaV made their first contribution in https://github.com/sgl-project/sglang/pull/30298
- @QAQEthan made their first contribution in https://github.com/sgl-project/sglang/pull/34696
- @QIN2DIM made their first contribution in https://github.com/sgl-project/sglang/pull/32954
- @Rainchar9119 made their first contribution in https://github.com/sgl-project/sglang/pull/32755
- @RunFMe made their first contribution in https://github.com/sgl-project/sglang/pull/34107
- @RunkaiTao made their first contribution in https://github.com/sgl-project/sglang/pull/34331
- @Smallfu666 made their first contribution in https://github.com/sgl-project/sglang/pull/31554
- @Svoloch2940194 made their first contribution in https://github.com/sgl-project/sglang/pull/29027
- @Tanmaypatil123 made their first contribution in https://github.com/sgl-project/sglang/pull/34136
- @TianDi101 made their first contribution in https://github.com/sgl-project/sglang/pull/30024
- @VoidC-minor made their first contribution in https://github.com/sgl-project/sglang/pull/34509
- @Windswithyou made their first contribution in https://github.com/sgl-project/sglang/pull/33965
- @ajith-sirra-amd made their first contribution in https://github.com/sgl-project/sglang/pull/34379
- @anranxia made their first contribution in https://github.com/sgl-project/sglang/pull/32900
- @chilltongx made their first contribution in https://github.com/sgl-project/sglang/pull/34242
- @chuyeh made their first contribution in https://github.com/sgl-project/sglang/pull/34517
- @dayanandav made their first contribution in https://github.com/sgl-project/sglang/pull/30340
- @dpeng2333 made their first contribution in https://github.com/sgl-project/sglang/pull/31531
- @draftbk made their first contribution in https://github.com/sgl-project/sglang/pull/33146
- @dstnluong made their first contribution in https://github.com/sgl-project/sglang/pull/33446
- @ethche made their first contribution in https://github.com/sgl-project/sglang/pull/32593
- @forrestl111 made their first contribution in https://github.com/sgl-project/sglang/pull/34148
- @gilfordting made their first contribution in https://github.com/sgl-project/sglang/pull/34774
- @gongwei1027 made their first contribution in https://github.com/sgl-project/sglang/pull/33075
- @haochengxi made their first contribution in https://github.com/sgl-project/sglang/pull/32581
- @huangxiaojun15 made their first contribution in https://github.com/sgl-project/sglang/pull/34254
- @jambow0320 made their first contribution in https://github.com/sgl-project/sglang/pull/34692
- @jthomson04 made their first contribution in https://github.com/sgl-project/sglang/pull/30827
- @mikekg made their first contribution in https://github.com/sgl-project/sglang/pull/31700
- @milesial made their first contribution in https://github.com/sgl-project/sglang/pull/33912
- @misterwilliam made their first contribution in https://github.com/sgl-project/sglang/pull/33138
- @mohbasit made their first contribution in https://github.com/sgl-project/sglang/pull/24370
- @mxz297 made their first contribution in https://github.com/sgl-project/sglang/pull/33575
- @nikhilkulkarni1755 made their first contribution in https://github.com/sgl-project/sglang/pull/32977
- @pandalee99 made their first contribution in https://github.com/sgl-project/sglang/pull/32341
- @pavansivaram made their first contribution in https://github.com/sgl-project/sglang/pull/33214
- @plusbang made their first contribution in https://github.com/sgl-project/sglang/pull/33793
- @raghotham made their first contribution in https://github.com/sgl-project/sglang/pull/34880
- @sid-rp made their first contribution in https://github.com/sgl-project/sglang/pull/34781
- @tanth47 made their first contribution in https://github.com/sgl-project/sglang/pull/34213
- @valechen made their first contribution in https://github.com/sgl-project/sglang/pull/29677
- @vstone-w made their first contribution in https://github.com/sgl-project/sglang/pull/32941
- @wangwenmingaa made their first contribution in https://github.com/sgl-project/sglang/pull/33998
- @xikronz made their first contribution in https://github.com/sgl-project/sglang/pull/34042
- @xinguozhu-2026 made their first contribution in https://github.com/sgl-project/sglang/pull/31956
- @yangdian96 made their first contribution in https://github.com/sgl-project/sglang/pull/25855
- @yixiaodapeng made their first contribution in https://github.com/sgl-project/sglang/pull/31300
- @zhisbug made their first contribution in https://github.com/sgl-project/sglang/pull/33794
- @zijiecode made their first contribution in https://github.com/sgl-project/sglang/pull/34447