contribution/compass
sgl-project/sglang

SGLang

551 signals · 636 observation events

Open repository ↗

SGLang is a high-performance serving framework for large language models and multimodal models.

31.8K stars7.9K forksPythonApache-2.0attentionblackwellcudadeepseekdiffusionglmgpt-ossinferencekeyword: SGLang
PROJECT NEWS

Release, roadmap, and discussion

All news →
sgl-project/sglang

SGLang

AI Infrastructure
Latest stable

v0.5.17

v0.5.17
  • New Model Support
  • Kimi K3
  • [Kimi] Support kimi-k3: #32541 ⭐
  • [Kimi] Support DCP + DSpark (ported from kimi-k3 branch): #32828
  • [Kimi K3] Add reasoning, tool-call, and OpenAI serving support: #33025
Original release notes ↗

Publicly indicated next

Prereleases and milestones indicate public plans; they are not delivery commitments.

Observation trail

  1. changedtext, updatedAt
  2. changedtext, updatedAt
  3. discoveredinitial snapshot
  4. changedupdatedAt
  5. changedtext, updatedAt
  6. changedupdatedAt
  7. changedtext, updatedAt
  8. changedupdatedAt, assignees
  9. changedupdatedAt
  10. changedtext, updatedAt
  11. changedupdatedAt, state
  12. changedtext, updatedAt, labels
  13. changedtext, updatedAt
  14. discoveredinitial snapshot
  15. changedtext, updatedAt
  16. changedtext, updatedAt
  17. discoveredinitial snapshot
  18. changedtext, updatedAt
  19. discoveredinitial snapshot
  20. changedtext, updatedAt
  21. discoveredinitial snapshot
  22. changedupdatedAt, state
  23. changedtext, updatedAt
  24. changedupdatedAt, state
  25. changedtext, updatedAt
  26. discoveredinitial snapshot
  27. discoveredinitial snapshot
  28. changedupdatedAt
  29. discoveredinitial snapshot
  30. changedtext, updatedAt
50 shown
pull request

[AMD] [Spec] Enable stochastic tree verification on ROCm

## Motivation ROCm EAGLE verification currently routes every HIP request through greedy `argmax`, even when `temperature`, `top_p`, or `top_k` request stochastic sampling. ROCm also lacks the CUDA target-only tree-sampling kernel and its top-k/top-p renormalization operators. While validating a portable tree verifier with GLM-5.2-FP8, EAGLE top-k > 1 exposed

importance 1@Raiden-Makotoopenspeculative-decodingrun-cijit-kernelOriginal evidence ↗
pull request

[DSV4] Emit TMA-aligned UE8M0 scales for FP8 einsum

## Motivation Follow-up to #27926: DSV4 still emits FP32 activation scales, so DeepGEMM runs `transpose_and_pack_fp32_into_ue8m0` before every `fp8_einsum` (61 launches, ~114 µs per BS1 decode step). ## Modification Emit DeepGEMM's TMA-aligned packed UE8M0 `int32` scale layout directly from the DSV4 quant kernel. Quantized outputs and einsum numerics are unc

importance 1@mattteochenopenquantjit-kernelOriginal evidence ↗
pull request

Remove the torchao integration (--torchao-config)

Implements #34295. `--torchao-config` has raised `ImportError` for every accepted value since the torchao pin moved to 0.17.0, so there is nothing working to deprecate. This removes the flag, `torchao_utils.py`, the layered-loading torchao branch, the manual tests, the docs, and the torchao dependency. <!-- pr-states:start --> --- ### CI States Latest PR Tes

importance 1@b8zhongopendocumentationquantamddependenciesnpuOriginal evidence ↗
pull request

feat(metrics): count waiting-queue request rejections

The scheduler drops requests from the waiting queue in three places without recording anything: a full queue, a preemption by a higher-priority request, and a waiting timeout. None are observable. The tokenizer-side sglang:num_aborted_requests_total counter does not cover them, because its only increment site counts aborts the frontend initiates, and these t

importance 1@liangjufopenOriginal evidence ↗
pull request

[Fix] Type-stabilize the FA4 split-KV prologue for CuTe DSL 4.6

Under `is_split_kv` the guard around the KV prologue is a runtime compare, so `n_block_first` and `page_idx` were first bound inside an scf.if region and became live-outs with no type on the skip path. CuTe DSL 4.6 rejects that with `TYPE_UNSTABLE_JOIN`; both are side-effect-free, so they move above the guard.

importance 1@hnyls2002closeddependenciesjit-kernelOriginal evidence ↗
pull request

fix(security): harden SafeUnpickler with exact-name allowlist for generic modules

## Motivation [CVE-2026-15969](https://github.com/advisories/GHSA-359v-m36h-r94v) is an unauthenticated RCE via `/load_lora_adapter_from_tensors`: `SafeUnpickler.find_class()` used prefix allowlists + a deny-list, so reflective chains (`builtins.__import__` + `getattr`, `operator.attrgetter` + `pickletools.sys`, `sglang.srt.utils.common.dynamic_import`, `io_

importance 1@JinyanYiopenOriginal evidence ↗
pull request

[diffusion] feat: selectable sequence-parallel strategies for LingBot causal attention

## Motivation LingBot's realtime causal attention has only ever had one way to split work across ranks — Ulysses — and the causal path explicitly raises `NotImplementedError` for `ring_degree > 1`. That reads like an unfinished feature. It isn't. Ulysses is the right default here, for a structural reason, and this PR makes that claim reproducible rather than

importance 1@mickqianopenrun-cidiffusionrun-ci-extraOriginal evidence ↗
pull request

Expose flashinfer_cute_dsl as fp8 gemm backend

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation Expose `flashinfer_cute_dsl` as fp8 gemm backend since it achieves better perf for muse

importance 1@IwakuraReincloseddocumentationquantapple-siliconOriginal evidence ↗
pull request

fix/ltx-vocoder-bf16-dtype-mismatch

## Motivation LTX-2 and LTX-2.3 vocoder inference can fail when running with BF16 precision. The current implementation explicitly casts the vocoder input to FP32: ```python waveform = self.vocoder(hidden_states.float()) ``` When the vocoder weights and bias are loaded in `bfloat16`, the FP32 input causes a dtype mismatch during convolution, resulting in the

importance 1@nzr-niuclosedrun-cidiffusionrun-ci-extraOriginal evidence ↗
pull request

[Fix] Fix hybrid-SSM DP attention failures at low concurrency

## Motivation Two failures hit a hybrid-SSM (Nemotron-H) deployment running DP attention over a concurrency sweep (`--tp 4 --ep 4 --dp 4 --enable-dp-attention`, one server per concurrency level). **1. `--max-running-requests` smaller than `attn_dp_size` gives every worker zero slots.** The per-DP-worker share `max_running_requests // attn_dp_size` floors to

importance 1@elvischenvopenblackwellrun-ciOriginal evidence ↗
pull request

Reenable breakable CUDA graph for NemotronH

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation Reenable breakable CUDA graph for NemotronH(revert #33130). The issue has been fixed on

importance 1@elvischenvclosedblackwellrun-ciOriginal evidence ↗
pull request

Fix flaky negative penalty test

[by Codex] ## Summary - remove the stochastic negative-penalty integration assertion based on whole-completion vocabulary diversity - add deterministic unit coverage showing that negative frequency penalties increase a repeated token's logit - add deterministic unit coverage showing that negative presence penalties increase a present token's logit once ## Wh

importance 1@nvpohanhclosedOriginal evidence ↗
pull request

[Fix] Fix Nemotron-H Mamba illegal memory access under DP attention with CUDA graph

## Motivation Running Nemotron-H with DP attention enabled together with a CUDA-graph runner backend (breakable CUDA graph / torch.compile piecewise) crashes at graph replay. ## Modifications `python/sglang/srt/models/nemotron_h.py`: in the `is_dp_attention_enabled()` branch of `NemotronHMambaDecoderLayer.forward`, route the mixer through the same split-op d

importance 1@elvischenvopenbugblackwellrun-ciOriginal evidence ↗
pull request

[Unified Tree] Support Branching-Point Caching for the SWA Component

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation With out-of-window SWA slot freeing now enabled by default in [#34653](https://github.c

importance 1@Chen-0210openrun-ciOriginal evidence ↗
pull request

[DCP] Fuse the a2a pack/unpack copies in the MLA LSE reduce

## Motivation Follow-up to #34240. That PR removed two no-op launches from the DCP MLA verify path; profiling the same window showed the rest of it is the a2a buffer plumbing — four elementwise copies per MLA layer, per decode step, all on the critical path between the attention epilogue and the NCCL all-to-all: | kernel | what it moves | |---|---| | `direct

importance 1@kpham-sglclosedjit-kernelOriginal evidence ↗
pull request

[Diffusion][ERNIE] Fuse QKNorm with full-width RoPE

## Summary Fuse ERNIE-Image Q/K RMSNorm with its full-width rotate-half RoPE cache. The generic JIT QKNorm+RoPE kernel gains an explicit full-width NeoX cache mode. It remains orthogonal to the Cosmos pack-KV path: full-width caches are rejected for pack-KV, while existing cache layouts retain their behavior. ERNIE hoists a concatenated full-width cos/sin ca

importance 1@BBufclosedrun-cidiffusionjit-kernelrun-ci-extramergeableOriginal evidence ↗
pull request

Prevent Qwen3.5 MTP draft from inheriting GPTQ quantization

## Motivation On RTX Pro 6000 with Qwen3.5 speculative NEXTN serving, using the model from [Qwen/Qwen3.5-35B-A3B-GPTQ-Int4](https://huggingface.co/Qwen/Qwen3.5-35B-A3B-GPTQ-Int4), I launched the server with: ```bash SGLANG_MAMBA_CONV_DTYPE=float16 python3 -m sglang.launch_server \ --model-path ~/autodl-tmp/models/Qwen3.5-35B-A3B-GPTQ-Int4/ \ --host 0.0.0.0 \

importance 1@eric-0x72openOriginal evidence ↗
pull request

[CI] Use default installer for B300 tests

## Motivation The B300 test suite should use the standard CUDA CI dependency installation path instead of maintaining a Kimi-K3-specific wrapper. ## Modifications - Point the `8-gpu-b300` runner config to `scripts/ci/cuda/ci_install_dependency.sh`. - Remove the unused `kimi_k3_install` YAML anchor. - Delete `scripts/ci/cuda/ci_install_kimi_k3.sh`. ## Validat

importance 1@Fridge003closedOriginal evidence ↗
pull request

Revert "[Kimi K3] Fuse MLA gate projection into QKV-A GEMM"

Reverts sgl-project/sglang#33623 Breaks CI https://github.com/sgl-project/sglang/actions/runs/31650215286/job/94292793773#step:15:2133 and seems like a real regression given full 2048 tokens <!-- pr-states:start --> --- ### CI States Latest PR Test (Base): <!-- slot:pr-test:start -->:x: [Run #31653682855](https://github.com/sgl-project/sglang/actions/runs/31

importance 1@mmangkadclosedjit-kernelOriginal evidence ↗
pull request

feat(diffusion): rebuild MiniMax-H3 AdaLN outputs on demand

## Motivation Builds on #33991 (its four commits are included here and should be rebased away once it lands); only the last three commits are new. #33991 makes MiniMax-H3 drop the `adaln_proj` weights — 39.3% of the DiT, 13.0B parameters / 24.2 GiB — by precomputing their outputs into a sidecar file. That unlocks a large win: with those weights gone the DiT

importance 1@triple-muopendocumentationrun-cidiffusionOriginal evidence ↗
pull request

[diffusion] feat: track MiniMax-H3 in the nightly diffusion benchmark

## Motivation MiniMax-H3 is the only joint video+audio model served here, and it has no nightly coverage — regressions in it stay invisible until someone runs it by hand. ## Harness change it needs first `_build_sglang_payload` forwards a fixed whitelist, and H3 does not fit it in either direction. It derives its shape from `target` and **rejects** an explic

importance 1@mickqianclosedrun-cirun-ci-extraOriginal evidence ↗
pull request

Record both architectures in the bit-exact guard docstrings

## Motivation The numbers I put in these docstrings when the file landed (#34607) were all measured on B200, but CI runs `1-gpu-large`, which is SM90. Prefill and decode take different fa4 kernels on the two architectures, and the corrupted state surfaces in a different case on each, so the docstrings describe something a reader will not reproduce on the run

importance 1@ispobockclosedOriginal evidence ↗
pull request

Revert "[BCG][5/N] MLA Fully Support"

Reverts sgl-project/sglang#33661 ## Why #33661 adds `is_in_breakable_cuda_graph()` to `fallback_to_flashinfer_impl` and relaxes the prefill runner's MHA-companion restriction from an arch allowlist to `not is_cuda()`. Together these pin the absorbed MLA path inside capture, and prefill loses the path it wants: - BCG capture cannot take the MHA companion, so

importance 1@kpham-sglclosedMulti-modalblackwelljit-kernelOriginal evidence ↗
pull request

Drop the mmlu case from the unified radix cache kit

## Motivation `UnifiedRadixTreeTestMixin` bundles an MMLU case that no consumer trusts. Of the seven files using the mixin, two skip it in CI (one of them with the reason "mmlu eval not stable enough"), four lowered the threshold to 0.4 or 0.7, and the remaining two sit on the 0.8 default. One of those two just went red on it: ``` AssertionError: 0.796875 no

importance 1@ispobockclosedhicacherun-ciOriginal evidence ↗
pull request

[AMD][CI][Fix] Guard FP32 LM head mm(out_dtype) fast path on ROCm

## Motivation `test/registered/rl/test_fp32_lm_head.py` fails deterministically on the AMD `stage-b-test-1-gpu-small-amd` shard (`linux-mi300-1gpu-sglang`, partition 7): ``` RuntimeError: gemm input type at::BFloat16 and output type float is not supported for ROCm ``` The FP32 LM head fast path added in #32370 selects `torch.mm(..., out_dtype=torch.float32)`

importance 1@yichicheopenrun-ciOriginal evidence ↗
pull request

[PD Disagg] Add bootstrap timeout to NIXL prefill sender

## Motivation Part of #34510 Step 1. Related to #17845. `CommonKVSender` already implements the Prefill bootstrap timeout. Mooncake starts the deadline when its sender is created and checks it while the request is bootstrapping. NIXL does neither, so a request can remain in `KVPoll.Bootstrapping` indefinitely if Decode destination metadata never arrives. ##

importance 1@ting-hong-shiehopenOriginal evidence ↗
pull request

Widen swapAB dispatch range in SM120 fp8 blockwise GEMM

The swapAB path (weight on gemm-M, tokens on gemm-N) was only used for `m <= 64`. It stays faster up to `m = 256`, so the old crossover sent m in [96, 256] to a slower kernel. Before: - `m <= 64` -> swapAB 128x32x128 - `m > 64` -> non-swapAB 128x128x128 After: - `m <= 128` -> swapAB 128x32x128 - `128 < m <= 256` -> swapAB 128x64x128 - `m > 256` -> non-swapAB

importance 1@b8zhongopenjit-kernelOriginal evidence ↗
pull request

[Diffusion] Unify component residency controls

## Motivation SGLang-Diffusion currently exposes overlapping CPU-offload and layerwise-offload flags with different scopes. In particular, an explicit `--dit-layerwise-offload false` can still inherit automatic DiT component offload, even though callers use that spelling to request a resident DiT. The DiT/VAE booleans also implicitly control model-specific h

importance 1@mickqianopendocumentationquantrun-cidiffusionrun-ci-extraOriginal evidence ↗
pull request

[Kimi-K3] Fix deferred GPU preprocessing backend metadata

## Summary - declare `backend: gpu` in Kimi-K3's regular-serving deferred preprocessing metadata - add regression coverage for the producer contract and the resulting multimodal item metadata ## Root cause The regular tokenizer-side deferred path stores CHW `uint8` images for owner-side GPU preprocessing, but its metadata omitted `backend`. `KimiK3ForConditi

importance 1@mickqianclosedrun-ciOriginal evidence ↗
pull request

[CI] Fix test_resolution_is_reproducible after cuda_ipc became opt-in

## Motivation `test/registered/unit/server_args/test_resolution_is_reproducible.py` is failing on the GPU registrations (seen on `base-b-test-1-gpu-small`, `1-gpu-5090`): ``` FAIL: test_a_resolution_does_not_leak_into_the_next (intermediate='multimodal') File "test/registered/unit/server_args/test_resolution_is_reproducible.py", line 343 self.assertEqual(aft

importance 1@mmangkadopenOriginal evidence ↗
pull request

[CI][PD] Pin nccl rendezvous port per side to fix flaky disaggregation tests

## Motivation The `test_disaggregation_dsv4` PD test (and other PD tests sharing the disaggregation fixture) intermittently fail at server startup with: ``` torch.distributed.DistNetworkError: The server socket has failed to listen on any local network address. port: 35061, useIpv6: false, code: -98, name: EADDRINUSE, message: address already in use ... File

importance 1@ShangmingCaiclosedOriginal evidence ↗
pull request

[Feature] support cors middleware setting

<!-- Thank you for your contribution! We appreciate it. The following guidelines will help improve your pull request and facilitate feedback. If anything is unclear, don't hesitate to submit your pull request and ask the maintainers for assistance. --> ## Motivation Support CORSMiddleware settings like allow_methods, allow_headers and others so users can lau

importance 1@dblateclosedOriginal evidence ↗
pull request

[BugFix] Fix AssertionError: res=<Response [502]>, res.text=''

<!-- Thank you for your contribution! We appreciate it. The following guidelines will help improve your pull request and facilitate feedback. If anything is unclear, don't hesitate to submit your pull request and ask the maintainers for assistance. --> ## Motivation Sometimes we need to set proxy to download model from huggingface, like `export https_proxy=h

importance 1@gty111closedOriginal evidence ↗
pull request

[Fix] Correctly set head_dim fallback

## Motivation Currently running RedHatAI/Pixtral-Large-Instruct-2411-hf-FP8-dynamic fails with the following exception: ```[2025-06-19 23:46:36 TP1] Scheduler hit an exception: Traceback (most recent call last): File "/sgl-workspace/sglang/python/sglang/srt/managers/scheduler.py", line 2527, in run_scheduler_process scheduler = Scheduler(server_args, port_ar

importance 1@p12ticclosedOriginal evidence ↗
pull request

Remove deprecated cafile parameter in http_request

## Motivation Fix issue #3876 ## Modifications Replace deprecated cafile parameter with SSL context in urllib.request.urlopen ## Checklist - [x] Format your code according to the [Code Formatting with Pre-Commit](https://docs.sglang.ai/references/contribution_guide.html#code-formatting-with-pre-commit). - [ ] Add unit tests as outlined in the [Running Unit T

importance 1@NekoYellowclosedOriginal evidence ↗
pull request

add continuous usage stats for sglang

<!-- Thank you for your contribution! We appreciate it. The following guidelines will help improve your pull request and facilitate feedback. If anything is unclear, don't hesitate to submit your pull request and ask the maintainers for assistance. --> ## Motivation <!-- Explain the purpose of this PR and the goals it aims to achieve. --> ## Modifications <!

importance 1@temirulanclosedOriginal evidence ↗
pull request

[Feature] Support BurstGPT for server benchmark.

<!-- Thank you for your contribution! We appreciate it. The following guidelines will help improve your pull request and facilitate feedback. If anything is unclear, don't hesitate to submit your pull request and ask the maintainers for assistance. --> ## Motivation <!-- Explain the purpose of this PR and the goals it aims to achieve. --> Support BurstGPT fo

importance 1@VincentXWDclosedOriginal evidence ↗
pull request

[Doc] Replace model docs with redirect stubs to cookbook

## Motivation Addresses [sglang#18427](https://github.com/sgl-project/sglang/issues/18427) — remove duplicated documentation between `sglang/docs` and `sgl-cookbook`. A companion PR to `sgl-cookbook` (see [https://github.com/sgl-project/sgl-cookbook/pull/141]) merges all model-specific content from `sglang/docs` into the cookbook. **This PR handles the `sgla

importance 0@JingwenGu0829closeddocumentationdeepseekOriginal evidence ↗
pull request

Make per‑token expert‑distribution recorder use asynchronous data syncing

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation The existing MoE expert distribution recorder on "per-token" mode introduces too much o

importance 0@zonghaoliuopenOriginal evidence ↗
pull request

[router] cache_aware_zmq: load-aware selection from engine LoadSnapshot

## Motivation The `cache_aware_zmq` policy prices workers by a router-side in-flight counter. That counter reflects what this router dispatched, not what the engine has queued: it cannot see traffic from other router replicas or from direct clients, and for streaming responses it stays held for the full response rather than for the time the request occupies

importance 0@Kangyan-ZhouopennpuOriginal evidence ↗
pull request

[Perf] optimize mla_kv_pack_quantize_fp8 flat kernel and dispatch

## Motivation `mla_kv_pack_quantize_fp8` is a purely memory-bound op (fused `cat(k_nope, broadcast k_pe)` + FP8 quantize for K, FP8 quantize for V). The `_v1_flat_kernel` path spent a meaningful fraction of its time on per-element address arithmetic (`// num_heads`, `% num_heads`, two-term strided offsets) rather than HBM traffic, and the `_pick_kernel` heur

importance 0@kpham-sglclosedquantjit-kernelOriginal evidence ↗
pull request

[feature] sglext output ids field

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation <!-- Describe the purpose and goals of this pull request. --> Exact token ids behind a

importance 0@amykchangclosedOriginal evidence ↗
pull request

[Feature] MXFP4 KV Cache Decode for DSV4 on Hopper

## Summary MXFP4 KV cache for DeepSeek V4 on Hopper (SM90/H20), end to end: codec + memory pool + fused decode attention kernel + backend integration. The decode kernel is a JIT-compiled port of the FlashMLA three-stage split-KV design (scheduler metadata kernel + persistent WGMMA main kernel + combine kernel), covering all 44 layers (SWA + C4/C128 + attn_si

importance 0@TobyMintopenquantdeepseekjit-kernelOriginal evidence ↗
pull request

docs: sync LMSYS SGLang blog cards

Automated sync of the LMSYS SGLang blog cards in `docs_new/index.mdx`. 🤖 Generated with GitHub Actions <!-- pr-states:start --> --- ### CI States Latest PR Test (Base): <!-- slot:pr-test:start -->:white_check_mark: [Run #30594717790](https://github.com/sgl-project/sglang/actions/runs/30594717790)<!-- slot:pr-test:end --> Latest PR Test (Extra): <!-- slot:pr-

importance 0@sglang-botopendocumentationOriginal evidence ↗
pull request

fix(xpu): enable compressed-tensors FP8 W8A8 on XPU (RedHatAI FP8-dynamic models)

## Motivation compressed-tensors FP8 W8A8 quantized models (e.g. RedHatAI's `*-FP8-dynamic` family — `Apertus-8B-Instruct-2509-FP8-dynamic`, `Mistral-Small-3.1-24B-Instruct-2503-FP8-dynamic`, `granite-4.0-h-small-FP8-dynamic`, `NVIDIA-Nemotron-Nano-9B-v2-FP8-dynamic`) currently fail to serve on XPU. The very first failure happens at layer-construction time,

importance 0@vshekhawat-hlabopenjit-kernelOriginal evidence ↗
pull request

[Bugfix] Fix causal sliding-window attention in MiMo audio tokenizer

## Motivation MiMo-V2.5 declares its audio tokenizer encoder as causal and uses hybrid attention: causal sliding-window attention `(128, 0)` alternating with causal full attention. After the TP-aware `VisionAttention` refactor in [#31343](https://github.com/sgl-project/sglang/pull/31343), `AudioEncoderAttention` continued storing `causal` and `window_size`,

importance 0@CJack812openMulti-modalOriginal evidence ↗
pull request

[Feature] Add process-local in-memory KV indexer and Router integration

## Motivation This PR supersedes #32662 with a smaller, dependency-free milestone for the KV Indexer proposed in #31458. The Indexer is an experimental metadata-only service that tracks which SGLang worker may reuse each content-addressed KV-cache block. KV data remains owned by the workers. The end-to-end path is: ```text SGLang worker └─ ZMQ component-awar

importance 0@wuyl1opendocumentationhigh prioritydependenciesOriginal evidence ↗
pull request

add prefill graph support on cpu

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation <!-- Describe the purpose and goals of this pull request. --> ## Modifications <!-- Det

importance 0@CaoEopendependenciessgl-kernelOriginal evidence ↗
pull request

[UT][NPU]Add npu unit test for dsv4

<!-- Thank you for your contribution! Please follow these guidelines to enhance your pull request. If anything is unclear, submit your PR and reach out to maintainers for assistance. Join our Slack community at https://slack.sglang.io to discuss further. --> ## Motivation Add npu unit test for dsv4 <!-- Describe the purpose and goals of this pull request. --

importance 0@luz3633openOriginal evidence ↗