Skip to content

Commit 4837735

Browse files
[NV] Refresh MiniMax-M3 NVFP4 B300 8k1k disaggregated Dynamo-vLLM / 更新 MiniMax-M3 NVFP4 B300 8k1k 分离式 Dynamo-vLLM 配置 (#2310)
* perf: refresh MiniMax-M3 B300 disagg recipes Bump the non-speculative 8k1k TP1 sweep to the refreshed vLLM image, remove the forced TRT-LLM all-reduce backend, and add a separate one-node 4P1D TP1/TEP4 concurrency-4096 point. Preserve the legacy 4P2D point unchanged.\n\n中文:将非投机 8k1k TP1 扫描升级到新版 vLLM 镜像,移除强制 TRT-LLM all-reduce 后端,并新增单节点 4P1D TP1/TEP4 并发 4096 配置;原有 4P2D 基准点保持不变。 * chore: register MiniMax-M3 B300 disagg sweep Append the performance changelog entry for draft PR #2310 without modifying prior entries.\n\n中文:为草稿 PR #2310 追加性能变更日志条目,不修改任何已有条目。 * Update perf-changelog.yaml --------- Co-authored-by: Cameron Quilici <cjquilici@gmail.com>
1 parent 7bb1730 commit 4837735

9 files changed

Lines changed: 121 additions & 8 deletions

File tree

benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/1p1d-tp1-tp4-8k1k.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: "minimax-m3-vllm-disagg-b300-1p1d-tp1-tp4-fp4-8k1k"
22
model:
33
path: "nvidia/MiniMax-M3-NVFP4"
4-
container: "vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
55
precision: "fp4"
66
resources:
77
gpu_type: "b300"

benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/1p1d-tp1-tp8-8k1k.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: "minimax-m3-vllm-disagg-b300-1p1d-tp1-tp8-fp4-8k1k"
22
model:
33
path: "nvidia/MiniMax-M3-NVFP4"
4-
container: "vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
55
precision: "fp4"
66
resources:
77
gpu_type: "b300"
@@ -27,7 +27,6 @@ backend:
2727
decode_environment:
2828
VLLM_FLOAT32_MATMUL_PRECISION: high
2929
UCX_TLS: "cuda_copy,rc"
30-
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
3130
vllm_config:
3231
prefill:
3332
no-enable-flashinfer-autotune: true

benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/2p1d-tp1-tp4-8k1k.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: "minimax-m3-vllm-disagg-b300-2p1d-tp1-tp4-fp4-8k1k"
22
model:
33
path: "nvidia/MiniMax-M3-NVFP4"
4-
container: "vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
55
precision: "fp4"
66
resources:
77
gpu_type: "b300"

benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/3p1d-tp1-tp4-8k1k.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: "minimax-m3-vllm-disagg-b300-3p1d-tp1-tp4-fp4-8k1k"
22
model:
33
path: "nvidia/MiniMax-M3-NVFP4"
4-
container: "vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
55
precision: "fp4"
66
resources:
77
gpu_type: "b300"
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: "minimax-m3-vllm-disagg-b300-4p1d-tp1-tep4-fp4-8k1k"
2+
model:
3+
path: "nvidia/MiniMax-M3-NVFP4"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
5+
precision: "fp4"
6+
resources:
7+
gpu_type: "b300"
8+
gpus_per_node: 8
9+
prefill_nodes: 1
10+
decode_nodes: 0
11+
prefill_workers: 4
12+
decode_workers: 1
13+
gpus_per_prefill: 1
14+
gpus_per_decode: 4
15+
dynamo:
16+
install: true
17+
version: 1.3.0.dev20260713
18+
frontend:
19+
type: dynamo
20+
enable_multiple_frontends: false
21+
backend:
22+
type: vllm
23+
connector:
24+
allow_prefill_decode_colocation: true
25+
prefill_environment:
26+
VLLM_FLOAT32_MATMUL_PRECISION: high
27+
UCX_TLS: "cuda_copy,rc"
28+
decode_environment:
29+
VLLM_FLOAT32_MATMUL_PRECISION: high
30+
UCX_TLS: "cuda_copy,rc"
31+
vllm_config:
32+
prefill:
33+
no-enable-flashinfer-autotune: true
34+
tensor-parallel-size: 1
35+
enable-expert-parallel: false
36+
trust-remote-code: true
37+
no-enable-prefix-caching: true
38+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
39+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
40+
kv-cache-dtype: fp8
41+
block-size: 128
42+
gpu-memory-utilization: 0.90
43+
max-model-len: 9472
44+
language-model-only: true
45+
stream-interval: 32
46+
enforce-eager: true
47+
max-num-batched-tokens: 8192
48+
decode:
49+
no-enable-flashinfer-autotune: true
50+
tensor-parallel-size: 4
51+
enable-expert-parallel: true
52+
trust-remote-code: true
53+
no-enable-prefix-caching: true
54+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
55+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
56+
kv-cache-dtype: fp8
57+
block-size: 128
58+
gpu-memory-utilization: 0.90
59+
max-model-len: 9472
60+
language-model-only: true
61+
stream-interval: 32
62+
max-num-seqs: 1024
63+
max-num-batched-tokens: 16384
64+
max-cudagraph-capture-size: 4096
65+
health_check:
66+
max_attempts: 360
67+
interval_seconds: 10
68+
benchmark:
69+
type: "sa-bench"
70+
isl: 8192
71+
osl: 1024
72+
concurrencies: "4096"
73+
req_rate: "inf"

benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/5p2d-tp1-dep8-8k1k.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: "minimax-m3-vllm-disagg-b300-5p2d-tp1-dep8-fp4-8k1k"
22
model:
33
path: "nvidia/MiniMax-M3-NVFP4"
4-
container: "vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
55
precision: "fp4"
66
resources:
77
gpu_type: "b300"

benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/8p2d-tp1-dep8-8k1k.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: "minimax-m3-vllm-disagg-b300-8p2d-tp1-dep8-fp4-8k1k"
22
model:
33
path: "nvidia/MiniMax-M3-NVFP4"
4-
container: "vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
55
precision: "fp4"
66
resources:
77
gpu_type: "b300"

configs/nvidia-master.yaml

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6790,7 +6790,7 @@ minimaxm3-fp8-b300-dynamo-vllm:
67906790
# baseline above. The image includes vLLM PR #46380, so no runtime patch is
67916791
# needed.
67926792
minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1:
6793-
image: vllm/vllm-openai:nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1
6793+
image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9
67946794
model: nvidia/MiniMax-M3-NVFP4
67956795
model-prefix: minimaxm3
67966796
runner: b300
@@ -6884,6 +6884,38 @@ minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1:
68846884
ep: 8
68856885
dp-attn: true
68866886

6887+
# Compare the refreshed image on a one-node max-throughput topology: four
6888+
# TP1 prefills colocated with one TEP4 decode worker.
6889+
minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1-tep4:
6890+
image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9
6891+
model: nvidia/MiniMax-M3-NVFP4
6892+
model-prefix: minimaxm3
6893+
runner: b300
6894+
precision: fp4
6895+
framework: dynamo-vllm
6896+
router: { name: dynamo-router, version: "1.3.0.dev20260713" }
6897+
kv-p2p-transfer: nixl
6898+
multinode: true
6899+
disagg: true
6900+
scenarios:
6901+
fixed-seq-len:
6902+
- isl: 8192
6903+
osl: 1024
6904+
search-space:
6905+
- conc-list: [4096]
6906+
prefill:
6907+
num-worker: 4
6908+
tp: 1
6909+
ep: 1
6910+
dp-attn: false
6911+
additional-settings:
6912+
- "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/4p1d-tp1-tep4-8k1k.yaml"
6913+
decode:
6914+
num-worker: 1
6915+
tp: 4
6916+
ep: 4
6917+
dp-attn: false
6918+
68876919
# Preserve the previously proven max-throughput point exactly, while keeping
68886920
# it separate from the legacy mixed 1k1k/8k1k entry so 1k1k is not rerun.
68896921
minimaxm3-fp4-b300-dynamo-vllm-8k1k-legacy-max-tput:

perf-changelog.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5129,3 +5129,12 @@
51295129
- "Re-sweep dsv4-fp4-mi355x-atom-mtp on latest atom-dev nightly (nightly_202607231538, was atom0.1.3 release). Align ATOM official MTP config (models.json): MTP3 dp-off conc 4-256 + DPA MTP3 (dp-attn) conc 32-1024 (added c32 dp-on; tp4 tried but removed — tp4+MTP+dp-on OOMs, KV budget negative). prefill-only TBO (--enable-tbo, argparse const=prefill so enable_tbo_decode=False) on dp-attn cells at conc>=256 (measured crossover run 30257759947 vs non-TBO 30238071409: TBO -10~14% output tput at c64/c128 but +8~14% at c256+; MTP removes low-conc latency so TBO overlap there is pure overhead); MTP-safe because only decode-TBO (--enable-tbo all) drops spec_decode_metadata. max_num_seqs=conc on dp-on cells and conc>=64 to avoid OOM. bench keeps --dsv4 (InferenceX bench uses encoding_dsv4.py; DSv4-Pro has no jinja chat_template). Fixed benchmark_lib source path (../ -> ../../)."
51305130
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2345
51315131

5132+
- config-keys:
5133+
- minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1
5134+
- minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1-tep4
5135+
description:
5136+
- "Update the non-speculative MiniMax-M3 NVFP4 B300 8k1k disaggregated vLLM image from nightly-2dfaae752b4db0d43cfc0715c780e33be030d0f1 to nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
5137+
- "Remove VLLM_FLASHINFER_ALLREDUCE_BACKEND=trtllm from the 1P1D TP1-prefill/TP8-decode recipe; retain the existing FP8 indexer KV cache configuration"
5138+
- "Add a one-node 4P1D TP1-prefill/TEP4-decode concurrency-4096 point on the refreshed image while preserving the legacy 4P2D DEP2-prefill/TEP4-decode point unchanged"
5139+
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2310
5140+

0 commit comments

Comments
 (0)