5089 Commits
Author SHA1 Message Date
Khoa PhamandClaude Opus 5 07297049e9 config: route DCP topology reads through get_parallel() (#33925)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 14:53:54 -07:00
Brayden ZhongandBrayden Zhong b3ee679467 [MXFP8] Use FlashInfer CUTLASS for dense GEMM on SM120, delete Triton path (#33208)
Co-authored-by: Brayden Zhong <brayden@radixark.ai>
2026-08-07 14:30:43 -07:00
Dmitrii Sergeev 699fcdc936 Fix _pa_swa_prefill_lens off-by-one in FlashAttentionBackend (#33379) 2026-08-07 14:06:48 -07:00
Sam ShleiferandClaude Fable 5 62a28197c0 Autotune flashinfer extend buckets at warmup (#32556)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 14:06:05 -07:00
Zhangheng 1480687cff [CP]: Support CP V2 Strategy for dsv4 (#33532) 2026-08-07 14:03:27 -07:00
Sam Shleifer 8e7d361def [perf] Compute input logprobs without materializing the full-vocab log-softmax (#31958) 2026-08-07 14:01:08 -07:00
Oguz UlgenandYinghai Lu 7f6b4cb94b Add CUDA VMM multimodal feature transport (#33899)
Co-authored-by: Yinghai Lu <yinghai@meta.com>
2026-08-07 13:39:54 -07:00
3c51e29deb Responses support (#32689)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Harmya Bhatt <harmyacs@gmail.com>
Co-authored-by: harmya <harmya@modal.com>
Co-authored-by: Xinyuan <xinyuan@radixark.com>
Co-authored-by: Xinyuan Tong <xinyuantong.cs@gmail.com>
Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com>
2026-08-07 13:21:46 -07:00
Zhangheng 12de7fb1f6 Remove the HiMambaRadixTree that is no longer in use (#33468) 2026-08-07 23:01:40 +08:00
Ke Bao bc8c037041 Fix vae fast path test after the gate refactor (#33983) 2026-08-07 20:45:19 +08:00
danielafrimi 4020bc95a7 Fix Nemotron W4A16 NVFP4 MoE backend (#33543)
Signed-off-by: dafrimi <dafrimi@nvidia.com>
2026-08-07 12:00:28 +00:00
Ke Bao 0756a1d2b0 Move SWA chunk-cap hatch tests into the registered suite (#33975) 2026-08-07 17:49:07 +08:00
Baizhou Zhang 5e60363960 Fix prefill CP graph overflow with larger bucket search (#33906) 2026-08-07 01:33:14 -07:00
Liangsheng Yin 7395ee833e [CI] Share VLM engines and prune launch matrices on the per-commit H100/H200 suites (#33944) 2026-08-07 01:22:22 -07:00
Leon Gao 4d4f8023c4 [srt] Batch scheduler cache frees (#33475) 2026-08-06 21:49:59 -07:00
Liangsheng Yin afa79330b8 [misc] Remove break-graph debug log; reclaim pid-less /dev/shm leaks in CI (#33929) 2026-08-06 21:18:01 -07:00
f9e6888b5a [Distributed] Propagate semantic group names to PyTorch process groups (#32900)
Co-authored-by: jipengtian <jipengtian@xiaohongshu.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-08-06 20:38:12 -07:00
Nikhil KulkarniandClaude Opus 5 fe6a05a8e8 fix: preserve priority for batched embedding requests (#32977)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 19:26:18 -07:00
Yuwei An db8f3cdd11 fix(gdn): skip the -1 padding sentinel in the chunked extend kernel (#33810) 2026-08-06 18:48:47 -07:00
Hao Zhangandzhisbug af7c62e337 Fix paged SWA retraction resume accounting (#33794)
Co-authored-by: zhisbug <1654062+zhisbug@users.noreply.github.com>
2026-08-06 16:32:54 -07:00
valechen 18e6c61c21 [AMD] perf: compact Triton extend-attention for ragged prefill (AMD/HIP-only) (#29677) 2026-08-06 14:46:10 -07:00
Brayden Zhong dd7e4c91e2 Fix Mistral-Large-3 EAGLE draft skipping DeepseekV2Model.__init__ (#33785) 2026-08-06 13:59:28 -07:00
YAMY 2fc557254b fix(PP): size the mamba pool per pipeline stage, not per whole model (#33666) 2026-08-06 13:10:43 -07:00
Mohammad Miadh AngkadandBrayden Zhong 434e646282 [Deps] Upgrade CUDA PyTorch stack to 2.13 (#28836)
Co-authored-by: Brayden Zhong <b8zhong@uwaterloo.ca>
2026-08-06 12:08:44 -07:00
Ziang LiandBrayden Zhong 4ad990ba7d [ModelOpt FP4] Support online MoE weight quantization (#33115)
Co-authored-by: Brayden Zhong <b8zhong@uwaterloo.ca>
2026-08-06 11:01:55 -07:00
YAMYandShangming Cai 05c7ebf64c [Disagg][StagingBuffer][2/2] Support radix cache (#30545)
Co-authored-by: Shangming Cai <csmthu@gmail.com>
2026-08-06 23:59:35 +08:00
Mohammad Miadh Angkad 8a1637a479 Fix serving benchmark post-warmup cache flush race (#33663) 2026-08-06 15:27:10 +00:00
Xiaoyu ZhangandClaude Fable 5 591cfb0881 [diffusion] FLUX.2 bit-exact residual-gate fast path (H200 klein-4B 50-step denoise -1.2%) (#33823)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 22:54:40 +08:00
Xiaoyu ZhangandClaude Fable 5 dd98c9572a [diffusion] Generalize the FLUX.2 VAE decoder fast path to AutoencoderKL (Z-Image / FLUX.1) behind quality=high (#33818)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 22:53:15 +08:00
Peng Wu 21225aba3d [Scheduler] Fix to restrict the SWA chunk-cap escape hatch to true head-of-line livelock (#32700) 2026-08-06 22:09:04 +08:00
Mohammad Miadh Angkad 1a15cf1536 Gate multimodal feature transport by model capability (#33653) 2026-08-06 06:48:32 -07:00
Xiaoyu ZhangandClaude Fable 5 3654740347 [diffusion] ERNIE-Image bit-exact fused RMSNorm+scale/shift (H200 1024^2 e2e 15.63 -> 15.00 s, denoise -3.3%) (#33854)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 19:58:44 +08:00
Xiaoyu ZhangandClaude Fable 5 295784723a [diffusion] Ideogram 4: fuse RMSNorm modulate/gate chains via the Z-Image Triton suite behind quality=high (H200 e2e -2.9%/-3.4%) (#33822)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 19:57:34 +08:00
Xiaoyu ZhangandClaude Fable 5 eff6a11350 [diffusion] FLUX.1 bit-exact residual-gate fast path + tanh-GELU epilogue behind quality=high (H200 e2e -1.1% lossless / -4.3% high) (#33819)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 19:56:38 +08:00
f8f2870a84 Profiling Enhancements [1/3]: cuda graph profile traces (#24370)
Co-authored-by: Basit <mohbasit@ctr2-alola-ctrl-01.amd.com>
Co-authored-by: HAI <hixiao@gmail.com>
2026-08-06 03:19:35 -07:00
Yoray Zack 48f1b14fc7 test: fix NIXL EP Mooncake FT test (#32638) 2026-08-06 18:00:18 +08:00
YAMYandLee Nau 8b29c90218 [NVIDIA] Enable CuTe DSL BF16 GEMM on SM107 (#33617)
Co-authored-by: Lee Nau <lnau@nvidia.com>
2026-08-06 02:06:08 -07:00
Bingxu Chen dfe53232d7 [AMD] Move test_load_weights_from_remote_instance.py to extra CI (#33809) 2026-08-06 01:57:31 -07:00
Baizhou Zhang 0e584529f5 [CI] Remove profiling from nightly tests (#33832) 2026-08-06 01:16:08 -07:00
Xinyuan Tong 31c1e5943f Facade DSA index-cache: MTP topk-reuse state + index-K storage (#28609) 2026-08-06 00:34:31 -07:00
Baizhou Zhang 5d1a0c7129 Revert "Warn on risky serving-time Triton work" (#33826) 2026-08-05 23:36:10 -07:00
32e5d788bd [mm] rust-server: native multimodal processing for Qwen VL (integrate sglang-mm, e2e) (#32365)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 23:35:50 -07:00
8e11feb68e [HiCache] Support packed and sidecar draft caches for MTP/EAGLE/DSpark (#30393)
Co-authored-by: hjzhang <hjzhang89.gmail.com>
Co-authored-by: Zhangheng <hzh0425@apache.org>
Co-authored-by: shuwenn <47200617+alphabetc1@users.noreply.github.com>
2026-08-06 14:31:11 +08:00
Xiaoyu ZhangandClaude Fable 5 b6876fc652 [diffusion] ERNIE-Image bit-exact residual-gate fast path (H200 1024^2 e2e 16.17 -> 15.75 s) (#33734)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 13:43:09 +08:00
Liangsheng Yin 9bd1461757 [CI] Bound the CUDA graph capture range in test launches and lift the spec fixture's admission cap (#33776) 2026-08-05 20:00:30 -07:00
Mohammad Miadh Angkad f33f6a522f Relax GDN ReplaySSM fold test for Triton 3.7 (#33780) 2026-08-05 19:44:14 -07:00
Cheng Wan 4ea227fa91 config: the draft runner carries its own attention backend
`build_draft_tp_worker` built a `ServerArgs` variant whose only job was to make
four config reads answer with the draft's backend instead of the target's, and
published it for the duration of the build so the bags agreed. The backend is a
per-runner fact — target and draft coexist in one process — so it moves onto the
runner, and the variant and the construction-time publish both go away.

`ModelRunner` takes `draft_attention_backend` and resolves the runner's effective
value once (`resolve_draft_attention_backend`: the algorithm's resolved backend,
else `--speculative-draft-attention-backend`, else None for a target runner);
`TpModelWorker` threads it to both runner constructions.
`resolve_attention_backend_strs` reads it off the runner, and `ModelRunner`
stamps the resolved pair *before* building backends so a backend can read it
while it constructs — which is what the FlashInfer KV-access check needs now that
it no longer asks the config. `configure_kv_cache_dtype` and the draft backend
factory read the runner too.

One latent bug falls out: the non-hybrid branch of the backend build ignored the
resolved pair and re-read `server_args.attention_backend`, which is why the
variant had to set that field as well as the split pair. It now uses the value
that was resolved for the runner.

`draft_server_args_overrides` and the `preserve_config()` publish switch are
deleted; with them goes the last production `ServerArgs.derive` outside
pre-publish config building, and the last construction-time publish. The
chunked-prefix gate the target resolved simply stays in the bags, since nothing
re-projects them.
2026-08-05 19:32:24 -07:00
Cheng Wan 64eeb153df config: resolve the draft worker's config per runner, not on a copy
The v2 spec workers got a published `ServerArgs` copy carrying two values: the
target's context length and `--speculative-draft-load-format`. Neither is a
process-wide config change — each is consumed by exactly one constructor — so
the copy, the publish switch around the draft build, and the replay of the
target's resolved overrides onto it all go away, and the values travel to the
runner that owns them:

- **Context length.** `TpModelWorker` already takes it (`context_length=None`
  keeps `server_args.context_length`); the four v2 draft workers and
  `build_draft_tp_worker` pass the target's, which every one of them has in
  scope as `target_worker` / `target_model_config`.
- **Load format.** `ModelRunner._draft_load_format()` resolves it for a draft
  runner and `build_load_config` takes it, so the `LoadConfig` is per-runner.
  Model code also reads it off the bag while it builds — Inkling replaces
  per-element noise in its shared-expert scales under dummy loading — so the
  load is wrapped in a scoped bag override that puts the target's value back.
- `skip_tokenizer_init` was on the copy for nobody: `TpModelWorker` already
  short-circuits the tokenizer for a draft worker (`or self.is_draft_worker`).

`PrefillCudaGraphRunner._max_addressable_prefix_len` capped the prefix by
`server_args.context_length`, which the copy used to carry for the draft; it now
reads the runner's own `model_config.context_len`. That is also more accurate for
the target, whose `--context-length` may be unset while the resolved context is
shorter than the token table.

What stays a variant is the dflash/dspark path's attention backend: backend
selection reads it off the config object the draft runner holds, and the
resolved gate has to survive the variant's publish. `draft_server_args_overrides`
now carries only those fields and says why.
2026-08-05 19:31:23 -07:00
Cheng Wan 99cfc90658 config: retire ServerArgs.override in favour of derive()
`ServerArgs.override(source, **fields)` was the last way to change a resolved
`ServerArgs` in place. Every remaining call-site was one of two things, and
neither wanted an in-place write:

- **A config for someone else.** A draft worker's context length, an encode
  worker's device, the compile script's watchdog, the client's port pick, a test
  fixture's backends. These already deepcopied first — the write was on the copy.
- **A launcher-stage resolution.** `resolve_auto_parsers` detected the chat
  template's parsers and wrote them back, to be inherited by the schedulers it
  spawns.

Both are "one config becomes another", so `derive(source, **fields)` returns the
variant and leaves the receiver — and any bags projected from it — untouched. It
deliberately is not `dataclasses.replace`: resolution does not re-run, because
the values being set are decided after it, from inputs it never had. Provenance
and the resolvable-field stash work as before, on the copy.

`resolve_auto_parsers` now computes the parsers and returns the config to launch
with; the detection helpers stop taking a config to mutate. `HiMambaRadixCache`
re-applied a HiCache layout normalization `__post_init__` already performs (the
same duplicate removed from `UnifiedRadixCache` in ebb1c88d23) and just goes.

With no in-place mutation left, `ServerArgs.__setattr__` raising after
resolution *is* the guarantee, so the textual writer ratchet retires and
`test_server_args_derive.py` pins the contract instead: the receiver survives
deriving, the published instance still refuses assignment, and deriving does not
publish. `SGLANG_STRICT_CONFIG_MUTATION` was already unused — the guard has been
unconditional since the mutation sweep — and goes with it.

The detection tests drop their `SimpleNamespace` stand-in for a real
`ServerArgs`; the test kit and the MLA chunk-metadata fixture publish a derived
variant instead of writing the runner's published config.
2026-08-05 19:30:53 -07:00
Cheng Wan d33ab39ebc config: template-detected parsers go to the engine's control-plane overlay
`init_tokenizer_manager` wrote the chat-template-detected `reasoning_parser` /
`tool_call_parser` onto the published `ServerArgs`, after
`TokenizerManager.__init__` had already projected the config bags — so the
namespace readers and the resolved-config readback disagreed with the instance,
and a second `Engine` in the same process would inherit the first one's
detection through the shared bags.

Detection is per-engine control-plane state, which the manager already models:
`record_config_updates` records it, the readback endpoints overlay it, and
`config_value` reports what is in effect. `OpenAIServingChat` — the only reader
of these two fields in the tokenizer process — follows the overlay. The
architecture pass (`resolve_auto_parsers`, before the schedulers fork) is
unchanged: the scheduler resolves its own bags from the instance it receives.
2026-08-05 19:29:51 -07:00