Skip to content

Commit e5f44cf

Browse files
authored
Add Qwen3.5-FP8 GB200 SGLang disaggregated benchmark (#1810)
* Add qwen3.5-fp8-gb200-dynamo-sglang disaggregated SGLang benchmark Qwen3.5-397B-A17B-FP8 GB200 disaggregated SGLang-via-Dynamo, 6 topologies across 1k/1k and 8k/1k (1P1D TP4 STP plus wide-EP DEP4 prefill / DEP16 decode from 1P1D up to 8P1D). Adds the recipe set, the nvidia-master entry, the gb200 launch-script model-path and recipe-copy branches, and the perf-changelog entry. * Update perf-changelog pr-link for #1810 * Set 1k1k 1p1d-tp4-tp4 context-length to 4096 * chore: refresh PR #1810 for sweep reuse [skip-sweep]
1 parent e4996a6 commit e5f44cf

9 files changed

Lines changed: 999 additions & 0 deletions

File tree

.github/configs/nvidia-master.yaml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9375,6 +9375,114 @@ dsv4-fp4-gb200-dynamo-sglang:
93759375
ep: 12
93769376
dp-attn: true
93779377

9378+
qwen3.5-fp8-gb200-dynamo-sglang:
9379+
image: lmsysorg/sglang:nightly-dev-cu13-20260608-303757cc
9380+
model: Qwen/Qwen3.5-397B-A17B-FP8
9381+
model-prefix: qwen3.5
9382+
runner: gb200
9383+
precision: fp8
9384+
framework: dynamo-sglang
9385+
multinode: true
9386+
disagg: true
9387+
scenarios:
9388+
fixed-seq-len:
9389+
- isl: 1024
9390+
osl: 1024
9391+
search-space:
9392+
# 1P1D STP: TP4 prefill + TP4 decode (pure tensor parallel). 2 nodes (1+1).
9393+
- spec-decoding: "none"
9394+
conc-list: [1, 2, 4, 8, 16, 32, 64]
9395+
prefill:
9396+
num-worker: 1
9397+
tp: 4
9398+
ep: 1
9399+
dp-attn: false
9400+
additional-settings:
9401+
- "CONFIG_FILE=recipes/sglang/qwen3.5/gb200-fp8/1k1k/1p1d-tp4-tp4.yaml"
9402+
decode:
9403+
num-worker: 1
9404+
tp: 4
9405+
ep: 1
9406+
dp-attn: false
9407+
# 1P1D wide-EP: prefill DEP4 + decode DEP16. 5 nodes (1+4).
9408+
- spec-decoding: "none"
9409+
conc-list: [512, 1024, 2048]
9410+
prefill:
9411+
num-worker: 1
9412+
tp: 4
9413+
ep: 4
9414+
dp-attn: true
9415+
additional-settings:
9416+
- "CONFIG_FILE=recipes/sglang/qwen3.5/gb200-fp8/1k1k/1p1d-dep4-dep16.yaml"
9417+
decode:
9418+
num-worker: 1
9419+
tp: 16
9420+
ep: 16
9421+
dp-attn: true
9422+
# 2P1D wide-EP: 2 prefill DEP4 + decode DEP16. 6 nodes (2+4).
9423+
- spec-decoding: "none"
9424+
conc-list: [4096]
9425+
prefill:
9426+
num-worker: 2
9427+
tp: 4
9428+
ep: 4
9429+
dp-attn: true
9430+
additional-settings:
9431+
- "CONFIG_FILE=recipes/sglang/qwen3.5/gb200-fp8/1k1k/2p1d-dep4-dep16.yaml"
9432+
decode:
9433+
num-worker: 1
9434+
tp: 16
9435+
ep: 16
9436+
dp-attn: true
9437+
- isl: 8192
9438+
osl: 1024
9439+
search-space:
9440+
# 1P1D STP: TP4 prefill + TP4 decode (pure tensor parallel). 2 nodes (1+1).
9441+
- spec-decoding: "none"
9442+
conc-list: [1, 2, 4, 8, 16, 32, 64, 128]
9443+
prefill:
9444+
num-worker: 1
9445+
tp: 4
9446+
ep: 1
9447+
dp-attn: false
9448+
additional-settings:
9449+
- "CONFIG_FILE=recipes/sglang/qwen3.5/gb200-fp8/8k1k/1p1d-tp4-tp4.yaml"
9450+
decode:
9451+
num-worker: 1
9452+
tp: 4
9453+
ep: 1
9454+
dp-attn: false
9455+
# 4P1D wide-EP: 4 prefill DEP4 + decode DEP16. 8 nodes (4+4).
9456+
- spec-decoding: "none"
9457+
conc-list: [1024]
9458+
prefill:
9459+
num-worker: 4
9460+
tp: 4
9461+
ep: 4
9462+
dp-attn: true
9463+
additional-settings:
9464+
- "CONFIG_FILE=recipes/sglang/qwen3.5/gb200-fp8/8k1k/4p1d-dep4-dep16.yaml"
9465+
decode:
9466+
num-worker: 1
9467+
tp: 16
9468+
ep: 16
9469+
dp-attn: true
9470+
# 8P1D wide-EP: 8 prefill DEP4 + decode DEP16. 12 nodes (8+4).
9471+
- spec-decoding: "none"
9472+
conc-list: [2048, 4096]
9473+
prefill:
9474+
num-worker: 8
9475+
tp: 4
9476+
ep: 4
9477+
dp-attn: true
9478+
additional-settings:
9479+
- "CONFIG_FILE=recipes/sglang/qwen3.5/gb200-fp8/8k1k/8p1d-dep4-dep16.yaml"
9480+
decode:
9481+
num-worker: 1
9482+
tp: 16
9483+
ep: 16
9484+
dp-attn: true
9485+
93789486
dsv4-fp4-b300-dynamo-vllm:
93799487
image: vllm/vllm-openai:v0.20.1
93809488
model: deepseek-ai/DeepSeek-V4-Pro
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
name: "qwen3.5-1p1d-dep4-dep16"
2+
3+
setup_script: rebuild-deepep.sh
4+
5+
dynamo:
6+
hash: 46520ca59afe992fb5ef61b3197b2316f8df9b2b
7+
install: true
8+
9+
frontend:
10+
type: dynamo
11+
enable_multiple_frontends: true
12+
num_additional_frontends: 1
13+
nginx_container: nginx
14+
15+
model:
16+
path: "qwen3.5-fp8"
17+
container: "lmsysorg/sglang:nightly-dev-cu13-20260608-303757cc"
18+
precision: "fp8"
19+
20+
resources:
21+
gpu_type: "gb200"
22+
gpus_per_node: 4
23+
prefill_nodes: 1
24+
decode_nodes: 4
25+
prefill_workers: 1
26+
decode_workers: 1
27+
28+
backend:
29+
type: sglang
30+
31+
prefill_environment:
32+
SGLANG_JIT_DEEPGEMM_PRECOMPILE: "0"
33+
NO_COLOR: "1"
34+
TORCH_DISTRIBUTED_DEFAULT_TIMEOUT: "3600"
35+
TORCH_NCCL_WATCHDOG_TIMEOUT_SEC: "3600"
36+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: "3600"
37+
PYTHONUNBUFFERED: "1"
38+
NCCL_MNNVL_ENABLE: "1"
39+
NCCL_CUMEM_ENABLE: "1"
40+
MC_FORCE_MNNVL: "1"
41+
SGLANG_DG_CACHE_DIR: "/configs/deepgemm-cache"
42+
FLASHINFER_WORKSPACE_BASE: "/configs/flashinfer-cache"
43+
SGLANG_DISAGGREGATION_HEARTBEAT_MAX_FAILURE: "100000"
44+
SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT: "100000"
45+
SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "100000"
46+
SGLANG_MOONCAKE_CUSTOM_MEM_POOL: "True"
47+
SGLANG_USE_MESSAGE_QUEUE_BROADCASTER: "0"
48+
SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: "1"
49+
SGLANG_HEALTH_STARTING_OK: "1"
50+
SGLANG_ENABLE_HEALTH_ENDPOINT_GENERATION: "0"
51+
52+
decode_environment:
53+
SGLANG_JIT_DEEPGEMM_PRECOMPILE: "0"
54+
NO_COLOR: "1"
55+
TORCH_DISTRIBUTED_DEFAULT_TIMEOUT: "3600"
56+
TORCH_NCCL_WATCHDOG_TIMEOUT_SEC: "3600"
57+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: "3600"
58+
PYTHONUNBUFFERED: "1"
59+
NCCL_MNNVL_ENABLE: "1"
60+
NCCL_CUMEM_ENABLE: "1"
61+
MC_FORCE_MNNVL: "1"
62+
MC_TE_METRIC: "true"
63+
SGLANG_DG_CACHE_DIR: "/tmp/deepgemm-cache"
64+
FLASHINFER_WORKSPACE_BASE: "/configs/flashinfer-cache"
65+
SGLANG_DISAGGREGATION_HEARTBEAT_MAX_FAILURE: "100000"
66+
SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT: "100000"
67+
SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "100000"
68+
SGLANG_DECODE_BOOTSTRAP_TIMEOUT: "1000"
69+
SGLANG_HACK_SEQ_BOOTSTRAP_ROOM: "1"
70+
SGLANG_MOONCAKE_CUSTOM_MEM_POOL: "True"
71+
SGLANG_USE_MESSAGE_QUEUE_BROADCASTER: "0"
72+
SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: "1"
73+
SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK: "512"
74+
SGLANG_HEALTH_CHECK_TIMEOUT: "1800"
75+
SGLANG_HEALTH_STARTING_OK: "1"
76+
SGLANG_ENABLE_HEALTH_ENDPOINT_GENERATION: "0"
77+
78+
sglang_config:
79+
prefill:
80+
served-model-name: "Qwen/Qwen3.5-397B-A17B-FP8"
81+
model-path: "/model/"
82+
quantization: "fp8"
83+
kv-cache-dtype: "fp8_e4m3"
84+
trust-remote-code: true
85+
86+
tensor-parallel-size: 4
87+
data-parallel-size: 4
88+
expert-parallel-size: 4
89+
enable-dp-attention: true
90+
enable-dp-lm-head: true
91+
92+
mamba-scheduler-strategy: "no_buffer"
93+
mamba-track-interval: 2048
94+
mamba-ssm-dtype: "bfloat16"
95+
disaggregation-mode: "prefill"
96+
disable-radix-cache: true
97+
disaggregation-bootstrap-port: 31000
98+
mem-fraction-static: 0.8
99+
chunked-prefill-size: 65536
100+
load-balance-method: "round_robin"
101+
watchdog-timeout: 1000000
102+
disable-cuda-graph: true
103+
log-level: "info"
104+
page-size: 64
105+
attention-backend: "trtllm_mha"
106+
moe-runner-backend: "flashinfer_trtllm"
107+
108+
decode:
109+
served-model-name: "Qwen/Qwen3.5-397B-A17B-FP8"
110+
model-path: "/model/"
111+
trust-remote-code: true
112+
quantization: "fp8"
113+
kv-cache-dtype: "fp8_e4m3"
114+
115+
tensor-parallel-size: 16
116+
data-parallel-size: 16
117+
expert-parallel-size: 16
118+
enable-dp-attention: true
119+
enable-dp-lm-head: true
120+
prefill-round-robin-balance: true
121+
122+
mamba-scheduler-strategy: "no_buffer"
123+
mamba-track-interval: 128
124+
mamba-ssm-dtype: "bfloat16"
125+
126+
disaggregation-mode: "decode"
127+
disable-radix-cache: true
128+
disaggregation-bootstrap-port: 31000
129+
130+
chunked-prefill-size: 4096
131+
context-length: 4096
132+
mem-fraction-static: 0.80
133+
max-mamba-cache-size: 2048
134+
max-running-requests: 2048
135+
cuda-graph-max-bs: 128
136+
watchdog-timeout: 1000000
137+
138+
page-size: 64
139+
attention-backend: "trtllm_mha"
140+
moe-runner-backend: "deep_gemm"
141+
moe-a2a-backend: "deepep"
142+
deepep-mode: "low_latency"
143+
ep-dispatch-algorithm: "static"
144+
eplb-algorithm: "deepseek"
145+
146+
decode-log-interval: 1
147+
stream-interval: 50
148+
149+
benchmark:
150+
type: "sa-bench"
151+
isl: 1024
152+
osl: 1024
153+
req_rate: "inf"
154+
random_range_ratio: 0.8
155+
concurrencies: "512x1024x2048"
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
name: "qwen3.5-1p1d-tp4-tp4"
2+
3+
sbatch_directives:
4+
mem: "0"
5+
6+
dynamo:
7+
hash: 46520ca59afe992fb5ef61b3197b2316f8df9b2b
8+
install: true
9+
10+
frontend:
11+
type: dynamo
12+
enable_multiple_frontends: true
13+
num_additional_frontends: 1
14+
nginx_container: nginx
15+
16+
model:
17+
path: "qwen3.5-fp8"
18+
container: "lmsysorg/sglang:nightly-dev-cu13-20260608-303757cc"
19+
precision: "fp8"
20+
21+
resources:
22+
gpu_type: "gb200"
23+
gpus_per_node: 4
24+
prefill_nodes: 1
25+
decode_nodes: 1
26+
prefill_workers: 1
27+
decode_workers: 1
28+
29+
backend:
30+
type: sglang
31+
32+
prefill_environment:
33+
SGLANG_JIT_DEEPGEMM_PRECOMPILE: "0"
34+
TORCH_DISTRIBUTED_DEFAULT_TIMEOUT: "3600"
35+
TORCH_NCCL_WATCHDOG_TIMEOUT_SEC: "3600"
36+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: "3600"
37+
PYTHONUNBUFFERED: "1"
38+
NCCL_MNNVL_ENABLE: "1"
39+
NCCL_CUMEM_ENABLE: "1"
40+
SGLANG_DG_CACHE_DIR: "/configs/deepgemm-cache"
41+
FLASHINFER_WORKSPACE_BASE: "/configs/flashinfer-cache"
42+
SGLANG_DISAGGREGATION_HEARTBEAT_MAX_FAILURE: "100000"
43+
SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT: "100000"
44+
SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "100000"
45+
SGLANG_USE_MESSAGE_QUEUE_BROADCASTER: "0"
46+
SGLANG_MOONCAKE_CUSTOM_MEM_POOL: "True"
47+
MC_FORCE_MNNVL: "1"
48+
49+
decode_environment:
50+
SGLANG_JIT_DEEPGEMM_PRECOMPILE: "0"
51+
TORCH_DISTRIBUTED_DEFAULT_TIMEOUT: "3600"
52+
TORCH_NCCL_WATCHDOG_TIMEOUT_SEC: "3600"
53+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: "3600"
54+
PYTHONUNBUFFERED: "1"
55+
NCCL_MNNVL_ENABLE: "1"
56+
NCCL_CUMEM_ENABLE: "1"
57+
SGLANG_DG_CACHE_DIR: "/configs/deepgemm-cache"
58+
FLASHINFER_WORKSPACE_BASE: "/configs/flashinfer-cache"
59+
SGLANG_DISAGGREGATION_HEARTBEAT_MAX_FAILURE: "100000"
60+
SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT: "100000"
61+
SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "100000"
62+
SGLANG_DECODE_BOOTSTRAP_TIMEOUT: "1000"
63+
SGLANG_MOONCAKE_CUSTOM_MEM_POOL: "True"
64+
SGLANG_USE_MESSAGE_QUEUE_BROADCASTER: "0"
65+
SGLANG_HEALTH_CHECK_TIMEOUT: "3600"
66+
SGLANG_HEALTH_STARTING_OK: "1"
67+
SGLANG_ENABLE_HEALTH_ENDPOINT_GENERATION: "0"
68+
MC_FORCE_MNNVL: "1"
69+
MC_TE_METRIC: "true"
70+
SGLANG_HACK_SEQ_BOOTSTRAP_ROOM: "1"
71+
72+
sglang_config:
73+
prefill:
74+
served-model-name: "Qwen/Qwen3.5-397B-A17B-FP8"
75+
model-path: "/model/"
76+
quantization: "fp8"
77+
kv-cache-dtype: "fp8_e4m3"
78+
trust-remote-code: true
79+
attention-backend: "trtllm_mha"
80+
tensor-parallel-size: 4
81+
mamba-ssm-dtype: "bfloat16"
82+
moe-runner-backend: "flashinfer_trtllm"
83+
disable-radix-cache: true
84+
max-running-requests: 1024
85+
mem-fraction-static: 0.8
86+
chunked-prefill-size: 16384
87+
max-prefill-tokens: 16384
88+
context-length: 4096
89+
cuda-graph-max-bs: 1024
90+
decode-log-interval: 1
91+
stream-interval: 50
92+
disaggregation-mode: "prefill"
93+
94+
decode:
95+
served-model-name: "Qwen/Qwen3.5-397B-A17B-FP8"
96+
model-path: "/model/"
97+
quantization: "fp8"
98+
kv-cache-dtype: "fp8_e4m3"
99+
trust-remote-code: true
100+
attention-backend: "trtllm_mha"
101+
tensor-parallel-size: 4
102+
mamba-ssm-dtype: "bfloat16"
103+
moe-runner-backend: "flashinfer_trtllm"
104+
disable-radix-cache: true
105+
max-running-requests: 1024
106+
mem-fraction-static: 0.8
107+
chunked-prefill-size: 16384
108+
max-prefill-tokens: 16384
109+
context-length: 4096
110+
cuda-graph-max-bs: 1024
111+
decode-log-interval: 1
112+
stream-interval: 50
113+
disaggregation-mode: "decode"
114+
115+
benchmark:
116+
type: "sa-bench"
117+
isl: 1024
118+
osl: 1024
119+
req_rate: "inf"
120+
num_prompts_mult: 10
121+
num_warmup_mult: 1
122+
random_range_ratio: 0.8
123+
concurrencies: "1x2x4x8x16x32x64"

0 commit comments

Comments
 (0)