From 7fc3fb9657a527d5523b86304350296cf486a557 Mon Sep 17 00:00:00 2001 From: Brayden Zhong Date: Fri, 17 Jul 2026 14:34:29 -0700 Subject: [PATCH] Remove deprecated Mamba flags from doc, wrong FP8 GEMM docstrings and change Nemotron image to 0.5.15 (#31094) Co-authored-by: Brayden Zhong --- .../autoregressive/InclusionAI/Ling-2.6.mdx | 2 +- .../InternLM/Intern-S2-Preview.mdx | 2 +- .../cookbook/autoregressive/LiquidAI/LFM2.5.mdx | 2 +- .../autoregressive/NVIDIA/Nemotron3-Ultra.mdx | 16 ++++++---------- .../autoregressive/OpenBMB/MiniCPM-V-4_6.mdx | 8 ++++---- .../autoregressive/Qwen/Qwen3-Coder-Next.mdx | 4 ++-- .../cookbook/autoregressive/Qwen/Qwen3-Next.mdx | 4 ++-- .../cookbook/autoregressive/Qwen/Qwen3.5.mdx | 4 ++-- .../cookbook/autoregressive/Qwen/Qwen3.6.mdx | 4 ++-- docs_new/docs/advanced_features/quantization.mdx | 4 ++-- .../docs/advanced_features/server_arguments.mdx | 6 +++--- .../ascend-npus/ascend_npu_support_features.mdx | 2 +- .../ascend-npus/best_practice/qwen3_5_397b.mdx | 4 ++-- .../ascend-npus/best_practice/qwen3_6_27b.mdx | 2 +- .../best_practice/qwen3_6_35b_a3b.mdx | 4 ++-- .../intern-s2-preview-deployment.jsx | 2 +- .../autoregressive/minicpm-v-4_6-deployment.jsx | 2 +- .../nemotron3-super-deployment.jsx | 2 +- .../nemotron3-ultra-deployment.jsx | 2 +- .../qwen3-coder-next-deployment.jsx | 2 +- .../autoregressive/qwen3-next-deployment.jsx | 2 +- .../autoregressive/qwen35-deployment.jsx | 6 +++--- .../autoregressive/qwen36-deployment.jsx | 2 +- python/sglang/srt/server_args.py | 8 ++++---- 24 files changed, 46 insertions(+), 50 deletions(-) diff --git a/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.6.mdx b/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.6.mdx index 5bbb2343f..c6cd1ebe9 100644 --- a/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.6.mdx +++ b/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.6.mdx @@ -45,7 +45,7 @@ import { Ling26FlashDeployment } from '/src/snippets/autoregressive/ling-26-flas - Native context is 128K. Enable YaRN (`--json-model-override-args '{"rope_scaling": {"rope_type": "yarn", "factor": 2.0, ...}}'`) to extend to 256K — the snippet does this for you. - `--tool-call-parser qwen25` matches the model's `...` schema. - The recommended baseline does **not** include `--reasoning-parser qwen3`. Ling-2.6 is a controllable-reasoning model whose chat template defaults to `detailed thinking off`; the SGLang `qwen3` reasoning parser, in contrast, assumes default-thinking semantics and would mis-route normal output into `reasoning_content`. Only enable it if you specifically want `...` blocks split out — see [§4.3 Thinking Mode](#4-3-thinking-mode). -- **MTP (multi-token prediction)** is supported. Add `--speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 --mamba-scheduler-strategy extra_buffer` to enable it — see the [model card](https://huggingface.co/inclusionAI/Ling-2.6-flash#run-inference) for the full example. +- **MTP (multi-token prediction)** is supported. Add `--speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 --mamba-radix-cache-strategy extra_buffer` to enable it — see the [model card](https://huggingface.co/inclusionAI/Ling-2.6-flash#run-inference) for the full example. ### 3.2 Ling-2.6-1T diff --git a/docs_new/cookbook/autoregressive/InternLM/Intern-S2-Preview.mdx b/docs_new/cookbook/autoregressive/InternLM/Intern-S2-Preview.mdx index bcac878ac..f7c7a79d7 100644 --- a/docs_new/cookbook/autoregressive/InternLM/Intern-S2-Preview.mdx +++ b/docs_new/cookbook/autoregressive/InternLM/Intern-S2-Preview.mdx @@ -54,7 +54,7 @@ import { InternS2PreviewDeployment } from "/src/snippets/autoregressive/intern-s - Use `tp>=2` for the NVIDIA deployment commands. - Use `--reasoning-parser qwen3` to separate reasoning content from final content in streaming responses. - Use `--tool-call-parser qwen3_coder` when serving tool-calling workloads. -- Add `--mamba-scheduler-strategy extra_buffer` with `--speculative-algo 'NEXTN'` to enable MTP. +- Add `--mamba-radix-cache-strategy extra_buffer` with `--speculative-algo 'NEXTN'` to enable MTP. - If weight loading is slow, add `--model-loader-extra-config='{"enable_multithread_load": "true", "num_threads": 64}'`. ## 4. Model Invocation diff --git a/docs_new/cookbook/autoregressive/LiquidAI/LFM2.5.mdx b/docs_new/cookbook/autoregressive/LiquidAI/LFM2.5.mdx index e0a5d5301..6b9abb1f1 100644 --- a/docs_new/cookbook/autoregressive/LiquidAI/LFM2.5.mdx +++ b/docs_new/cookbook/autoregressive/LiquidAI/LFM2.5.mdx @@ -217,7 +217,7 @@ The Deploy panel above covers the eight serving variants; **LFM2.5-1.2B-JP** (or - **VL vision tower (`--mm-attention-backend`)**: on sm100 the `trtllm_mha` default is fastest for text but applies *causal* attention to image tokens. For the VL model, pass `--mm-attention-backend fa4` on B200/B300 (or `fa3` on H100/H200) to restore bidirectional image-token attention and full vision quality. - **VL multimodal feature transport**: the generator launches the VL models with `SGLANG_USE_CUDA_IPC_TRANSPORT=1 SGLANG_USE_IPC_POOL_HANDLE_CACHE=1`. The first moves the processor→scheduler image-feature handoff onto CUDA IPC instead of serializing tensors between processes; the second ships the pool handle so the scheduler opens it once and caches it, instead of opening a per-item handle on every request. On the image serving workload (1 image @ 720p, measured on VL-1.6B on H100 and B200) this pair is worth roughly 30–50% higher image throughput and 30–40% lower image TTFT vs running without them (measured on VL-1.6B, H100 and B200); decode speed (TPOT) is unaffected. - **VL-450M memory headroom (`--mem-fraction-static 0.8`)**: with the default memory fraction, the 450M's small weights make SGLang size its static KV/mamba pools to nearly the whole GPU, leaving no headroom for image-feature tensors — under sustained concurrent image load the scheduler can crash with a CUDA OOM in the radix-cache free path. The generator caps `--mem-fraction-static 0.8` for VL-450M; the pool is still far larger than this model ever needs. -- **Mamba scheduling**: LFM2.5 runs on the default `no_buffer` mamba scheduler strategy — no `--mamba-scheduler-strategy` flag is needed. The `extra_buffer` strategy (an overlap-scheduling throughput optimization available for some Gated-DeltaNet hybrids) does not apply to LFM2.5, whose convolution blocks use `mamba_chunk_size=1`. +- **Mamba scheduling**: LFM2.5 runs on the default `no_buffer` mamba scheduler strategy — no `--mamba-radix-cache-strategy` flag is needed. The `extra_buffer` strategy (an overlap-scheduling throughput optimization available for some Gated-DeltaNet hybrids) does not apply to LFM2.5, whose convolution blocks use `mamba_chunk_size=1`. - **Hardware requirements**: all LFM2.5 models run on a single GPU (TP=1) on either Hopper or Blackwell. The 1.2B / 350M dense models fit in a few GB; the 8B-A1B MoE needs roughly 16 GB for bf16 weights plus KV cache. Multi-GPU tensor parallelism is not required for any variant. **Recommended sampling parameters** — pass these explicitly on every request. Some LFM2.5 checkpoints do not ship sampling defaults in `generation_config.json`, so the server will not apply them for you. `top_k`, `min_p`, and `repetition_penalty` are not standard OpenAI `chat.completions` fields — pass them through **`extra_body`** and SGLang forwards them to its sampler. Do not set `max_tokens` unless you intend to cap output, as it can truncate a response (or a reasoning model's chain-of-thought) mid-stream. diff --git a/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Ultra.mdx b/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Ultra.mdx index ab379faab..66e6525e2 100644 --- a/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Ultra.mdx +++ b/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Ultra.mdx @@ -34,14 +34,10 @@ Available model variants on HuggingFace: ## 2. SGLang Installation -Nemotron3-Ultra support has not yet propagated to `lmsysorg/sglang:latest` or any stable release. Pull one of the two dedicated images below — matching your CUDA version — to get a runtime with Nemotron3-Ultra support. +Nemotron3-Ultra support is included in the latest stable release. ```bash Command -# CUDA 13 -docker pull lmsysorg/sglang:dev-nemotron3-ultra - -# CUDA 12 -docker pull lmsysorg/sglang:dev-cu12-nemotron3-ultra +docker pull lmsysorg/sglang:latest ``` ## 3. Model Deployment @@ -64,7 +60,7 @@ The generator only emits a runnable command for combinations that NVIDIA / SGLan - **Mamba scheduler strategy**: - Always launch with `--mamba-scheduler-strategy extra_buffer`. This hybrid Transformer-Mamba model requires the `extra_buffer` strategy for correct scheduling of its Mamba state. + Always launch with `--mamba-radix-cache-strategy extra_buffer`. This hybrid Transformer-Mamba model requires the `extra_buffer` strategy for correct scheduling of its Mamba state. - **Mamba backend**: @@ -119,7 +115,7 @@ python3 -m sglang.launch_server \ --model-path nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16 \ --trust-remote-code \ --tp 8 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --attention-backend trtllm_mha \ --tool-call-parser qwen3_coder \ --reasoning-parser nemotron_3 @@ -449,7 +445,7 @@ python3 -m sglang.launch_server \ --model-path nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4 \ --trust-remote-code \ --tp 4 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --attention-backend trtllm_mha \ --max-running-requests 1024 ``` @@ -525,7 +521,7 @@ python3 -m sglang.launch_server \ --model-path nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4 \ --trust-remote-code \ --tp 4 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --attention-backend trtllm_mha \ --reasoning-parser nemotron_3 ``` diff --git a/docs_new/cookbook/autoregressive/OpenBMB/MiniCPM-V-4_6.mdx b/docs_new/cookbook/autoregressive/OpenBMB/MiniCPM-V-4_6.mdx index fabed8ada..5d68802ab 100644 --- a/docs_new/cookbook/autoregressive/OpenBMB/MiniCPM-V-4_6.mdx +++ b/docs_new/cookbook/autoregressive/OpenBMB/MiniCPM-V-4_6.mdx @@ -51,9 +51,9 @@ import { MiniCPMV46Deployment } from '/src/snippets/autoregressive/minicpm-v-4_6 ### 3.2 Configuration Tips -- **Mamba Radix Cache**: Qwen3.5's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: +- **Mamba Radix Cache**: Qwen3.5's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-radix-cache-strategy`: - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. Required for AMD MI GPUs. - - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-radix-cache-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). - The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. - Context length defaults to 262,144 tokens. If you encounter OOM errors, consider reducing it, but maintain at least 128K to preserve thinking capabilities. - To speed up weight loading for this large model, add `--model-loader-extra-config='{"enable_multithread_load": "true","num_threads": 64}'` to the launch command. @@ -73,7 +73,7 @@ sglang serve --model-path openbmb/MiniCPM-V-4.6 \ --trust-remote-code \ --dtype bfloat16 \ --mem-fraction-static 0.15 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --page-size 64 \ --host 0.0.0.0 --port 30000 ``` @@ -307,7 +307,7 @@ CUDA_VISIBLE_DEVICES=0 python -m sglang.launch_server \ --trust-remote-code \ --dtype bfloat16 \ --mem-fraction-static 0.5 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --chunked-prefill-size -1 \ --host 0.0.0.0 --port 30000 ``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx index 241cd256a..a6d900d5b 100644 --- a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx @@ -45,9 +45,9 @@ This section provides a progressive guide from quick deployment to performance o - **Context Length**: The model supports up to 256K tokens natively. If you encounter OOM issues, try `--context-length 32768`. - **Tool Use**: To enable tool calling capabilities, use the `--tool-call-parser qwen3_coder` flag. - **Sampling Parameters**: SGLang automatically applies the recommended sampling parameters from the model's `generation_config.json`. No manual configuration is needed. -- **Mamba Radix Cache**: Qwen3-Coder-Next's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: +- **Mamba Radix Cache**: Qwen3-Coder-Next's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-radix-cache-strategy`: - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. - - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend. Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-radix-cache-strategy extra_buffer --page-size 64`. Requires FLA kernel backend. Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). - **Xeon CPU service configuration**: Please refer to the `Notes` part in the serving engine launching section in [the SGLang CPU server document](../../../docs/hardware-platforms/cpu_server#launch-of-the-serving-engine) to better understand how to configure the arguments, especially for TP (tensor parallel) and NUMA binding settings. ## 4. Model Invocation diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx index f6941cb44..7577d7cea 100644 --- a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx @@ -54,9 +54,9 @@ The Qwen3-Next series comes in only one size but offers different thinking modes - `--mamba-full-memory-ratio`: Adjust `--mamba-full-memory-ratio` to set the ratio of mamba state memory to full kv cache memory. The default setting is `0.9`. -- **Mamba Radix Cache**: Qwen3-Next's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: +- **Mamba Radix Cache**: Qwen3-Next's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-radix-cache-strategy`: - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. - - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend. Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-radix-cache-strategy extra_buffer --page-size 64`. Requires FLA kernel backend. Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). - **Xeon CPU service configuration**: Please refer to the `Notes` part in the serving engine launching section in [the SGLang CPU server document](../../../docs/hardware-platforms/cpu_server#launch-of-the-serving-engine) to better understand how to configure the arguments, especially for TP (tensor parallel) and NUMA binding settings. diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx index 5ab2e64c5..895360dc5 100644 --- a/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx @@ -129,9 +129,9 @@ This section provides deployment configurations optimized for different hardware - **H100 FP8:** Add `--enable-symm-mem` to enable NCCL symmetric memory for faster collectives and better performance under multi-GPU settings. - **AMD GPUs (MI300X / MI325X / MI355X):** Use `SGLANG_USE_AITER=1` and `SGLANG_USE_AITER_UNIFIED_ATTN=1` with `--attention-backend aiter`, which requires `--page-size 16` and can also enable `--enable-aiter-allreduce-fusion`. Additionally set `AITER_FLYDSL_FORCE=1` to force the AITER FlyDSL MoE kernels and `SGLANG_MAMBA_SSM_DTYPE=bfloat16` to store the Mamba SSM state in bfloat16 (instead of the default float32). - **Watchdog timeout:** Increase `--watchdog-timeout` to `1200` or higher for this large model, as weight loading can take significant time. -- **Mamba Radix Cache**: Qwen3.5's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: +- **Mamba Radix Cache**: Qwen3.5's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-radix-cache-strategy`: - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. Required for AMD MI GPUs. - - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-radix-cache-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). - The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. - Context length defaults to 262,144 tokens. If you encounter OOM errors, consider reducing it, but maintain at least 128K to preserve thinking capabilities. - To speed up weight loading for this large model, add `--model-loader-extra-config='{"enable_multithread_load": "true","num_threads": 64}'` to the launch command. diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx index e48a6520e..58ffa02be 100644 --- a/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx @@ -103,9 +103,9 @@ This section provides deployment configurations optimized for different hardware ### 3.2 Configuration Tips - Speculative decoding (MTP) can significantly reduce latency for interactive use cases. -- **Mamba Radix Cache**: Qwen3.6's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: +- **Mamba Radix Cache**: Qwen3.6's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-radix-cache-strategy`: - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. - - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-radix-cache-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. - The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. - Context length defaults to 262,144 tokens. If you encounter OOM errors, consider reducing it, but maintain at least 128K to preserve thinking capabilities. - **CUDA IPC Transport**: Add `SGLANG_USE_CUDA_IPC_TRANSPORT=1` as an environment variable to use CUDA IPC for transferring multimodal features, significantly improving TTFT (Time To First Token). Note: this consumes additional memory proportional to image size, so you may need to lower `--mem-fraction-static` or `--max-running-requests`. diff --git a/docs_new/docs/advanced_features/quantization.mdx b/docs_new/docs/advanced_features/quantization.mdx index fd2f6df24..d763d70ae 100644 --- a/docs_new/docs/advanced_features/quantization.mdx +++ b/docs_new/docs/advanced_features/quantization.mdx @@ -248,7 +248,7 @@ Backend selection applies to **blockwise FP8**, **MXFP8** (dense linear), and ** cutlass - SM90, SM100/120 + SM120 sgl-kernel CUTLASS @@ -264,7 +264,7 @@ Backend selection applies to **blockwise FP8**, **MXFP8** (dense linear), and ** -**`auto` selection order:** 1) DeepGEMM (SM90/SM100, installed); 2) FlashInfer TRTLLM (SM100, FlashInfer available); 3) CUTLASS (SM90/SM100/120); 4) AITER (AMD); 5) Triton. **Exception:** SM120 always resolves to Triton. +**`auto` selection order:** 1) DeepGEMM (SM90/SM100, installed); 2) FlashInfer TRTLLM (SM100, FlashInfer available); 3) CUTLASS (SM120); 4) AITER (AMD); 5) Triton (fallback). **MXFP8 dense linear:** `auto` uses `flashinfer_cutlass` on SM100 (else `triton`). `flashinfer_cutlass` is fastest on most shapes; `flashinfer_trtllm` is faster only at small M. diff --git a/docs_new/docs/advanced_features/server_arguments.mdx b/docs_new/docs/advanced_features/server_arguments.mdx index b85ee4cc3..c9815da81 100644 --- a/docs_new/docs/advanced_features/server_arguments.mdx +++ b/docs_new/docs/advanced_features/server_arguments.mdx @@ -1430,7 +1430,7 @@ Please consult the documentation below and [server_args.py](https://github.com/s `--fp8-gemm-backend` - Choose the runner backend for Blockwise FP8 GEMM operations. Options: 'auto' (default, auto-selects based on hardware), 'deep_gemm' (JIT-compiled; enabled by default on NVIDIA Hopper (SM90) and Blackwell (SM100) when DeepGEMM is installed), 'flashinfer_trtllm' (FlashInfer TRTLLM backend; SM100/SM103 only), 'flashinfer_cutlass' (FlashInfer CUTLASS backend, SM120 only), 'flashinfer_deepgemm' (Hopper SM90 only, uses swapAB optimization for small M dimensions in decoding), 'cutlass' (optimal for Hopper/Blackwell GPUs and high-throughput), 'triton' (fallback, widely compatible), 'aiter' (ROCm only). + Choose the runner backend for Blockwise FP8 GEMM operations. Options: 'auto' (default, auto-selects based on hardware), 'deep_gemm' (JIT-compiled; enabled by default on NVIDIA Hopper (SM90) and Blackwell (SM100) when DeepGEMM is installed), 'flashinfer_trtllm' (FlashInfer TRTLLM backend; SM100/SM103 only), 'flashinfer_cutlass' (FlashInfer CUTLASS backend, SM120 only), 'flashinfer_deepgemm' (Hopper SM90 only, uses swapAB optimization for small M dimensions in decoding), 'cutlass' (optimal for SM120 GPUs), 'triton' (fallback, widely compatible), 'aiter' (ROCm only). `auto` auto, deep_gemm, flashinfer_trtllm, flashinfer_cutlass, flashinfer_deepgemm, cutlass, triton, aiter @@ -1943,14 +1943,14 @@ Please consult the documentation below and [server_args.py](https://github.com/s Type: float - `--mamba-scheduler-strategy` + `--mamba-radix-cache-strategy` The strategy to use for mamba scheduler. auto currently defaults to no_buffer. 1. no_buffer does not support overlap scheduler due to not allocating extra mamba state buffers. Branching point caching support is feasible but not implemented. 2. extra_buffer supports overlap schedule by allocating extra mamba state buffers to track mamba state for caching (mamba state usage per running req becomes 2x for non-spec; 1+(1/(2+speculative_num_draft_tokens))x for spec dec (e.g. 1.16x if speculative_num_draft_tokens==4)). 2a. extra_buffer is strictly better for non-KV-cache-bound cases; for KV-cache-bound cases, the tradeoff depends on whether enabling overlap outweighs reduced max running requests. 2b. mamba caching at radix cache branching point is strictly better than non-branch but requires kernel support, currently only extra_buffer supports branching. `auto` auto, no_buffer, extra_buffer, extra_buffer_lazy `--mamba-track-interval` - The interval (in tokens) to track the mamba state during decode. Only used when --mamba-scheduler-strategy is extra_buffer. Must be divisible by page_size if set, and must be >= speculative_num_draft_tokens when using speculative decoding. + The interval (in tokens) to track the mamba state during decode. Only used when --mamba-radix-cache-strategy is extra_buffer. Must be divisible by page_size if set, and must be >= speculative_num_draft_tokens when using speculative decoding. `256` Type: int diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx index 4c5b88f6b..513ccd98b 100644 --- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx +++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx @@ -1779,7 +1779,7 @@ If the value is int8, you must also set the environment variable:DEEP_NORMAL_MOD A2, A3 - `--mamba-scheduler-strategy` + `--mamba-radix-cache-strategy` `auto` `auto`,
`no_buffer`,
`extra_buffer` A2, A3 diff --git a/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_5_397b.mdx b/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_5_397b.mdx index f1e3e5680..58947d8a1 100644 --- a/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_5_397b.mdx +++ b/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_5_397b.mdx @@ -320,7 +320,7 @@ python3 -m sglang.launch_server \ --max-prefill-tokens 131072 \ --max-mamba-cache-size 320 \ --prefill-max-requests 10 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --trust-remote-code \ --max-running-requests 64 \ --mem-fraction-static 0.6 \ @@ -1110,7 +1110,7 @@ python3 -m sglang.launch_server \ --chunked-prefill-size -1 \ --max-prefill-tokens 65536 \ --max-mamba-cache-size 640 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --trust-remote-code \ --max-running-requests 128 \ --mem-fraction-static 0.6 \ diff --git a/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_27b.mdx b/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_27b.mdx index c39333847..687f09e3a 100644 --- a/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_27b.mdx +++ b/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_27b.mdx @@ -284,7 +284,7 @@ python3 -m sglang.launch_server \ --device npu \ --chunked-prefill-size 32768 \ --max-prefill-tokens 32768 \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --trust-remote-code \ --max-running-requests 20 \ --max-mamba-cache-size 160 \ diff --git a/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_35b_a3b.mdx b/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_35b_a3b.mdx index 0bf928ebd..d21063828 100644 --- a/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_35b_a3b.mdx +++ b/docs_new/docs/hardware-platforms/ascend-npus/best_practice/qwen3_6_35b_a3b.mdx @@ -389,7 +389,7 @@ python3 -m sglang.launch_server \ --max-prefill-tokens 65536 \ --trust-remote-code \ --enable-prefill-delayer \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --max-running-requests 103 \ --max-mamba-cache-size 85 \ --mem-fraction-static 0.85 \ @@ -780,7 +780,7 @@ python3 -m sglang.launch_server \ --max-total-tokens 470784 \ --max-prefill-tokens 65536 \ --trust-remote-code \ - --mamba-scheduler-strategy extra_buffer \ + --mamba-radix-cache-strategy extra_buffer \ --max-running-requests 40 \ --max-mamba-cache-size 200 \ --mem-fraction-static 0.9 \ diff --git a/docs_new/src/snippets/autoregressive/intern-s2-preview-deployment.jsx b/docs_new/src/snippets/autoregressive/intern-s2-preview-deployment.jsx index 7fa424207..1564afbb0 100644 --- a/docs_new/src/snippets/autoregressive/intern-s2-preview-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/intern-s2-preview-deployment.jsx @@ -77,7 +77,7 @@ export const InternS2PreviewDeployment = () => { if (reasoning === 'enabled') flags.push(' --reasoning-parser qwen3'); if (toolcall === 'enabled') flags.push(' --tool-call-parser qwen3_coder'); if (mtp === 'enabled') { - flags.push(' --mamba-scheduler-strategy extra_buffer'); + flags.push(' --mamba-radix-cache-strategy extra_buffer'); flags.push(" --speculative-algo 'NEXTN'"); flags.push(' --speculative-eagle-topk 1'); flags.push(' --speculative-num-steps 3'); diff --git a/docs_new/src/snippets/autoregressive/minicpm-v-4_6-deployment.jsx b/docs_new/src/snippets/autoregressive/minicpm-v-4_6-deployment.jsx index 23f8f0ca4..901f9bbbf 100644 --- a/docs_new/src/snippets/autoregressive/minicpm-v-4_6-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/minicpm-v-4_6-deployment.jsx @@ -98,7 +98,7 @@ export const MiniCPMV46Deployment = () => { cmd += ` \\\n --tool-call-parser qwen3_coder`; } if (mambaCache === 'v2') { - cmd += ` \\\n --mamba-scheduler-strategy extra_buffer`; + cmd += ` \\\n --mamba-radix-cache-strategy extra_buffer`; } cmd += ` \\\n --host 0.0.0.0 --port 30000`; diff --git a/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx b/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx index 47cbd53ac..7c0f8c447 100644 --- a/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx @@ -43,7 +43,7 @@ export const Nemotron3SuperDeployment = () => { // trtllm_mha is Blackwell-only; on B200 it replaces the flashinfer default, // whose per-step plan() host-sync breaks the spec-v2 overlap scheduler. H200 // defaults to fa3 (no such sync), so no override is needed there. - commandRule: (value, state) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4 \\\n --mamba-scheduler-strategy extra_buffer' + (state.hardware === 'b200' ? ' \\\n --attention-backend trtllm_mha' : '') : null + commandRule: (value, state) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4 \\\n --mamba-radix-cache-strategy extra_buffer' + (state.hardware === 'b200' ? ' \\\n --attention-backend trtllm_mha' : '') : null }, kvcache: { name: 'kvcache', diff --git a/docs_new/src/snippets/autoregressive/nemotron3-ultra-deployment.jsx b/docs_new/src/snippets/autoregressive/nemotron3-ultra-deployment.jsx index 0b4755eee..537f2b54c 100644 --- a/docs_new/src/snippets/autoregressive/nemotron3-ultra-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/nemotron3-ultra-deployment.jsx @@ -251,7 +251,7 @@ export const Nemotron3UltraDeployment = () => { } } - cmd += ` --mamba-scheduler-strategy extra_buffer \\\n`; + cmd += ` --mamba-radix-cache-strategy extra_buffer \\\n`; if (['b200', 'gb200', 'b300', 'gb300'].includes(hardware)) { cmd += ` --attention-backend trtllm_mha \\\n`; } diff --git a/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx index f36c588fd..c8104cbcb 100644 --- a/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx @@ -39,7 +39,7 @@ export const Qwen3CoderNextDeployment = () => { { id: 'v1', label: 'V1', default: true }, { id: 'v2', label: 'V2', default: false } ], - commandRule: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer \\\n --page-size 64' : null + commandRule: (value) => value === 'v2' ? '--mamba-radix-cache-strategy extra_buffer \\\n --page-size 64' : null } }; diff --git a/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx index dd886e4cf..17b0c61d7 100644 --- a/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx @@ -65,7 +65,7 @@ export const Qwen3NextDeployment = () => { { id: 'v1', label: 'V1', default: true }, { id: 'v2', label: 'V2', default: false } ], - commandRule: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer \\\n --page-size 64' : null + commandRule: (value) => value === 'v2' ? '--mamba-radix-cache-strategy extra_buffer \\\n --page-size 64' : null } }; diff --git a/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx index 879dcab4a..69795a7a0 100644 --- a/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx @@ -359,7 +359,7 @@ export const Qwen35Deployment = () => { // Dense models with MTP off: force V1 — values.mambaCache is not // re-resolved on a speculative toggle (useEffect deps are hardware/model), // so it can stay at 'v2' from a prior MTP-on state. Reading it directly - // would emit a spurious --mamba-scheduler-strategy extra_buffer. The UI + // would emit a spurious --mamba-radix-cache-strategy extra_buffer. The UI // radio is hidden for dense models, so users can't manually correct it. // MoE keeps the old behavior — the UI radio is the recovery path there. const mamba_v1_dev = ['mi300x', 'mi325x', 'mi355x', 'xeon']; @@ -373,7 +373,7 @@ export const Qwen35Deployment = () => { reasoning: (value) => value === 'enabled' ? '--reasoning-parser qwen3' : null, toolcall: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null, speculative: (value) => value === 'enabled' ? '--speculative-algorithm NEXTN \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4' : null, - mambaCache: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer' : null, + mambaCache: (value) => value === 'v2' ? '--mamba-radix-cache-strategy extra_buffer' : null, }; // Iterate options in order, applying commandRules @@ -382,7 +382,7 @@ export const Qwen35Deployment = () => { // Skip options that don't pass their condition. mambaCache is special: // its condition gates only the UI radio (hidden for dense models), but // the rule still fires for dense models on NVIDIA + MTP to emit - // --mamba-scheduler-strategy extra_buffer. + // --mamba-radix-cache-strategy extra_buffer. if (option.condition && !option.condition(values) && (key !== 'mambaCache' || speculative !== 'enabled')) continue; const rule = commandRules[key]; if (rule) { diff --git a/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx index bcb967007..427ee8e06 100644 --- a/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx @@ -85,7 +85,7 @@ export const Qwen36Deployment = () => { { id: 'v2', label: 'V2', default: false }, ]; }, - commandRule: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer' : null, + commandRule: (value) => value === 'v2' ? '--mamba-radix-cache-strategy extra_buffer' : null, }, }; diff --git a/python/sglang/srt/server_args.py b/python/sglang/srt/server_args.py index 05ef12de9..d84093c4f 100644 --- a/python/sglang/srt/server_args.py +++ b/python/sglang/srt/server_args.py @@ -1427,7 +1427,7 @@ class ServerArgs: fp8_gemm_runner_backend: A[ str, Arg( - help="Choose the runner backend for Blockwise FP8 GEMM operations. Options: 'auto' (default, auto-selects based on hardware), 'deep_gemm' (JIT-compiled; enabled by default on NVIDIA Hopper (SM90) and Blackwell (SM100) when DeepGEMM is installed), 'flashinfer_trtllm' (optimal for Blackwell and low-latency), 'flashinfer_cutlass' (FlashInfer CUTLASS groupwise FP8 GEMM), 'flashinfer_deepgemm' (Hopper SM90 only; uses swapAB optimization for small M dimensions in decoding), 'cutlass' (optimal for Hopper/Blackwell GPUs and high-throughput), 'triton' (fallback, widely compatible), 'aiter' (ROCm only). ", + help="Choose the runner backend for Blockwise FP8 GEMM operations. Options: 'auto' (default, auto-selects based on hardware), 'deep_gemm' (JIT-compiled; enabled by default on NVIDIA Hopper (SM90) and Blackwell (SM100) when DeepGEMM is installed), 'flashinfer_trtllm' (optimal for Blackwell and low-latency), 'flashinfer_cutlass' (FlashInfer CUTLASS groupwise FP8 GEMM), 'flashinfer_deepgemm' (Hopper SM90 only; uses swapAB optimization for small M dimensions in decoding), 'cutlass' (optimal for SM120 GPUs), 'triton' (fallback, widely compatible), 'aiter' (ROCm only). ", cli_name="--fp8-gemm-backend", choices=FP8_GEMM_RUNNER_BACKEND_CHOICES, resolvable=True, @@ -2136,7 +2136,7 @@ class ServerArgs: "baseline (the per-K g_cache is K x larger and the reconstruction " "refolds the per-K decay every step), so it is not recommended for KDA " "models. Requires the Triton linear-attn decode backend and " - "--mamba-scheduler-strategy no_buffer (the default).", + "--mamba-radix-cache-strategy no_buffer (the default).", ] = False linear_replayssm_cache_len: A[ int, @@ -5221,10 +5221,10 @@ class ServerArgs: if mamba_extra_buffer_of(resolved_view(self)): raise ValueError( - "--enable-linear-replayssm requires --mamba-scheduler-strategy " + "--enable-linear-replayssm requires --mamba-radix-cache-strategy " "no_buffer (the default); the extra_buffer ping-pong " "donation path is not yet supported (follow-up). Got " - f"--mamba-scheduler-strategy={self.mamba_scheduler_strategy!r}." + f"--mamba-radix-cache-strategy={self.mamba_radix_cache_strategy!r}." ) if self.disaggregation_mode != "null": # The disaggregated decode pool (HybridMambaDecodeReqToTokenPool)