Skip to content

Commit 6351628

Browse files
Juntian777claude
andcommitted
config: update GB300 DSV41flash vLLM image and retune TP4/DEP2
Move the GB300 DeepSeek-V4.1-Flash vLLM AgentX recipe to nightly-dev-arm64-cu130-ac9126e58aa7 and enable FlashInfer autotuning. Run TP4 at CONC 1-16 and replace TP2 with DEP2 (TP1 x DP2 + EP2, MegaMoE) at CONC 8-192 behind a consistent-hash vLLM Router. Append the perf-changelog entry and document the GB300 settings. 将 GB300 DeepSeek-V4.1-Flash vLLM AgentX 配方更新到 nightly-dev-arm64-cu130-ac9126e58aa7,并开启 FlashInfer autotune。 TP4 覆盖 CONC 1-16;用 DEP2(TP1 x DP2 + EP2,MegaMoE)替代 TP2,覆盖 CONC 8-192,前置一致性哈希 vLLM Router。追加 perf-changelog 条目,并补充 GB300 配置文档。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent a0edf96 commit 6351628

5 files changed

Lines changed: 90 additions & 219 deletions

File tree

‎inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/gb300-fp4-mtp/agentic.yaml‎

Lines changed: 61 additions & 207 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ base:
66
name: dsv41flash-fp4-gb300-vllm-agentic
77
model:
88
path: hf:deepseek-ai/DeepSeek-V4.1-Flash
9-
container: vllm/vllm-openai:nightly-ac68c3087215e0a4f3cdfa218508c6aada57235d
9+
container: vllm/vllm-openai:nightly-dev-arm64-cu130-ac9126e58aa7
1010
precision: fp4
1111
resources:
1212
gpu_type: gb300
@@ -37,17 +37,21 @@ base:
3737
enable-auto-tool-choice: true
3838
reasoning-parser: deepseek_v41
3939
engram-config: '{"cpu_offload":true}'
40-
# FlashInfer sparse attention with MXFP4 indexer KV and sparse logits.
40+
kernel-config: '{"enable_flashinfer_autotune":true}'
4141
attention-config: '{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
4242
kv-cache-dtype: fp8
4343
# Five-token DSpark with probabilistic drafting. Throughput runs replace
4444
# block rejection with the golden acceptance length.
4545
speculative-config: '{"method":"dspark","num_speculative_tokens":5,"draft_sample_method":"probabilistic","rejection_sample_method":"block","enable_adaptive_verification":false}'
4646
max-model-len: 1048576
47-
max-num-seqs: 256
47+
# Piecewise graph capture sizes are multiples of the six-token DSpark
48+
# verification block, denser for small batches.
49+
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
50+
max-cudagraph-capture-size: 8190
51+
max-num-batched-tokens: 8192
4852
disable-uvicorn-access-log: true
4953
env:
50-
VLLM_DISABLED_KERNELS: FlashInferCutedslMxfp8LinearKernel
54+
VLLM_USE_V2_MODEL_RUNNER: '1'
5155
VLLM_USE_RUST_FRONTEND: '1'
5256
PYTHONUNBUFFERED: '1'
5357
VLLM_ENGINE_READY_TIMEOUT_S: '7200'
@@ -58,216 +62,66 @@ base:
5862
MODEL: deepseek-ai/DeepSeek-V4.1-Flash
5963
AIPERF_REQUIRED_SERVER_METRIC_PREFIX: 'vllm:'
6064

61-
# One variant per point. Piecewise graph capture sizes are multiples of the
62-
# six-token DSpark verification block, denser for small batches, and each
63-
# batched-token limit matches the largest captured graph: CONC <= 4 and TP2
64-
# CONC 128 capture up to 2046 tokens (the latter at 0.97 memory utilization),
65-
# every other point up to 8190.
66-
override_tp4_c1:
67-
roles:
68-
agg:
69-
gpus: 4
70-
args:
71-
tensor-parallel-size: 4
72-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046]}'
73-
max-cudagraph-capture-size: 2046
74-
max-num-batched-tokens: 2048
75-
benchmark:
76-
env:
77-
CONC: '1'
78-
79-
override_tp4_c2:
80-
roles:
81-
agg:
82-
gpus: 4
83-
args:
84-
tensor-parallel-size: 4
85-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046]}'
86-
max-cudagraph-capture-size: 2046
87-
max-num-batched-tokens: 2048
88-
benchmark:
89-
env:
90-
CONC: '2'
91-
92-
override_tp4_c4:
93-
roles:
94-
agg:
95-
gpus: 4
96-
args:
97-
tensor-parallel-size: 4
98-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046]}'
99-
max-cudagraph-capture-size: 2046
100-
max-num-batched-tokens: 2048
101-
benchmark:
102-
env:
103-
CONC: '4'
104-
105-
override_tp4_c8:
106-
roles:
107-
agg:
108-
gpus: 4
109-
args:
110-
tensor-parallel-size: 4
111-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
112-
max-cudagraph-capture-size: 8190
113-
max-num-batched-tokens: 8192
114-
benchmark:
115-
env:
116-
CONC: '8'
117-
118-
override_tp4_c16:
119-
roles:
120-
agg:
121-
gpus: 4
122-
args:
123-
tensor-parallel-size: 4
124-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
125-
max-cudagraph-capture-size: 8190
126-
max-num-batched-tokens: 8192
127-
benchmark:
128-
env:
129-
CONC: '16'
130-
131-
override_tp4_c32:
132-
roles:
133-
agg:
134-
gpus: 4
135-
args:
136-
tensor-parallel-size: 4
137-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
138-
max-cudagraph-capture-size: 8190
139-
max-num-batched-tokens: 8192
140-
benchmark:
141-
env:
142-
CONC: '32'
143-
144-
override_tp4_c64:
145-
roles:
146-
agg:
147-
gpus: 4
148-
args:
149-
tensor-parallel-size: 4
150-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
151-
max-cudagraph-capture-size: 8190
152-
max-num-batched-tokens: 8192
153-
benchmark:
154-
env:
155-
CONC: '64'
65+
# Native zip expansion creates one variant per concurrency.
15666

157-
override_tp4_c128:
67+
# TP4 covers low concurrency with THP Engram tables.
68+
zip_override_tp4:
15869
roles:
15970
agg:
16071
gpus: 4
16172
args:
16273
tensor-parallel-size: 4
163-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
164-
max-cudagraph-capture-size: 8190
165-
max-num-batched-tokens: 8192
166-
benchmark:
167-
env:
168-
CONC: '128'
169-
170-
override_tp2_c2:
171-
roles:
172-
agg:
173-
gpus: 2
174-
args:
175-
tensor-parallel-size: 2
176-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046]}'
177-
max-cudagraph-capture-size: 2046
178-
max-num-batched-tokens: 2048
179-
benchmark:
180-
env:
181-
CONC: '2'
182-
183-
override_tp2_c4:
184-
roles:
185-
agg:
186-
gpus: 2
187-
args:
188-
tensor-parallel-size: 2
189-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046]}'
190-
max-cudagraph-capture-size: 2046
191-
max-num-batched-tokens: 2048
192-
benchmark:
193-
env:
194-
CONC: '4'
195-
196-
override_tp2_c8:
197-
roles:
198-
agg:
199-
gpus: 2
200-
args:
201-
tensor-parallel-size: 2
202-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
203-
max-cudagraph-capture-size: 8190
204-
max-num-batched-tokens: 8192
205-
benchmark:
206-
env:
207-
CONC: '8'
208-
209-
override_tp2_c16:
210-
roles:
211-
agg:
212-
gpus: 2
213-
args:
214-
tensor-parallel-size: 2
215-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
216-
max-cudagraph-capture-size: 8190
217-
max-num-batched-tokens: 8192
218-
benchmark:
219-
env:
220-
CONC: '16'
221-
222-
override_tp2_c32:
223-
roles:
224-
agg:
225-
gpus: 2
226-
args:
227-
tensor-parallel-size: 2
228-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
229-
max-cudagraph-capture-size: 8190
230-
max-num-batched-tokens: 8192
231-
benchmark:
232-
env:
233-
CONC: '32'
234-
235-
override_tp2_c64:
236-
roles:
237-
agg:
238-
gpus: 2
239-
args:
240-
tensor-parallel-size: 2
241-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
242-
max-cudagraph-capture-size: 8190
243-
max-num-batched-tokens: 8192
244-
benchmark:
245-
env:
246-
CONC: '64'
247-
248-
override_tp2_c128:
249-
roles:
250-
agg:
251-
gpus: 2
252-
args:
253-
tensor-parallel-size: 2
254-
compilation-config: '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046]}'
255-
max-cudagraph-capture-size: 2046
256-
max-num-batched-tokens: 2048
257-
gpu-memory-utilization: 0.97
258-
benchmark:
259-
env:
260-
CONC: '128'
261-
262-
override_tp2_c1:
74+
engram-config: '{"cpu_offload":true,"use_thp":true}'
75+
max-num-seqs: [8, 8, 16, 32]
76+
compilation-config:
77+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092]}'
78+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092]}'
79+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
80+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190],"decoder_replay_cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2048,2304,2560,2816,3072,3328,3584,3840,4096]}'
81+
max-cudagraph-capture-size: [4092, 4092, 8190, 8190]
82+
max-num-batched-tokens: [4096, 4096, 8192, 8192]
83+
benchmark:
84+
env:
85+
CONC: ['1', '4', '8', '16']
86+
87+
# DEP2: TP1 x DP2 + EP2 with MegaMoE behind a consistent-hash router;
88+
# MegaAttention at CONC 128 and above.
89+
zip_override_dep2:
90+
frontend:
91+
type: vllm-router
92+
args:
93+
policy: consistent_hash
94+
prometheus-host: 127.0.0.1
95+
prometheus-port: 18000
96+
request-timeout-secs: 14400
97+
disable-retries: true
98+
setup_script: vllm-router-0.1.14.sh
26399
roles:
264100
agg:
265101
gpus: 2
266102
args:
267-
tensor-parallel-size: 2
268-
max-cudagraph-capture-size: 64
269-
max-num-batched-tokens: 4096
270-
max-num-seqs: 16
271-
benchmark:
272-
env:
273-
CONC: '1'
103+
tensor-parallel-size: 1
104+
data-parallel-size: 2
105+
enable-expert-parallel: true
106+
kernel-config: '{"enable_flashinfer_autotune":true,"moe_backend":"deep_gemm_mega_moe"}'
107+
engram-config: '{"cpu_offload":true,"embedding_across_dp":true}'
108+
max-num-seqs: [16, 16, 32, 64, 128, 192]
109+
attention-config:
110+
- '{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
111+
- '{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
112+
- '{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
113+
- '{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
114+
- '{"backend":"FLASHMLA_MEGA_ATTN_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
115+
- '{"backend":"FLASHMLA_MEGA_ATTN_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
116+
compilation-config:
117+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
118+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190]}'
119+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190],"decoder_replay_cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2048,2304,2560,2816,3072,3328,3584,3840,4096]}'
120+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190],"decoder_replay_cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2048,2304,2560,2816,3072,3328,3584,3840,4096]}'
121+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092,6144,8190],"decoder_replay_cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2048,2304,2560,2816,3072,3328,3584,3840,4096]}'
122+
- '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2046,3072,4092],"decoder_replay_cudagraph_capture_sizes":[6,12,18,24,30,36,48,60,72,96,120,144,192,240,288,384,480,576,768,1020,1536,2048]}'
123+
max-cudagraph-capture-size: [8190, 8190, 8190, 8190, 8190, 4092]
124+
max-num-batched-tokens: [8192, 8192, 8192, 8192, 16384, 16384]
125+
benchmark:
126+
env:
127+
CONC: ['8', '16', '32', '64', '128', '192']

‎inferencex-e2e/configs/nvidia-master.yaml‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8534,7 +8534,7 @@ dsv41flash-fp4-b200-sglang-agentic-dspark:
85348534
- { tp: 2, ep: 2, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 2, 4, 8], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/b200-fp4-mtp/agentic.yaml }
85358535

85368536
dsv41flash-fp4-gb300-vllm-agentic-dspark:
8537-
image: vllm/vllm-openai:nightly-ac68c3087215e0a4f3cdfa218508c6aada57235d
8537+
image: vllm/vllm-openai:nightly-dev-arm64-cu130-ac9126e58aa7
85388538
model: deepseek-ai/DeepSeek-V4.1-Flash
85398539
model-prefix: dsv41flash
85408540
runner: cluster:gb300-nv
@@ -8546,13 +8546,11 @@ dsv41flash-fp4-gb300-vllm-agentic-dspark:
85468546
- dram-utilization: 0.80
85478547
search-space:
85488548
# Engram weights use UVA DRAM; the KV cache stays GPU-resident.
8549-
- { tp: 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/vllm/gb300-fp4-mtp/agentic.yaml }
8550-
# TP2 halves the GPU count per replica. Weights rise to ~175 GiB on each
8551-
# 277 GiB GPU with the Engram tables in pinned host DRAM, so the arm
8552-
# takes the same caps as the B200 TP2 arm: batched tokens 4096 (the
8553-
# indexer's logits buffer is 32 GiB at the upstream 16384) and graph
8554-
# capture stopped at 512, leaving ~36 GiB of KV per GPU.
8555-
- { tp: 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/vllm/gb300-fp4-mtp/agentic.yaml }
8549+
# TP4 covers low concurrency with FlashInfer attention and THP Engram tables.
8550+
- { tp: 4, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 4, 8, 16], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/gb300-fp4-mtp/agentic.yaml }
8551+
# DEP2 is native TP1 x DP2 + EP2 with MegaMoE behind a consistent-hash vLLM
8552+
# Router; FlashInfer attention up to conc 64, MegaAttention above.
8553+
- { tp: 2, ep: 2, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [8, 16, 32, 64, 128, 192], router: { name: vllm-router, version: "0.1.14" }, srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/gb300-fp4-mtp/agentic.yaml }
85568554

85578555
# H200 AgentX arm for DeepSeek-V4.1-Flash. Upstream marks h200 verified and says
85588556
# the GB200 NVL4 TP4 layout becomes TP8 on 8-GPU nodes, so this is TP8.

‎inferencex-e2e/docs/configuration-procedures.md‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ EAGLE3 K3, golden AL 2.78 and indexer CP are unchanged.
328328

329329
The GB200 DSpark recipe uses a minimum CUDA graph capture size of 64 tokens to cover concurrent AgentX subagents. This raises c1/c2/c4 from 8/16/32 to 64; c8 and above retain their existing sizes. The full trace, AL 3.51, and Engram UVA settings are preserved; low-concurrency tail latency improvements require CI confirmation.
330330
The B200 DSpark recipe uses the same minimum capture size and preserves the same workload settings.
331-
The GB300 DSpark recipe uses the same minimum capture size and preserves the same workload settings.
331+
The GB300 DSpark recipe sets explicit capture sizes per point, described below.
332332
The H200 DSpark recipe uses the same minimum capture size and preserves the same workload settings.
333333

334334
The B300 DSpark recipe sets explicit capture sizes per point, described below.
@@ -342,7 +342,7 @@ weights determine the recipe's `precision: fp4` label.
342342

343343
The GPU-specific entry points share the text-only serving behavior, `deepseek_v41` tokenizer and
344344
parsers, 1M context, and the shared AgentX trace replay, power, metrics, and eval
345-
helpers. The TP4 concurrency range is 1–128. The shared script sizes graph capture
345+
helpers. Unless noted below, the TP4 concurrency range is 1–128. The shared script sizes graph capture
346346
for the six-token DSpark verification block. The srt-slurm single-node path mounts the checkout at `/infmax-workspace`, so
347347
AgentX runtime directories are not created under `/workspace`. Cluster model paths and persistent caches are reused.
348348
The recipe probes the serving port on the compute node and selects an available
@@ -355,6 +355,11 @@ behind a consistent-hash vLLM Router, switching to MegaAttention at 128 and abov
355355
`FULL_AND_PIECEWISE` CUDA graphs sized in multiples of the six-token verification block.
356356
Other SKUs continue to use the shared script.
357357

358+
The GB300 entry uses `vllm/vllm-openai:nightly-dev-arm64-cu130-ac9126e58aa7` with FlashInfer
359+
autotuning. TP4 covers concurrency 1–16; DEP2 (TP1 x DP2 + EP2, DeepGEMM MegaMoE) covers 8–192
360+
behind a consistent-hash vLLM Router, switching to MegaAttention at 128 and above. All points use
361+
`FULL_AND_PIECEWISE` CUDA graphs sized in multiples of the six-token verification block.
362+
358363
The GB300 launcher allows 7200 seconds for engine readiness. In [run 34504969146](https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34504969146), the Rust frontend exhausted its 3600-second deadline while the engine was still capturing graphs; model loading alone took 18–23 minutes. This extends startup time without changing the benchmark duration or decoding settings.
359364

360365
GPU sweep and eval evidence is required before calling any recipe validated.

0 commit comments

Comments
 (0)