Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
# DeepSeek-V4.1-Flash AgentX on B300 with SGLang native DSpark. The KV cache
# is GPU-resident.
base:
schema: 2
name: dsv41flash-fp4-b300-sglang-agentic
model:
path: hf:deepseek-ai/DeepSeek-V4.1-Flash
container: lmsysorg/sglang:nightly-dev-cu13-20260922-582389ce@sha256:35ea4d321b0735051dcce2599fc495853ad1ef30f6a1908f0a75e74204362d14
container: lmsysorg/sglang:nightly-dev-cu13-20261004-295a53c9@sha256:7cfd4dd8e0e902d2a3c0560565963c4e172091e1586aaed15ff5a0a131394d34
precision: fp4
identity:
model:
repo: deepseek-ai/DeepSeek-V4.1-Flash
revision: dba1be0a40aa45a94ad051997016db3960a90277
container:
image: lmsysorg/sglang:nightly-dev-cu13-20261004-295a53c9@sha256:7cfd4dd8e0e902d2a3c0560565963c4e172091e1586aaed15ff5a0a131394d34
frameworks:
sglang: 0.0.0.dev1+g295a53c90
sglang-router: 0.3.2
resources:
gpu_type: b300
gpus_per_node: 8
Expand All @@ -27,13 +34,14 @@ base:
trust-remote-code: true
# Overlap checkpoint reads with weight loading from local NVMe.
weight-loader-prefetch-checkpoints: true
chunked-prefill-size: 4096
chunked-prefill-size: 16384
# Keep active decode requests progressing while long prefixes are queued.
prefill-decode-interval: 16
enable-deepseek-v4-fp4-indexer: true
# DSpark is the checkpoint's bundled draft; the block size is its only knob.
speculative-algorithm: DSPARK
speculative-dspark-block-size: 5
# Admission never exceeds the captured decode graph batch.
# Capture decode graphs up to batch 64.
cuda-graph-max-bs-decode: 64
reasoning-parser: auto
tool-call-parser: auto
Expand All @@ -60,17 +68,15 @@ base:
AIPERF_HTTP_TCP_USER_TIMEOUT: '900000'
AIPERF_REQUIRED_SERVER_METRIC_PREFIX: 'sglang:'

# One variant per point. Admission is 2x CONC, capped at the graph batch. SWA
# prefix tails are 64x CONC within [128, 4096]. TP2 raises the static fraction
# (0.80 from c16, 0.85 from c32) and interleaves decode more often from c32.
# Saturation points get a longer warmup drain.
# TP arms admit up to 2x CONC, capped at 64; DP4 C192 admits 384 globally.
# SWA prefix tails are 64x per-rank CONC, with a minimum of 128.
override_tp4_c1:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
expert-parallel-size: 1
mem-fraction-static: 0.7
swa-prefix-tails: 128
max-running-requests: 2
Expand All @@ -79,118 +85,29 @@ override_tp4_c1:
CONC: '1'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp4_c2:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
mem-fraction-static: 0.7
swa-prefix-tails: 128
max-running-requests: 4
benchmark:
env:
CONC: '2'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp4_c4:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
expert-parallel-size: 1
mem-fraction-static: 0.7
swa-prefix-tails: 256
max-running-requests: 8
prefill-decode-interval: 192
benchmark:
env:
CONC: '4'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp4_c8:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
mem-fraction-static: 0.7
swa-prefix-tails: 512
max-running-requests: 16
benchmark:
env:
CONC: '8'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp4_c16:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
mem-fraction-static: 0.7
swa-prefix-tails: 1024
max-running-requests: 32
benchmark:
env:
CONC: '16'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp4_c32:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
mem-fraction-static: 0.7
swa-prefix-tails: 2048
max-running-requests: 64
benchmark:
env:
CONC: '32'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'

override_tp4_c64:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
mem-fraction-static: 0.7
swa-prefix-tails: 4096
max-running-requests: 64
benchmark:
env:
CONC: '64'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'

override_tp4_c128:
roles:
agg:
gpus: 4
args:
tensor-parallel-size: 4
expert-parallel-size: 4
mem-fraction-static: 0.7
swa-prefix-tails: 4096
max-running-requests: 64
benchmark:
env:
CONC: '128'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'

override_tp2_c1:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
expert-parallel-size: 1
mem-fraction-static: 0.7
swa-prefix-tails: 128
max-running-requests: 2
Expand All @@ -199,110 +116,116 @@ override_tp2_c1:
CONC: '1'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp2_c2:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
mem-fraction-static: 0.7
swa-prefix-tails: 128
max-running-requests: 4
benchmark:
env:
CONC: '2'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp2_c4:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
expert-parallel-size: 1
mem-fraction-static: 0.7
swa-prefix-tails: 256
max-running-requests: 8
prefill-decode-interval: 96
benchmark:
env:
CONC: '4'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp2_c8:
override_tp2_c16:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
mem-fraction-static: 0.7
swa-prefix-tails: 512
max-running-requests: 16
expert-parallel-size: 1
mem-fraction-static: 0.8
swa-prefix-tails: 1024
max-running-requests: 32
prefill-decode-interval: 192
benchmark:
env:
CONC: '8'
CONC: '16'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'

override_tp2_c16:
override_tp2_c24:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
expert-parallel-size: 1
mem-fraction-static: 0.8
swa-prefix-tails: 1024
max-running-requests: 32
swa-prefix-tails: 1536
max-running-requests: 48
prefill-decode-interval: 96
benchmark:
env:
CONC: '16'
AGENTIC_WARMUP_GRACE_PERIOD: '1800'
CONC: '24'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'

override_tp2_c32:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
expert-parallel-size: 1
mem-fraction-static: 0.85
swa-prefix-tails: 2048
max-running-requests: 64
prefill-decode-interval: 4
prefill-decode-interval: 64
benchmark:
env:
CONC: '32'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'

override_tp2_c64:
override_tp2_c48:
roles:
agg:
gpus: 2
args:
tensor-parallel-size: 2
expert-parallel-size: 2
mem-fraction-static: 0.85
swa-prefix-tails: 4096
expert-parallel-size: 1
mem-fraction-static: 0.8
swa-prefix-tails: 3072
max-running-requests: 64
prefill-decode-interval: 4
prefill-decode-interval: 64
benchmark:
env:
CONC: '64'
CONC: '48'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'

override_tp2_c128:
override_dp4_c192:
frontend:
type: sglang-router
enable_multiple_frontends: false
args:
policy: cache_aware
request-id-headers: x-correlation-id
dp-aware: true
connect-timeout-secs: 900
request-timeout-secs: 14400
disable-health-check: true
disable-retries: true
roles:
agg:
gpus: 2
gpus: 4
args:
tensor-parallel-size: 2
expert-parallel-size: 2
mem-fraction-static: 0.85
swa-prefix-tails: 4096
max-running-requests: 64
prefill-decode-interval: 4
benchmark:
env:
CONC: '128'
tensor-parallel-size: 4
expert-parallel-size: 4
data-parallel-size: 4
enable-dp-attention: true
enable-dp-lm-head: true
enable-dp-attention-local-control-broadcast: true
load-balance-method: total_requests
tokenizer-worker-num: 8
chunked-prefill-size: 32768
mem-fraction-static: 0.76
swa-prefix-tails: 3072
max-running-requests: 384
benchmark:
env:
CONC: '192'
AGENTIC_WARMUP_GRACE_PERIOD: '3600'
AIPERF_HTTP_X_SMG_ROUTING_KEY_FROM_CORRELATION_ID: 'true'
11 changes: 5 additions & 6 deletions inferencex-e2e/configs/nvidia-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9212,11 +9212,9 @@ qwen3.5-fp8-b300-dynamo-sglang-agentic-disagg:
ep: 2
dp-attn: false

# Official 2026-09-21 CUDA 13 nightly, amd64 manifest pinned for B300.
# Latest multiarch index: sha256:987c7e4bd26918647211a5dcad72a2bdf2a5f394ac1469eff730e7517fc139be.
# Uses the cookbook's automatic backends and the existing B200 AgentX memory bounds.
# Official 2026-10-04 CUDA 13 nightly, multiarch manifest pinned for B300.
dsv41flash-fp4-b300-sglang-agentic-dspark:
image: lmsysorg/sglang:nightly-dev-cu13-20260922-582389ce@sha256:35ea4d321b0735051dcce2599fc495853ad1ef30f6a1908f0a75e74204362d14
image: lmsysorg/sglang:nightly-dev-cu13-20261004-295a53c9@sha256:7cfd4dd8e0e902d2a3c0560565963c4e172091e1586aaed15ff5a0a131394d34
model: deepseek-ai/DeepSeek-V4.1-Flash
model-prefix: dsv41flash
runner: cluster:b300-dsxe
Expand All @@ -9227,8 +9225,9 @@ dsv41flash-fp4-b300-sglang-agentic-dspark:
agentic-coding:
- dram-utilization: 0.80
search-space:
- { tp: 4, ep: 4, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 2, 4, 8, 16, 32, 64, 128], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/b300-fp4-mtp/agentic.yaml }
- { tp: 2, ep: 2, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 2, 4, 8, 16, 32, 64, 128], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/b300-fp4-mtp/agentic.yaml }
- { tp: 4, ep: 1, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 4], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/b300-fp4-mtp/agentic.yaml }
- { tp: 2, ep: 1, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 4, 16, 24, 32, 48], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/b300-fp4-mtp/agentic.yaml }
- { tp: 4, ep: 4, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [192], router: { name: sglang-router, version: "0.3.2" }, srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/b300-fp4-mtp/agentic.yaml }

# Official SGLang nightly; TP4 C1/C2 use GPU Engram, other points use host DRAM.
dsv41flash-fp4-gb300-sglang-agentic-dspark:
Expand Down
15 changes: 13 additions & 2 deletions inferencex-e2e/docs/configuration-procedures.md
Original file line number Diff line number Diff line change
Expand Up @@ -487,11 +487,22 @@ The nightly candidate uses `nightly-dev-cu13-20260922-582389ce`, native MXFP4 Ma
`dsv41flash-fp4-<sku>-sglang-agentic-dspark` are the SGLang counterparts of the vLLM
arms, one PR per SKU across h100, h200, b200, b300, gb200, gb300 and mi355x. They follow the
[SGLang cookbook](https://lmsysorg.mintlify.app/cookbook/autoregressive/DeepSeek/DeepSeek-V4_1),
which has no released SGLang version for this model yet. B200, B300 and H100 pin the CUDA 13 nightly
`lmsysorg/sglang:nightly-dev-cu13-20260922-582389ce` by digest; GB300 pins `lmsysorg/sglang:dev-cu13-nightly-0924` by digest; GB200 and H200 use
which has no released SGLang version for this model yet. B200 and H100 pin the CUDA 13 nightly
`lmsysorg/sglang:nightly-dev-cu13-20260922-582389ce` by digest; B300 pins by digest
`lmsysorg/sglang:nightly-dev-cu13-20261004-295a53c9`; GB300 pins `lmsysorg/sglang:dev-cu13-nightly-0924` by digest; GB200 and H200 use
`lmsysorg/sglang:nightly-dev-cu13-20260923-06008c17` (GB200 by digest), and MI355X pins
`lmsysorg/sglang:dev-dsv41-mi35x` by digest. Each master entry's `image` is authoritative.

B300 publishes nine AgentX points: TP4/EP1 at C1/C4, TP2/EP1 at
C1/C4/C16/C24/C32/C48, and aggregated TP4/EP4/DP4 at C192. The TP arms use 16K
prefill chunks, the DeepSeek-V4 FP4 indexer, and point-specific prefill-decode
scheduling.

The B300 DP4 C192 point runs four internal TP4/EP4 data-parallel ranks in one
aggregated SGLang worker behind `sglang-router` 0.3.2, with cache-aware routing
and correlation-ID affinity. Every B300 arm uses the checkpoint's bundled DSpark
draft with block size 5 and its shipped precision.

B200 uses shipped-default DSpark across TP4/EP4 C1–128 and TP2/EP2 C1–8.
Engram stays in host DRAM with `SGLANG_DSV41_ENGRAM_HOST_TABLE_LAYOUT=per_rank`.
Shared host tables had zero huge-page backing in
Expand Down
Loading
Loading