Repository navigation
Conversation
|
/rerun-failed-ci |
AMD CI failure comparison with scheduled
|
| Failure | Scheduled main evidence |
|---|---|
MXFP8 route: (1792, 5120, 1, nan) |
Exact match |
KDA verify/decode parity: head_dim=128 and output-register allocation error |
Exact match |
Fused KDA bit-exact cases [8] and [9] |
Exact match |
| MiniMax indexer: 131072 bytes of shared memory required, 65536-byte hardware limit | Exact match |
| Trace level 0: six spans collected instead of zero | Exact match |
The same five failures also reproduce in the later scheduled main run 37553745648, so they are existing main failures rather than regressions introduced by this PR.
HiCache/AITER failure triage
I investigated the HiCache failure in more detail. The evidence strongly indicates that it is not caused by this PR:
- The crash happens during decode CUDA-graph capture while AITER is JIT-compiling
module_moe_ck2stages_b16_b16_preshuffle_off_b16_silu_no_mulWeightStage2. Three parallel clang compilations fail withmalloc(): smallbin double linked list corrupted, a segmentation fault, andfree(): invalid pointer. - This occurs before
build_kv_cache() -> init_hicache(). The failed log never reaches the 200 GB HiCache host-pool allocation. - The CI job does not set
HSA_USERPTR_FOR_PAGED_MEM=0. Therefore the newhipHostMalloc/GTT branch added by this PR is not selected; the test retains the existing USERPTR allocation path. - The preceding scheduled-main shard used the same ROCm image digest and AITER revision, built the same AITER module, allocated the HiCache pool, and passed. The following scheduled-main shard also passed.
I also ran TestHiCacheMLA.test_mmlu locally at PR head c7453ec on MI355X with the matching ROCm 10 image date and AITER revision, leaving HSA_USERPTR_FOR_PAGED_MEM unset as in CI. A fresh JIT build of the same AITER module completed in 48.1 seconds; CUDA-graph capture completed, the 200 GB HiCache host pool was allocated, and the server became healthy. The accuracy phase was then blocked only by an HTTP 429 while fetching the pinned MMLU archive. Separately, all 15 allocator unit tests pass locally.
The local run is not an exact gfx942 reproduction, but together with the execution order, inactive PR code path, and the two passing adjacent-main controls, it supports treating this as a transient ROCm clang/AITER JIT runner failure rather than a regression from #42553.
The MORI failure is also a one-off clang exit-code-139 during dependency installation; its preceding-main shard passed, and it happens before the test suite can exercise this PR. The remaining gate failures are downstream consequences, not additional test failures.
Overall, the AMD CI evidence does not indicate a regression caused by this PR.
1am9trash
left a comment
There was a problem hiding this comment.
LGTM.
- The behavior change is guarded by
_uses_hip_owned_host_memory(_is_hipand env varHSA_USERPTR_FOR_PAGED_MEM=0), so there is no impact on the nv side. - The new tests are CPU mocks and do not use a GPU. They also run on nv CI, and the non-hip case keeps the previous code path.
bench_host_memory_migration.pyis only a manual reproducer.
Hi @jiejingzhangamd,
Only one suggestion, not a blocker. pool_host/common.py is shared by every backend, and this PR adds some hip-specific helpers there. I think we could move them to a separate file in a follow-up PR?
Thanks, I've start a follow up PR at #42991 to move hip related helper in a separate file. |
|
/rerun-failed-ci |
torch pin_memory rounds every pool up to a power of two, so a 180 GB pool pinned 256 GiB of GTT. Allocate the exact size with hipHostMalloc, free it with the last view, and name the GTT cap when allocation fails. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: JohnQinAMD <yanyuan.qin@amd.com>
c7453ec to
8c27ef4
Compare
|
/rerun-failed-ci |
2 similar comments
|
/rerun-failed-ci |
|
/rerun-failed-ci |
…CP pad-row fix), PP4 prefill 4P4D kit, ATOM router support (#198) * feat(docker): ATOM_NIGHTLY image on nightly_202610131505; fix LMCache ROCm pool and DCP sparse pad rows Rebase the opt-in ATOM image from nightly_202609221542 (ATOM d9f0720) onto rocm/atom-dev:nightly_202610131505 (ATOM 661ef766, LMCache 0.5.6.dev139). The build arg ATOM_DCP_PATCHES / patches/atom_dcp becomes ATOM_NIGHTLY / patches/atom_nightly: the base is an ATOM nightly, so the legacy patches/atom loop (written for the default release base) is skipped and the strict scripts run instead. The default build (ATOM_NIGHTLY=0) is unchanged. - Drop patch_dcp_prefill_mtp_metadata (upstream #2430; fails on the new base), patch_lmcache_lookup_pin (LMCache#5098 is in the base) and patch_moe_eager_decode_pad (DP attention only, unused by the DCP kits). - Keep the AITER mha_varlen prebuild and the protobuf<7 pin. On gfx950 this nightly loads the ASM fmha_v3 varlen module instead; the prebuild stays for gfx942. - patch_lmcache_rocm_pinned_alloc.py: with LMCACHE_NUMA_MODE the LMCache CPU pool is mmap + mbind + hipHostRegister, a KFD USERPTR mapping whose pages the kernel may migrate; each migration evicts every GPU queue of the process (15-110 s stalls measured on a 256 GiB pool). With HSA_USERPTR_FOR_PAGED_MEM=0 the pool now uses LMCache's exact-size hipHostMalloc (GTT, not migratable), as sgl-project/sglang#42553 does for HiCache. Without =0 the upstream path stays and a warning says so. - patch_atom_dcp_sparse_pad_rows.py: with sparse MLA + DCP + MTP the P/D producer runs an eager q_len=1 step whose padded rows keep stale dcp_sparse_kv_indptr_buffer offsets; a negative row length makes the persistent MLA kernel read past kv_indices ("Memory access fault by GPU" on the prefill under long-prefix load). Padded rows now get an empty KV range. - Correct the base Mooncake version (0.3.13, same binary as the old nightly). Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * feat(examples): run the GLM-5.2 4P4D kit on the new image; add an 8P4D example 4P4D kit (atom_4p4d_glm5.2_dcp): - The prefill with LMCache offload sets HSA_USERPTR_FOR_PAGED_MEM=0 so the CPU pool is GTT (one 4 x 256 GiB prefill per node fits the ~1376 GiB GTT cap). - Backward-compatible multi-node hooks: ETCD_IP, KIT_GPUS (VRAM waits only on the kit's GPUs, on the docker host), REMOTE_PREFILLS and PREFILL_NUM_WORKERS; the libionic mount is checked on the engine's node. - smoke: the needle cold/repeat requests share a session id, so the repeat lands on the same prefill; the expected prefill count follows the topology. - agentx: scrape /metrics of the router and every worker it lists; the GPU count uses the validated prefill count. - README: new image recipe and validation (smoke 6/6, GSM8K 0.975; AgentX C48 26141.94 and C64 30579.35 input tok/s/GPU); old-base numbers kept and labelled. New atom_8p4d_glm5.2_dcp: two TP4+DCP4 prefills and one TP4+DCP4 decode on two nodes (head: prefill0 + decode + etcd/router; second node: prefill1 on GPUs 0-3, started through DOCKER_HOST=ssh:// with the 4P4D worker.sh). Thin kit over the 4P4D scripts. Correctness validated (router 2P/1D, smoke 6/6, GSM8K 0.985, cross-node RDMA); AgentX C84/C96 not measured yet. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * docs(manual): GLM-5.2 ATOM 4P4D on the new image; add the 8P4D walkthrough Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * fix(atom): review follow-ups for the nightly image and the GLM-5.2 kits Image (deploy/docker/): - patch_atom_dcp_sparse_pad_rows.py: move the clamp from _rebuild_sparse_dcp_persistent_metadata into _forward_decode and key it on the host-side row count the DCP exchange writes (scheduled_bs * max_seqlen_q). The padded rows of an eager step now get an empty KV range on q_len=1 decode and MTP verify, persistent and non-persistent alike. A replayed graph runs nothing extra; the previous q_len test was captured into the decode graphs and replayed in every indexer-owning layer each step. - patch_lmcache_rocm_pinned_alloc.py: read HSA_USERPTR_FOR_PAGED_MEM once at import, so a pool is always freed by the function that allocated it. - Dockerfile.atom: a non-empty ATOM_DCP_PATCHES (the switch's old name) fails the build instead of silently building without the nightly steps. Kits (examples/atom_4p4d_glm5.2_dcp/, atom_8p4d_glm5.2_dcp/): - worker.sh: check the docker host's free GTT before starting a prefill with an LMCache CPU tier, instead of failing minutes into the cold start. - common.sh: wait_vram_free reads VRAM in KFD topology order (the order ROCr numbers GPUs) rather than DRM card order, and retries a failed read (an ssh hiccup) until the timeout. KIT_ROLES names the kit's containers on the docker host; prefill1.sh sets it to prefill, so a remote down touches only that container. - agentx.sh: parse the router's worker list as JSON. Validated on MI355X: 8P4D smoke 6/6, GSM8K 0.975; 4P4D AgentX C64 on the same node and settings as before, 30739.05 input tok/s/GPU (was 30579.35), no fault. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * debug(examples): 4P4D kit knobs for block size, prefill chunk, LMCache load and a PP prefill New env.sh knobs, defaults unchanged (the generated docker run commands are identical to before): - BLOCK_SIZE (64), both legs - PREFILL_MAX_BATCHED_TOKENS (16384) - OFFLOAD_MIN_LOAD_TOKENS (8192) - PREFILL_PP (1): 4 runs the prefill TP1 x PP4, eager, with PREFILL_PP_PARTITION layers per stage; AgentX metadata follows - PREFILL_SEND_WORKERS (empty = ATOM's 16): Mooncake num_worker_threads Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * debug(examples): atom_4p4d_glm5.2_pp4, 4P4D with ATOM's TP1 x PP4 prefill An env.sh over the 4P4D kit, as atom_8p4d_glm5.2_dcp is: the prefill follows ATOM's GLM-5.2 AgentX recipe (TP1 x PP4, layers 20,20,20,18, eager, chunk 8192, mem util 0.85, LMCache loads of any length), block 16 on both legs, decode unchanged otherwise. Four Mooncake send workers per stage: ATOM's default 16 hung an RDMA write to one decode rank within the first requests of every AgentX run on MI355X, and one missed the 120 s transfer deadline on 300k-token prompts. On MI355X (crsuse2-m2m-140) against the 4P4D kit, input tok/s/GPU: C64 33389.60 vs 30739.05 (+8.6%), C96 30115.94 vs 20902.07 (+44.1%). For a comparison only; not for merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * refactor(examples): one GLM-5.2 4P4D kit, atom_4p4d_glm5.2, with the PP4 prefill atom_4p4d_glm5.2_dcp and atom_4p4d_glm5.2_pp4 become atom_4p4d_glm5.2. Its env.sh defaults are the PP4 kit's (TP1 x PP4 prefill, layers 20,20,20,18, eager, chunk 8192, mem util 0.85, block 16, LMCache loads of any length, 4 Mooncake send workers), which beat the DCP prefill by 8.6% at C64 and 44.1% at C96 in input tok/s/GPU. PREFILL_PP=1 still selects the TP4 + DCP4 prefill; env.sh and the README list the settings it was validated with. PREFILL_SEND_WORKERS now keeps an explicit empty value (ATOM's default), so those settings can be passed from the environment. CTR defaults to glm52_4p4d. The 8P4D example (atom_8p4d_glm5.2_dcp) and its manual page are removed. The kit's generic multi-node hooks (DOCKER_HOST, REMOTE_PREFILLS, PREFILL_NUM_WORKERS, ...) stay, unused by default. The README merges the two: PP recipe, the DCP prefill as an alternative, validation and reference numbers of both on the current image, and the send-worker hang as gotcha 13. The previous image's numbers are dropped. Not run on GPUs. With docker mocked, worker.sh generates the same docker run commands as the PP4 kit by default, and as the DCP kit with PREFILL_PP=1 and the listed settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * fix(router): configurable client keep-alive, default 900 s The Python router started uvicorn with its 5 s keep-alive default. Agentic clients (AIPerf, agentx-harness) reuse one connection per session across idle turns, and a client that resends just as the router closes that connection gets ServerDisconnectedError, which AIPerf counts as a failed request. --timeout-keep-alive (env INFERA_TIMEOUT_KEEP_ALIVE, default 900) sets uvicorn's timeout_keep_alive. The Rust backend needs no flag: axum's serve sets no hyper timer, so it never closes an idle client connection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * feat(atom): router-side DP rank pinning for ATOM DP-attention An aggregated ATOM worker with --enable-dp-attention runs one engine per attention rank, each with its own KV and prefix cache, but registered as a single target, so the router could not keep a session on one rank. - The ATOM launcher registers dp_size = data_parallel_size x tp under DP attention (ATOM's global_engine_count), for mixed workers. The router already expands such a worker into per-rank targets and binds sessions per rank. - ATOM reads the rank from the request body (data_parallel_rank), not the X-Data-Parallel-Rank header. inject_dp_rank writes it for ATOM targets on the mixed path and on both PD legs; dp_rank_header no longer sends the header to ATOM. PD workers keep registering one rank: the prefill picks its own and the atom-mooncake hand-off reports it back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> * feat(rust): route ATOM PD (atom-mooncake) and ATOM DP ranks The Rust router answered 501 for ATOM PD: it only implemented the concurrent protocols. atom-mooncake is a serial pull -- the decode body is the prefill response's kv_transfer_params -- so it gets its own path, mirroring the Python DisaggRouter._dispatch_serial: - protocol.rs: prefill / hand-off / decode shaping, field for field what ATOM's proxy and the Python protocol send. - disagg.rs: serial_pull POSTs the prefill for one token, releases its load once it answers, then POSTs (unary) or streams the decode. A failed prefill or a reply without a hand-off never reaches the decode and only rebinds the prefill session. The unary decode handling moves into finish_unary_decode, shared with unary_dual. - dp.rs / proxy.rs: ATOM targets carry their DP rank in the body (data_parallel_rank) instead of the header, on the mixed HTTP and NATS paths and the ATOM PD legs. The 4P4D GLM-5.2 kit gets ROUTER_BACKEND (python by default) to run either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> --------- Signed-off-by: YaoCheng <Cheng.Yao2@amd.com> Co-authored-by: Claude <noreply@anthropic.com>
* [diffusion] perf: pipeline MiniMax-H3's Ulysses exchange against cuDNN SDPA on Blackwell (sgl-project#43373) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] fix: fail MiniMax-H3 quality="high" closed on substituted DiT weights (sgl-project#34978) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * [diffusion] Z-Image: autotune the shared transformer block at both token scales (sgl-project#35755) * [DSv4.1] Initialize the full-to-SWA mapping for request-window pools (sgl-project#43165) * [Dsv4.1] Add DeepSeek V4.1 DSPARK TP and DP EP accuracy coverage (sgl-project#43478) * [Refactor][TCPCG] Retire backend selection and configuration (3/9) (sgl-project#42287) * [CI] Remove the GLM-5.3-Flash PTX KDA prefill nightly test (sgl-project#43470) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * Clamp default decode CUDA graph max_bs to max_running_requests (sgl-project#43172) * [Model Loader] Add InstantTensor loader support (sgl-project#40453) * [CI] Fix Python 3.10 failure in prefill complete integration test (sgl-project#43505) * [diffusion] fix: keep a LoRA unmerged under merge_mode auto when merging would round its update away (sgl-project#43385) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [AMD] Resolving bug in per batch size graph capture due to multiple capture runs per batch size (sgl-project#39840) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: HAI <hixiao@gmail.com> * [AMD][CI] Drop removed tp_rank/tp_size kwargs from small-M FP8 proj test (sgl-project#43318) * [AMD] Add an opt-in AITER CK blockscale GEMM for gfx942 block-FP8 linears (sgl-project#41071) Signed-off-by: siliangchen-amd <SiLiang.Chen@amd.com * [CI] Drop CPU tests with no bug-catching signal and run Rust workspace tests in their own workflow (sgl-project#43503) * [rust-server] preserve PD routing in chat and completions (sgl-project#42989) Signed-off-by: Sage Ahrac <sagiahrak@gmail.com> * [AMD][CI] Cap pyarrow below 26 for lmms-eval (sgl-project#43547) * [Rust] Upgrade sglang-radix-tree to PyO3 0.29 (sgl-project#42807) Co-authored-by: colleen-tml <296620403+colleen-tml@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [CI] Fix EAGLE3 CUDA parity prefill chunk alignment (sgl-project#43538) * [diffusion] perf: pipeline every USPAttention Ulysses path's exchange over the copy engine (sgl-project#43521) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] perf: run head_dim-128 QK-norm + RoPE two rows per warp for every RoPE layout (sgl-project#43508) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [Responses] Fix max_output_tokens overestimate on multimodal requests (sgl-project#35524) * [HiSparse] Avoid host synchronization in eager backup (sgl-project#41446) * [MemCache] refactor: require an anchored lock receipt for non-root releases (sgl-project#41452) * [HiCache] Add staged write-back for the page-unified KV cache layout (sgl-project#39606) * [kv-shard 3/4] Enable Control Plane C (sgl-project#40102) * [Docs] Document Qwen3-4B/8B H200 mixed-chunk latency tradeoffs (sgl-project#43551) * [Docs] Let the Qwen3 B300 recipe use the default attention backend (sgl-project#43554) * [HiCache] Keep protected cgroup page cache charged in host budgets (sgl-project#42788) Co-authored-by: Ke Bao <ispobaoke@gmail.com> * [Scheduler] Use committed length in spec mamba track boundary check (sgl-project#43029) Co-authored-by: Ke Bao <ispobaoke@gmail.com> Co-authored-by: Shuwen Wang <47200617+alphabetc1@users.noreply.github.com> * [Refactor] Record what a bound stage path does instead of reading it back (sgl-project#43453) * [Fix] Keep residual rows and sums consistent across appends and pipeline handoffs (sgl-project#43454) * [Refactor] Make residual read and update capabilities explicit and checked (sgl-project#43455) * [Refactor] Decide input-scattered eligibility and stage rejections in one place (sgl-project#43456) * [Refactor] Bind a layer stack in one pass over each stage's data flow (sgl-project#43457) * [Refactor] Decide an exit's fixed facts when the stage is built (sgl-project#43458) * [Refactor] Declare pipeline neighbours from a shared declaration function (sgl-project#43459) * [Refactor] Declare every model's stages from a shared function and drop the meta-device neighbour build (sgl-project#43460) * [CI] Fix Kimi-Linear DCP PD test startup (sgl-project#43598) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * [Model] Keep gpt-oss router logits batch-invariant under deterministic inference (sgl-project#43624) * [Dsv4.1] Mega-mhc integration (sgl-project#42808) Co-authored-by: Yuwei An <yuwei.an@MacBook-Pro-yuweian.local> Co-authored-by: kpham-sgl <khoa.pham@radixark.ai> * [diffusion] fix: accept request-level profiling on the image API (sgl-project#43573) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] feat: declare regional compile regions for flux (sgl-project#43575) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] feat: bind each GPU worker to its GPU's NUMA node (sgl-project#43565) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] feat: warn instead of disabling on unvalidated models for BCG(sgl-project#43568) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] feat: keep the TP all-reduce inside the graph (sgl-project#43602) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] fix: keep exported buffers out of expandable segments for IPC all-to-all(sgl-project#43584) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] fix: skip QKV packing while layers are offloaded (sgl-project#43576) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] perf: add the dynamic LoRA delta inside the second GEMM (sgl-project#43501) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] CI: skip the LTX-2 RMSNorm-modulation guard test off the CUDA platform (sgl-project#43574) Co-authored-by: Mick <mickqian@radixark.ai> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] fix: skip inductor's saved multi-kernel pick for torch.compile (Z-Image warm starts crash or hang) (sgl-project#43601) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] comfyui: fail early instead of silently dropping features in SGLD integrated mode (sgl-project#43495) Co-authored-by: OnePunchMonk <aggarwal.avaya@yahoo.com> * [Fix] Reserve remaining tokens for ignore_eos requests during prefill admission (sgl-project#43564) * [DSA] Support TileLang FP8 KV cache on CUDA (sgl-project#42957) Co-authored-by: Xiaoyu Zhang <1182563586@qq.com> * fix: wait for HiCache load-back before hybrid MLA KV reads (sgl-project#38217) Co-authored-by: zhouzechun <zhouzechun@kuaishou.com> Co-authored-by: alphabetc1 <2508695655@qq.com> * [diffusion] fix: keep the overlay probe from stalling cached startup (sgl-project#43590) * [diffusion] fix: serve whole graphs after offload-during-compile (sgl-project#43631) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] Support LLaDA-Image BF16 generation and editing (sgl-project#37907) * [PD][HiCache] Fold the decode restore outcome into the MIN-reduced KV poll (sgl-project#43562) Co-authored-by: Kevin Flansburg <kflansburg@cloudflare.com> * [diffusion] perf: keep Qwen-Image-2.1 and Ulysses graphs whole (sgl-project#43586) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] perf: keep Cosmos3's fused kernels in the graph (sgl-project#43577) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] fix: Qwen-Image BCG prompt padding misses every graph and attends the pad (sgl-project#43632) Co-authored-by: Mick <mickqian@radixark.ai> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] fix: replay Qwen-Image-2.1 BCG graphs across prompt lengths (sgl-project#43633) Co-authored-by: Mick <mickqian@radixark.ai> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] perf: run the attention section eager under torch.compile for MiniMax-H3 (sgl-project#43634) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [1/N][DSv41] Enable DP attention with MegaMoE (sgl-project#43228) * [diffusion] comfyui: consolidate FluxAdapter correctness fixes (sgl-project#43490) Co-authored-by: niehen6174 <1639206518@qq.com> * [diffusion] comfyui: consolidate executor conditioning-cache fixes (sgl-project#43492) Co-authored-by: niehen6174 <1639206518@qq.com> * [Scheduler] Keep waiting-prefix LRU refresh consistent across TP ranks (sgl-project#43479) * [Perf] Fuse BF16 writes to native HND KV cache storage (sgl-project#43237) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [diffusion] Don't report video jobs completed after their outputs are deleted (sgl-project#43084) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Xiaoyu Zhang <1182563586@qq.com> * [GDN] Fix CuTe DSL decode to read the [N, HV, V, K] state layout (sgl-project#43332) Co-authored-by: Xiaoyu Zhang <1182563586@qq.com> * [KDA] Support Helion MTP verification and harden prefill, decode (sgl-project#42857) * [AMD]Qwen add Sparse attention to capturing hip graphs (sgl-project#43383) * [Spec] Allow Qwen3.5 backends to opt into packed target verification (sgl-project#43037) * [qwen 3.8 next] Fuse QSA prefill KV gathering and dtype conversion (sgl-project#41933) * [Scheduler] Requeue preempted requests when admission admits nothing (sgl-project#43298) * [Test] Do not hang scripted-runtime teardown when the server died (sgl-project#43285) * [KV canary] Expect sweep counters on the target runner only (sgl-project#43286) * [Scheduler] Hold back decode rows on a mixed step when they do not fit the KV pool (sgl-project#43290) * [Sampler] Sort only the max(top_k) leading columns in the torch sampler (sgl-project#43346) * [Scheduler] Keep a DP-converted decode batch as the running batch (sgl-project#43283) * [kvevents] fix missing topics in replayed kv events (sgl-project#43386) Signed-off-by: Sage Ahrac <sagiahrak@gmail.com> * [DeepSeek-V4.1] Use num_stages=1 for the hc_mix stats partial kernel (sgl-project#43070) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Yuan Luo <4908075+yuan-luo@users.noreply.github.com> * [VLM] fix: repair multimodal VMM lease cleanup and source-stream ordering (sgl-project#43475) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * [Diffusion] Add ModelOpt FP8 checkpoint quantization for Pi0.5 (sgl-project#43062) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * fix: default Inkling to fa4 on Hopper (sgl-project#35292) * [BugFix][DP] Prevent health checks from perturbing user request routing (sgl-project#35721) Signed-off-by: Phoenix3334 <Phoenix3334@users.noreply.github.com> * [Unified Radix] Invalidate lazy Mamba checkpoints before in-place tracking (sgl-project#43567) * [diffusion] perf: encode LTX video/audio through the shared bounded MP4 path (sgl-project#43656) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * [HiCache] Keep storage workers alive on backend exceptions (sgl-project#43550) * Build Mamba host pools from device buffer infos (sgl-project#43596) * Share MLA host capacity initialization (sgl-project#43595) * Preserve serialized page dtype in NIXL copy fallback (sgl-project#43593) * [diffusion] fix: select VSA-H3 for FastH3 when no transformer backend is given (sgl-project#43690) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [KV Events] Publish LoRA adapter names and namespaced block hashes (sgl-project#42455) Signed-off-by: Banruo Liu <lichangxinlivingshade@gmail.com> Co-authored-by: Shangming Cai <csmthu@gmail.com> * [DSpark] Run every markov head through one step interface (sgl-project#43620) * [DSpark] Add `MarkovSampleStep`, one op for a markov draft step's add and token pick (sgl-project#43621) * [DSpark] Draft the eager markov block through `MarkovSampleStep` (sgl-project#43622) * [DSpark] Run the same markov block in the draft graph tail; drop `SGLANG_DSPARK_FOLDED_SAMPLING` (sgl-project#43668) * [DSpark] Merge the draft TP sync sites into `dspark-draft` (sgl-project#43669) * [DSpark] Add `SGLANG_DSPARK_USE_GREEDY_DRAFT`, an argmax draft accepted as one-hot (sgl-project#43670) * [DSpark] Apply `SGLANG_SIMULATE_ACC_LEN` inside the accept instead of switching paths (sgl-project#43623) * [diffusion] fix: shard Qwen-Image adaLN modulation and text FFN under TP (sgl-project#43691) * [diffusion] perf: layerwise offload for the LTX-2.5 Gemma-4 text encoder (sgl-project#43683) * [diffusion] perf: split and batch LTX-2.3 one-stage guidance passes under CFG parallel (sgl-project#43684) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * [Fix] Initialize BF16 GEMM dispatch in the one-batch benchmark (sgl-project#43702) * Fix Mistral-native format detection when the Hub is unreachable (sgl-project#43446) * [MoE] Skip block-padding rows in the TMA down activation and quant (sgl-project#42212) * [MemCache] Split the SWA mapping move out of locked-full recovery as `RecoverEvictedSWA` (sgl-project#43721) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: Jialin <Jialin@users.noreply.github.com> * [Rust] Lock hyper 1.12.0 and want 0.3.2 in the rust workspace (sgl-project#43724) Co-authored-by: hanminglu <hanminglu@users.noreply.github.com> Co-authored-by: shodoco <shodoco@users.noreply.github.com> * [MemCache] Add shared component size and path APIs to the tree core interface (sgl-project#43722) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: Jialin <Jialin@users.noreply.github.com> * [CI] Fix TestQwenImageModulationCache after Qwen-Image modulation sharding (sgl-project#43747) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [Bugfix] Preserve available host memory for integrated MUSA devices (sgl-project#43398) Signed-off-by: Xucheng Zhou <aden1350@outlook.com> * [Tokenizer] Require fastokens>=0.3.2 and include it in the all extra (sgl-project#43104) * [AMD][V4.1][*/N] Fix DP attention + TP MoE decode NaN and support bounded replay (sgl-project#43077) Co-authored-by: wunhuang <wunhuang@amd.com> Co-authored-by: HAI <hixiao@gmail.com> * Support kv cache sharding for DSA indexer (sgl-project#40925) * [AMD][MORI] Add MORI EP V2 support (sgl-project#40666) * [PD] Retract transferred decode requests on a retract pause (sgl-project#43757) * [DSV4.1] Reduce eager Engram extend preparation (sgl-project#42159) Co-authored-by: Shangming Cai <csmthu@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [Test] Re-anchor the VLM flashinfer throughput floor (sgl-project#43762) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * [Fix] scheduler: stop latching batch_is_full when nothing can run (sgl-project#41872) Co-authored-by: hnyls2002 <lsyincs@gmail.com> Co-authored-by: Liangsheng Yin <hnyls2002@gmail.com> * [RL] Return a failed weight update when the cache flush is refused (sgl-project#43758) * [CI] Skip eval retries in the PD transfer-failure test (sgl-project#43769) * docs: sync LMSYS SGLang blog cards (sgl-project#43462) Co-authored-by: sglang-bot <sglang-bot@users.noreply.github.com> * [Deps] Bump FlashInfer to 0.7.1 (sgl-project#43494) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * [XPU CI] Optimize PR CI per-file timeouts and fail hanging tests fast (sgl-project#42048) * [Fix] Adapt to transformers 5.18 / 5.19 changes (sgl-project#43688) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * [diffusion][xpu] FLUX.2: enable the bit-exact Triton SwiGLU on XPU (sgl-project#41940) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * docs: clarify prefill CP terminology and simplify wording (sgl-project#43787) * [Fix] Link cuda_ipc JIT against CUDA driver stubs dir (sgl-project#43764) * [Perf] Route BF16 mixed-batch decode tails through decode attention (sgl-project#43238) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Xiaoyu Zhang <1182563586@qq.com> * [PD] Poison the deferred abort ack when a Mooncake send fails (sgl-project#43719) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * [HiCache] Support Mamba in buffer-only host memory mode (sgl-project#36345) * [HiCache] Preserve all MTP KV and recurrent state (sgl-project#40223) Co-authored-by: alphabetc1 <2508695655@qq.com> Co-authored-by: Shuwen Wang <47200617+alphabetc1@users.noreply.github.com> * [CI] Move tests that do not need GB300 off the per-PR GB300 suite (sgl-project#43784) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * Capture KV host transfer buffers (sgl-project#43711) * Keep NIXL Mamba checkpoint keys separate by TP rank (sgl-project#43594) * [XPU] Support decode context parallelism (DCP) on Intel XPU (sgl-project#34355) Co-authored-by: Siju Samuel <siju.samuel@intel.com> * [BCG][DSV4-Flash][CP] Support DeepSeek V4 prefill with interleave CP and breakable CUDA graphs (sgl-project#38603) * [DSV4.1][PD][1/N] Support prefill node use cp parallel strategy (sgl-project#40323) * [Docs] Update GLM-5.3-Flash playground: B300 default, CP8, EP and PD (sgl-project#43802) * [Docs] Cookbook: refresh SemiAnalysis AgentX launches (GLM-5.2 B300, DeepSeek-V4.1 GB300) (sgl-project#43799) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [NPU] Stabilize HiCache and registered CI tests (sgl-project#43308) * [sgl-router] Serve the Anthropic Messages API on /v1/messages (sgl-project#42316) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com> * [Fix] Make tokenizer request-state initialization atomic (sgl-project#41911) Co-authored-by: Cheng Wan <54331508+ch-wan@users.noreply.github.com> * [XPU] Upgrade XPU backend to PyTorch 2.14 (sgl-project#42003) Co-authored-by: Ashwini Rathi <arathi@habana.ai> Co-authored-by: Y <ashwini.rathi@intel.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [PD][Spec] Give a PD decode's first EAGLE draft step a proposal distribution (sgl-project#41783) Co-authored-by: Shangming Cai <csmthu@gmail.com> * [Fix] Adapt NPU Qwen-VL processor patch to transformers 5.19 resize() signature change (sgl-project#43309) * [NPU] Diffusion CI fixes (sgl-project#43210) * [diffusion] chore: bind worker CPUs to the GPU's NUMA node when memory policy is not permitted (sgl-project#43756) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [CI][Diffusion] Add caching for npu GT images in CI (sgl-project#37426) Co-authored-by: Артем Савкин <58187114+OrangeRedeng@users.noreply.github.com> * [QSA] Bound the decode indexer's work by the context length (sgl-project#43463) Co-authored-by: luoyuan.luo <luoyuan.luo@antgroup.com> * Prebuild fixup_zero_kv JIT module at TRTLLM-MLA backend init (sgl-project#37525) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * [Unified Cache] Abort requests whose external linker load fails instead of crashing the scheduler (sgl-project#40896) * [DSpark] Share draft params, logits dtype, confidence and the accept tail between graph and eager (sgl-project#43790) * [DFlash] Decide the Domino candidate pool in one place and apply simulated acceptance inside the accept (sgl-project#43791) * Fix autograd retention in CUDA graph capture tail hooks (sgl-project#43854) * [ROCm] Eliminate HiCache migration stalls and use exact-size host allocations (sgl-project#42553) Signed-off-by: JohnQinAMD <yanyuan.qin@amd.com> Co-authored-by: JohnQinAMD <yanyuan.qin@amd.com> * [AMD] Keep the FP4 varctx schedule test off AITER's 2048-row compile (sgl-project#41793) * [AMD] Add flydsl mxfp8 dense gemm kernel for dpsk v4.1 prefill (sgl-project#43803) * [AMD] Fix test_compact_attention_hip.py CI (sgl-project#43836) * [AMD] [Docker] Update MoRI to v1.2.4 (sgl-project#43834) * [Kernel] Expose bundled FlashMLA MegaAttention kernels and APIs (sgl-project#43918) * [DeepSeek-V4.1] Admit the NIXL transfer backend for DSpark PD (sgl-project#43734) * [AMD] Recalibrate test_quark_mxfp4 GSM8K thresholds to observed MI355X noise (sgl-project#41980) * [DSV4][CP] Write low-ratio page indices when CP prefill runs paged attention (sgl-project#43935) * [Build][CI] Drop Python 3.10: require Python 3.11+ and run CUDA CI on Python 3.12 (sgl-project#43021) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> Co-authored-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> * [DeepSeek-V4.1] mHC: drop seam_open, narrow precomputed stats in take_rows (sgl-project#43833) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [DSv4.1] Reduce sparse-prefill workspace padding (sgl-project#43921) * [HiCache] Avoid full-store scans for uncached file prefix lookups (sgl-project#42077) Signed-off-by: apex-mochen <2756823972@qq.com> Co-authored-by: apex-mochen <265981728+apex-mochen@users.noreply.github.com> Co-authored-by: Zhiqiang Xie <xiezhq@stanford.edu> * [Fix] Preserve HTTP errors for non-streaming /v1/messages (sgl-project#43796) Co-authored-by: Xinyuan Tong <xinyuantong.cs@gmail.com> Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com> * [DSv4.1] Temporarily disable B300 PD/CP accuracy test (sgl-project#43948) * [PD] Recompute retracted DeepSeek-V4 requests on prefill instead of crashing decode (sgl-project#43936) * [Fix] Account for captured inputs in DeepGEMM masked workspace budget (sgl-project#43563) * [AMD] Update v4 amd cookbook 1012 (sgl-project#43962) * [CI] Remove Mistral Small 4 e2e test (sgl-project#43973) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * Reuse Hugging Face LFM2-MoE configuration (sgl-project#43939) Co-authored-by: Codex <codex@openai.com> * fix(openai): honor tool_choice=none in DeepSeek encoders (sgl-project#43006) Co-authored-by: ai-jz <ai-jz@users.noreply.github.com> Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com> * [diffusion] comfyui: run MiniMax H3, FastH3 and VDN in SGLD integrated mode (sgl-project#43504) * [diffusion] fix: keep MiniMax-H3 VAE fused norms off ROCm (sgl-project#43350) * [diffusion] fix: avoid redundant LoRA scaling while preserving exact numerics (sgl-project#43028) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * tokenizer perf optimization (sgl-project#39771) Co-authored-by: BBuf <1182563586@qq.com> Co-authored-by: Xinyuan Tong <xinyuantong.cs@gmail.com> * [diffusion] perf: implement paint_use_remesh (decimate to 40k faces before UV unwrap) for Hunyuan3D (sgl-project#42770) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * [AMD][Kimi-K3] Use public FlyDSL APIs in KDA decode kernels (sgl-project#43968) Co-authored-by: wunhuang <wunhuang@amd.com> * [AMD] Fix Flux2 kv-gather abort on non-contiguous K/V (sgl-project#43793) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * [AMD] Fuse prefill index-Q RoPE fake-quant and fp4 quantize kernels in DSV4.1 (sgl-project#42911) * [AMD][DI][CI] dsv4pro-fp8 2p1d-ep16-mtp: raise prefill mem fraction for MORI EP v2 memory (sgl-project#43944) * [router] Fix power_of_two with --dp-aware (sgl-project#42027) * [ROCm][Spec] Route NGRAM tree reconstruction to the JIT kernel on HIP (sgl-project#43328) Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Thomas Wang <thomawan@amd.com> * [PD] Support heterogeneous TP for hybrid SWA KV transfer (sgl-project#40909) * [Diffusion] Speed up LTX-2 guidance and video output (sgl-project#43667) * [AMD][PD] enable mori transfer for PD decode DCP (sgl-project#37358) Signed-off-by: inkcherry <mingzhi.liu@amd.com> Co-authored-by: Duyi-Wang <duyi.wang@amd.com> Co-authored-by: HAI <hixiao@gmail.com> Co-authored-by: Shangming Cai <csmthu@gmail.com> * [Docs] Cookbook: refresh SemiAnalysis AgentX launches (DeepSeek-V4.1 GB200/GB300, GLM-5.2 FP8 B300) (sgl-project#43983) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [PD][NIXL] Fix staging buffer startup by accepting slot_layer_ids (sgl-project#43723) Co-authored-by: Po-Han Huang (NVIDIA) <53919306+nvpohanh@users.noreply.github.com> * [router] power_of_two: in-flight request load for --dp-aware decode (sgl-project#43483) * [Perf] Enable fast-math for JIT activations on Blackwell (sgl-project#43236) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [NVIDIA][MegaMoE] Fix the default spec decoding moe backend when the target model uses flashinfer megamoe (sgl-project#40772) Co-authored-by: Po-Han Huang (NVIDIA) <53919306+nvpohanh@users.noreply.github.com> * [HiCache][PD] Allow DSA index-K elision under HiCache and disaggregation (sgl-project#41769) Co-authored-by: Anish Shanbhag <ashanbhag@nvidia.com> * [CI] Use sgl-eval for GLM-5.3-Flash GSM8K tests (sgl-project#43975) Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * [FlashInfer] Add startup autotuning for MegaMoE (sgl-project#43789) * [Perf] Compact GDN causal-conv grids for skewed prefill batches (sgl-project#43570) * [AMD][CI] Run test_tracing.py in the extra tier, matching CUDA (sgl-project#43928) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fix EVS for NemotronH_Omni_Reasoning_V3 (sgl-project#42933) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Po-Han Huang (NVIDIA) <53919306+nvpohanh@users.noreply.github.com> * fix(multimodal): convert grayscale tensors to RGB in PIL backend (sgl-project#42127) Co-authored-by: 周云昊 <zhouyunhao@zhouyunhaodeMacBook-Pro.local> * [diffusion] comfyui: run Qwen-Image 2.1 in SGLD integrated mode (sgl-project#43581) * [diffusion] feat: add configurable reference image resizing for MiniMax H3 Ref2VA (sgl-project#35839) Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> * Fix/compressed tensors nvfp4 hopper (sgl-project#40022) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * [NPU] [DOC] update kimi k3 cookbook and supported features on NPU (sgl-project#44052) * [DSA] Q8KV8 FP8 Sparse Prefill on GLM-5.3-Flash with BF16 KV Cache (sgl-project#41790) Co-authored-by: Xiaoyu Zhang <1182563586@qq.com> * [CI] Run test_pi05_modelopt_fp8_cuda in the kernel-unit lane (sgl-project#44055) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(openai): omit absent tool_calls from chat responses (sgl-project#43027) Co-authored-by: ai-jz <ai-jz@users.noreply.github.com> Co-authored-by: Xinyuan Tong <xinyuantong.cs@gmail.com> * Skip fully-masked KV tiles in sliding-window extend attention (sgl-project#39769) Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openai): keep chat stream created timestamp stable (sgl-project#43026) Co-authored-by: ai-jz <ai-jz@users.noreply.github.com> Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com> * fix(openai): preserve zero cached tokens when cache reporting is enabled (sgl-project#43005) Co-authored-by: ai-jz <ai-jz@users.noreply.github.com> Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com> * [AMD][DI][CI] glm52 2p1d-ep16: capture CUDA graph on decode (eager decode is too slow) (sgl-project#43977) * [AMD][DI][CI] kimik26 2p1d-ep16: capture CUDA graph on decode (eager decode is slow) (sgl-project#43985) * [perf] [multi-lora] remove empty CTAs from fused LoRA expand and add split-K to shrink (sgl-project#41951) Co-authored-by: Yanbin Jiang <jybsuper@gmail.com> * Rainj me/rust bench (sgl-project#43950) * [Observability] Report per-request storage prefetch and staging waits in meta_info (sgl-project#43946) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: xiezhq-hermann <xiezhq-hermann@users.noreply.github.com> * [lora] Support LoRA for the NemotronH_Nano_VL_V2 model family (sgl-project#39798) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Po-Han Huang <pohanh@nvidia.com> Co-authored-by: Yanbin Jiang <jybsuper@gmail.com> * [Rust] Refuse an unsupported multimodal model before the Rust listener binds (sgl-project#43925) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: shodoco <shodoco@users.noreply.github.com> * [Core] Keep request priority within the signed 64-bit range in radix caches (sgl-project#43920) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: qandrew <qandrew@users.noreply.github.com> * [DCP] Decode context parallelism for DSA (GLM-5.2 / GLM-5.3) with MTP (sgl-project#43735) Co-authored-by: vincentzed <207368749+vincentzed@users.noreply.github.com> * [HiCache] Block-group pool hits, caller-owned load destinations, allocation-target FULL eviction (sgl-project#43868) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: xiezhq-hermann <xiezhq-hermann@users.noreply.github.com> * [Rust] Let an embedding package wrap the frontend HTTP app (sgl-project#43924) Co-authored-by: hanminglu <hanminglu@users.noreply.github.com> Co-authored-by: shodoco <shodoco@users.noreply.github.com> * [Core] Add request-level customized_info keys and mark Full prefill capture batches (sgl-project#43772) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: jiayisuse <jiayisuse@users.noreply.github.com> * [HiCache] Extract the buffer-mode prefetch and load-back lifecycle into pipeline operations (sgl-project#43870) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: xiezhq-hermann <xiezhq-hermann@users.noreply.github.com> * [unified memory pool] Prefer SWA reclaim quotas with a HiCache storage backend or on PD decode (sgl-project#43919) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: ZYHowell <ZYHowell@users.noreply.github.com> * [Rust] Serve any `model` name on the OpenAI chat and completions routes (sgl-project#43923) Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: shodoco <shodoco@users.noreply.github.com> * docs: add MiniCPM-V 4.7 cookbook (sgl-project#43829) * [Feature] Add Aaronson-Gumbel text watermarking (sgl-project#37577) Co-authored-by: Nihar Patel <nihpat95@gmail.com> * [HiSparse] Add speculative decoding support with multi-step KV cache swapping (sgl-project#37771) * [gRPC] Move runtime.v1 bindings to tonic 0.14, report OpenAI status codes, return text on request (sgl-project#42673) Co-authored-by: Kan Wu <kan.wu@radixark.ai> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [DeepSeek-V4.1] Run decoder SWA bounded replay inside the breakable prefill CUDA graph (sgl-project#43736) * fix(benchmark): request token IDs when counting OpenAI prompts (sgl-project#34511) Co-authored-by: Zijie Xia <zijie.xia@radixark.ai> * Mark FP32 redux asm volatile (sgl-project#44137) * [Score] Send stacked GPU embedding overrides through a CUDA IPC pool (sgl-project#39730) Co-authored-by: Sundara Raman Ramachandran <sundar24295@gmail.com> Co-authored-by: hnyls2002 <lsyincs@gmail.com> * [Feature] Return output top logprobs as flat base64 arrays on request (sgl-project#42890) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [DSV4.1] Support decoder SWA bounded replay with CUDA DP attention (sgl-project#43812) * GLM5.2 DSA Indexer Fallback (sgl-project#32947) Co-authored-by: Shu Wang <shuw@login-hecate03.hecate.clusters.nvidia.com> Co-authored-by: Po-Han Huang (NVIDIA) <53919306+nvpohanh@users.noreply.github.com> * [Fix] Work around a CPython fork deadlock in the CPU preprocess pool (sgl-project#44143) * [DSV4.1] Skip Mega mHC fusion on 0-row (DP-idle) batches (sgl-project#43993) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * [Chore] release: Cherry-pick [Disagg] Return prompt routed experts from the PD prefill server to release/v0.5.22 (sgl-project#44002) (sgl-project#44212) Co-authored-by: William Arnold <7565007+Aphoh@users.noreply.github.com> Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: ishandhanani <82981111+ishandhanani@users.noreply.github.com> * [Chore] release: Cherry-pick [CI] glm5.2: Temporarily disable PD HiSparse+MTP B300 test to release/v0.5.22 (sgl-project#44192) (sgl-project#44214) Co-authored-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> * [XPU] Fix FP8 KV cache support for ModelOpt quantized models (e.g. Llama-3.3-70B-FP8) * [XPU] Add MXFP4 W4A16 MoE inference support for Intel Xe2 (GPT-OSS) Enable MXFP4 quantized inference on XPU using the native Xe2 SYCL fused_experts kernel (sgl-kernel-xpu PR#184). - quantization/__init__.py: register mxfp4 quantization method for XPU - quantization/fp4_utils.py: broaden flashinfer import exception to avoid crash on XPU where flashinfer is unavailable - quantization/mxfp4.py: - align intermediate size to 64 for XPU (create_weights) - skip CPU dequant on XPU; leave weights as packed uint8 in VRAM (process_weights_after_loading) - add XPU dispatch in apply(): call sgl_kernel.fused_experts with use_mxfp4_w4a16=True; convert UE8M0 uint8 scales to float32 via exp2(uint8 - 127); default gemm1_alpha=1.702 / gemm1_limit=7.0 to select activation_type=2 (ACT_SWIGLU_GPT_OSS, interleaved weight layout required by GPT-OSS MXFP4 checkpoints) - models/gpt_oss.py: replace hardcoded .cuda() with .to(get_device()) in weight loading to support XPU * [XPU] Improvement for fp4 and fp8 Optimize FP8 KV cache: lazy mirror buffer to avoid full cast per step Fix MXFP4 MoE: read activation/gemm1 params from model config instead of GPT-OSS hardcoded values * Remove WA for FP8 KV cache * Add analyze support for XPU * [Intel][XPU] Allow mamba extra_buffer radix cache strategy on XPU (#9) Co-authored-by: root <root@gnrsp-bmg3.iind.intel.com> --------- Signed-off-by: siliangchen-amd <SiLiang.Chen@amd.com Signed-off-by: Sage Ahrac <sagiahrak@gmail.com> Signed-off-by: Phoenix3334 <Phoenix3334@users.noreply.github.com> Signed-off-by: Banruo Liu <lichangxinlivingshade@gmail.com> Signed-off-by: Xucheng Zhou <aden1350@outlook.com> Signed-off-by: JohnQinAMD <yanyuan.qin@amd.com> Signed-off-by: apex-mochen <2756823972@qq.com> Signed-off-by: inkcherry <mingzhi.liu@amd.com> Co-authored-by: Mick <mickjagger19@icloud.com> Co-authored-by: Mick Qian <mickqian@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Raymond Huang <103474329+Raymondlol@users.noreply.github.com> Co-authored-by: Frederik Gossen <frgossen@meta.com> Co-authored-by: YAMY <74099316+YAMY1234@users.noreply.github.com> Co-authored-by: Yuwei An <ayw.sirius19@gmail.com> Co-authored-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> Co-authored-by: Mohammad Angkad <mohammad.angkad@radixark.ai> Co-authored-by: cctry <csycfl@gmail.com> Co-authored-by: tao <yuanyitao@pku.edu.cn> Co-authored-by: Richard Wang <wangrichard08@gmail.com> Co-authored-by: mohbasit <mohbasit@amd.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: HAI <hixiao@gmail.com> Co-authored-by: chuyeh <chuyeh@amd.com> Co-authored-by: siliangchen-amd <SiLiang.Chen@amd.com> Co-authored-by: Liangsheng Yin <hnyls2002@gmail.com> Co-authored-by: Sage <80211083+sagearc@users.noreply.github.com> Co-authored-by: Bingxu Chen <bingxche@amd.com> Co-authored-by: colleen-tml <colleend@thinkingmachines.ai> Co-authored-by: colleen-tml <296620403+colleen-tml@users.noreply.github.com> Co-authored-by: Shuwen Wang <47200617+alphabetc1@users.noreply.github.com> Co-authored-by: hhy-seven <33918672+hhy-seven@users.noreply.github.com> Co-authored-by: huangtingwei <141888744+huangtingwei9988@users.noreply.github.com> Co-authored-by: Shunkangz <182541032+Shunkangz@users.noreply.github.com> Co-authored-by: Xiaoyu Zhang <1182563586@qq.com> Co-authored-by: Ke Bao <ispobaoke@gmail.com> Co-authored-by: Khoa Pham <khoa.pham@radixark.ai> Co-authored-by: Cheng Wan <54331508+ch-wan@users.noreply.github.com> Co-authored-by: Yuwei An <yuwei.an@MacBook-Pro-yuweian.local> Co-authored-by: Mick <mickqian@radixark.ai> Co-authored-by: WenhaoZhang <42087078+niehen6174@users.noreply.github.com> Co-authored-by: OnePunchMonk <aggarwal.avaya@yahoo.com> Co-authored-by: Jzz1943 <jiangzhongze.jzz@ant-intl.com> Co-authored-by: LoCinder <61399298+LoCinder@users.noreply.github.com> Co-authored-by: zhouzechun <zhouzechun@kuaishou.com> Co-authored-by: alphabetc1 <2508695655@qq.com> Co-authored-by: Shangming Cai <csmthu@gmail.com> Co-authored-by: Kevin Flansburg <kflansburg@cloudflare.com> Co-authored-by: Avaya Aggarwal <119044997+OnePunchMonk@users.noreply.github.com> Co-authored-by: niehen6174 <1639206518@qq.com> Co-authored-by: Chunan Zeng <zcnrex@gmail.com> Co-authored-by: SunskyXH <SunskyXH@gmail.com> Co-authored-by: Nikolai <nprotaso@amd.com> Co-authored-by: paulzhang-tm <paulzhang@thinkingmachines.ai> Co-authored-by: Qiaolin Yu <liin1211@outlook.com> Co-authored-by: jiaqiang-dot-liu <jiaqiang.liu@amd.com> Co-authored-by: Ziyi Xu <76582120+DarkSharpness@users.noreply.github.com> Co-authored-by: Yuan Luo <4908075+yuan-luo@users.noreply.github.com> Co-authored-by: trebladev <54441939+trebladev@users.noreply.github.com> Co-authored-by: FeiHong Guo <1187883824@qq.com> Co-authored-by: Banruo Liu <lichangxinlivingshade@gmail.com> Co-authored-by: Alison Shao <54658187+alisonshao@users.noreply.github.com> Co-authored-by: WangHemeng <47976301+wanghemeng@users.noreply.github.com> Co-authored-by: metamergebot <metamergebot@gmail.com> Co-authored-by: Hanming Lu <69857889+hanming-lu@users.noreply.github.com> Co-authored-by: Jialin <Jialin@users.noreply.github.com> Co-authored-by: hanminglu <hanminglu@users.noreply.github.com> Co-authored-by: shodoco <shodoco@users.noreply.github.com> Co-authored-by: Po-Han Huang (NVIDIA) <53919306+nvpohanh@users.noreply.github.com> Co-authored-by: adenzhou1350 <aden1350@outlook.com> Co-authored-by: weireweire <weiliangl@nvidia.com> Co-authored-by: kk <43161300+kkHuang-amd@users.noreply.github.com> Co-authored-by: wunhuang <wunhuang@amd.com> Co-authored-by: ChengYM <Yueming.Cheng@amd.com> Co-authored-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com> Co-authored-by: hnyls2002 <lsyincs@gmail.com> Co-authored-by: sglang-bot <sglangbot@gmail.com> Co-authored-by: sglang-bot <sglang-bot@users.noreply.github.com> Co-authored-by: ashwini rathi <ashwini.rathi@intel.com> Co-authored-by: Yihao Wang <42559837+AgainstEntropy@users.noreply.github.com> Co-authored-by: Baizhou Zhang <sobereddiezhang@gmail.com> Co-authored-by: Xinyuan Tong <115166877+JustinTong0323@users.noreply.github.com> Co-authored-by: Anupa Sajikumar <anupa.sajikumar@intel.com> Co-authored-by: Siju Samuel <siju.samuel@intel.com> Co-authored-by: BingjiaWang <wangbingjia.wbj@ant-intl.com> Co-authored-by: Jinyan Yi <yijinyan1@huawei.com> Co-authored-by: ybyang <10629930+whybeyoung@users.noreply.github.com> Co-authored-by: C <3121985758@qq.com> Co-authored-by: Pavan Sivaram Girijala <pavan.sivaram.girijala@intel.com> Co-authored-by: Ashwini Rathi <arathi@habana.ai> Co-authored-by: Sasha Sidorov <asidorov566@gmail.com> Co-authored-by: ming_wang <68357922+sigama-w@users.noreply.github.com> Co-authored-by: Артем Савкин <58187114+OrangeRedeng@users.noreply.github.com> Co-authored-by: Alexandr <117110413+Allor-maker@users.noreply.github.com> Co-authored-by: Yuan Luo <yuan.luo@hotmail.com> Co-authored-by: luoyuan.luo <luoyuan.luo@antgroup.com> Co-authored-by: Sam Shleifer <sshleifer@gmail.com> Co-authored-by: ix-48 <90045377+ix-48@users.noreply.github.com> Co-authored-by: Zhang, Jiejing <280536569+jiejingzhangamd@users.noreply.github.com> Co-authored-by: JohnQinAMD <yanyuan.qin@amd.com> Co-authored-by: Michael <13900043+michaelzhang-ai@users.noreply.github.com> Co-authored-by: Thomas Wang <thomawan@amd.com> Co-authored-by: Duyi-Wang <duyi.wang@amd.com> Co-authored-by: Yizheng Jiao <jyizheng@gmail.com> Co-authored-by: dingdangmao <2756823972@qq.com> Co-authored-by: apex-mochen <265981728+apex-mochen@users.noreply.github.com> Co-authored-by: Zhiqiang Xie <xiezhq@stanford.edu> Co-authored-by: Vegetog <110553275+Vegetog@users.noreply.github.com> Co-authored-by: Xinyuan Tong <xinyuantong.cs@gmail.com> Co-authored-by: Piotr Mazurek <piotr635@gmail.com> Co-authored-by: Codex <codex@openai.com> Co-authored-by: ai-jz <156989844+ai-jz@users.noreply.github.com> Co-authored-by: ai-jz <ai-jz@users.noreply.github.com> Co-authored-by: Bingoo <33573610+BingooYang@users.noreply.github.com> Co-authored-by: jacky.cheng <yichiche@amd.com> Co-authored-by: Xinyi Song <xinyisong0111@gmail.com> Co-authored-by: Zhaoyi Li <36555117+Lzy17@users.noreply.github.com> Co-authored-by: AMD-yanfeiwang <yanfei.wang@amd.com> Co-authored-by: Jimmy Shong <69131491+Jiminator@users.noreply.github.com> Co-authored-by: inkcherry <mingzhi.liu@amd.com> Co-authored-by: Michal Shalev <mshalev@nvidia.com> Co-authored-by: AMD-yanfeiwang <yanfwang@amd.com> Co-authored-by: Shu Wang <shuw@nvidia.com> Co-authored-by: Anish Shanbhag <ashanbhag@nvidia.com> Co-authored-by: Ziang Li <ziangli@umich.edu> Co-authored-by: elvischenv <219235043+elvischenv@users.noreply.github.com> Co-authored-by: Yunhao Zhou <131600287+yyh-sjtu@users.noreply.github.com> Co-authored-by: 周云昊 <zhouyunhao@zhouyunhaodeMacBook-Pro.local> Co-authored-by: LittleNyima <62497818+LittleNyima@users.noreply.github.com> Co-authored-by: jlqibm <87678480+jlqibm@users.noreply.github.com> Co-authored-by: amote-i <49533125+amote-i@users.noreply.github.com> Co-authored-by: Ho-Ren (Jack) Chuang <horenchuang@bytedance.com> Co-authored-by: Kailash Ranganathan <kailash@modal.com> Co-authored-by: Yanbin Jiang <jybsuper@gmail.com> Co-authored-by: Rain Jiang <96632942+rainj-me@users.noreply.github.com> Co-authored-by: xiezhq-hermann <xiezhq-hermann@users.noreply.github.com> Co-authored-by: Po-Han Huang <pohanh@nvidia.com> Co-authored-by: qandrew <qandrew@users.noreply.github.com> Co-authored-by: vincentzed <207368749+vincentzed@users.noreply.github.com> Co-authored-by: jiayisuse <jiayisuse@users.noreply.github.com> Co-authored-by: ZYHowell <ZYHowell@users.noreply.github.com> Co-authored-by: Nihar Patel <nihpat95@gmail.com> Co-authored-by: Kan Wu <wukanustc@gmail.com> Co-authored-by: Kan Wu <kan.wu@radixark.ai> Co-authored-by: Jiaqi Li <ljq.lijiaqi@outlook.com> Co-authored-by: Zijie Xia <zijie.xia@radixark.ai> Co-authored-by: Andrew Briand <atb8888@comcast.net> Co-authored-by: Chuanrui Zhu <47195419+chuanrui@users.noreply.github.com> Co-authored-by: Sundara Raman Ramachandran <sundar24295@gmail.com> Co-authored-by: HEJIAN SANG <sanghj0923@gmail.com> Co-authored-by: Shu Wang <shuw@login-hecate03.hecate.clusters.nvidia.com> Co-authored-by: shyeh25 <206795756+shyeh25@users.noreply.github.com> Co-authored-by: Kangyan-Zhou <zky314343421@gmail.com> Co-authored-by: William Arnold <7565007+Aphoh@users.noreply.github.com> Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: ishandhanani <82981111+ishandhanani@users.noreply.github.com> Co-authored-by: Spurthi Lokeshappa <spurthi.lokeshappa@intel.com> Co-authored-by: root <root@gnrsp-bmg3.iind.intel.com>
Motivation
Add an opt-in, non-USERPTR allocation path for ROCm HiCache host pools to avoid page-migration-related GPU stalls. Request the pool's byte count directly from HIP rather than allocating through PyTorch's caching host allocator.
ROCm 7.2 enables USERPTR for the relevant paged-memory allocations when
HSA_USERPTR_FOR_PAGED_MEMis unset; only0disables it (default initialization). Its host-allocation code selects between anonymous-memory USERPTR mappings and driver-managed GTT allocations.Setting the variable alone does not change HiCache's existing
hipHostRegisterpath. This PR switches eligible pools tohipHostMallocwithout changing the ROCm default.Changes
The implementation is in
pool_host/common.py.HostTensorAllocator, andHSA_USERPTR_FOR_PAGED_MEM=0.numel * dtype.itemsizebytes withhipHostMalloc.cudaHostUnregisterfor these pools.--hicache-size; do not silently fall back to USERPTR.The exact-size allocation change comes from JohnQinAMD's commit
1a5d028.Usage
Set this before starting SGLang, so it takes effect before HIP initialization:
export HSA_USERPTR_FOR_PAGED_MEM=0The GTT path remains subject to driver allocation limits.
SGLANG_HUGEPAGE_SIZEdoes not apply to this path; the allocator logs a warning if it is set.Tests
test_hicache_host_register.pycovers exact allocation size, release after the last view, skipping host unregister, unchanged allocation paths, and allocation failure without fallback. The new allocator tests mock HIP calls; they are not end-to-end performance or model-accuracy tests.Local result at
1a5d028: 15 passed, 17 subtests passed, usinglmsysorg/sglang-rocm:v0.5.20-rocm720-mi35x-20260924on MI355X.Reproducing the migration stall
bench_host_memory_migration.pyis included in this PR. This is a manual hardware test requiring two memory NUMA nodes, sufficient host/GTT memory, and permission to callmove_pages(); it is not part of regular CI.Run the two arms in separate processes on the same idle GPU:
export HSA_USERPTR_FOR_PAGED_MEM=0 python benchmark/hicache/bench_host_memory_migration.py --allocator registered --pool-gb 180 python benchmark/hicache/bench_host_memory_migration.py --allocator gtt --pool-gb 180The registered arm calls the legacy mmap + host-register path; the GTT arm calls the patched allocator. Both use the same environment. Each iteration runs four 4096-by-4096 BF16 matrix multiplications, a 16 MiB host-to-device copy, and synchronization. A second thread attempts three 2 MiB migrations, with 1,000 GPU iterations after each attempt. The script checks page-migration status, copy correctness, CPU wall-clock latency, and
/sys/class/kfd/kfd/proc/<pid>/stats_<gpu>/evicted_ms. For a container,--kfd-pididentifies the worker's host PID without requiring a shared PID namespace.Measured on MI355X GPU0,
crsuse2-m2m-168, using the PR checkout in the 0924 image above (Docker CPU quota: 8; memory limit: 256 GiB). Both arms exited successfully.The USERPTR arm moved all 512 pages on every attempt. The GTT arm returned
-EFAULTfor all 512 page-status entries each time, with zero eviction. Control median iteration times were 0.723 ms and 0.722 ms, respectively.These are induced GPU-workload stalls, not token latency or P90 interactivity. The result establishes the migration/eviction behavior for this setup, not a general end-to-end speedup.
Performance
A fresh same-node sequential A/B was run on MI355X node
crsuse2-m2m-059(SPUR job196589). Both arms usedlmsysorg/sglang-rocm:v0.5.20-rocm720-mi35x-20260924, GLM-5.2 MXFP4, TP4/EP4, MTP 5/6/1, concurrency 8, HiCache 180 GB per rank, random seed 42, and a configured 3,600-second AgentX profiling window. The baseline used the image code withHSA_USERPTR_FOR_PAGED_MEMunset; the patched arm used PR headc7453eced20b6f5ed7a6d7f4905ae8da02ef94c4withHSA_USERPTR_FOR_PAGED_MEM=0.Both runs exited cleanly on the same node. Their MTP accept lengths were 3.59689 and 3.59415. The patched run also recorded one warmup-only dropped
InvalidInferenceResultError; it had zero profiling errors and does not enter the reported profiling metrics.CI States
Latest PR Test (Base): ✅ Run #38122180045
Latest PR Test (Extra): ✅ Run #38122179876
Latest PR Test (AMD ROCm 10): ❌ Run #38122179882