Skip to content

Commit 91b7467

Browse files
[NV] feat(minimaxm3): add B200 disaggregated configs / [NV] feat(minimaxm3):新增 B200 分离式配置 (#2230)
* feat(minimaxm3): add B200 spread-worker CI configs * fix(minimaxm3): reserve nodes for spread workers * feat(minimaxm3): use selective worker placement * new * update ucx configs * remove srt-slurm-placement branch checkout; rename spread_decode_workers to spread_workers * remove prefill_workers_per_node from minimax-m3 b200-fp4 disagg configs * fix prefill_nodes to match prefill_workers for spread_workers topology * revert b300-fp4 mtp configs to original (no image/UCX changes needed) * update minimaxm3-fp4-b200-dynamo-vllm image in nvidia-master.yaml * perf-changelog: correct minimaxm3-fp4-b200-dynamo-vllm image string [skip-sweep] The config and all six b200-fp4 recipes pin vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9, but the changelog entry still cited the pre-bump cu129-nightly-8e981630c9 tag. Documentation-only fix; no benchmark or config behavior changes. * chore: refresh PR #2230 for sweep reuse [skip-sweep] --------- Co-authored-by: Ankur-singh <ankusingh@nvidia.com>
1 parent 7a428f8 commit 91b7467

9 files changed

Lines changed: 798 additions & 2 deletions

File tree

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: "minimax-m3-vllm-disagg-b200-1p1d-fp4-dep2-tp4-8k1k"
2+
model:
3+
path: "nvidia/MiniMax-M3-NVFP4"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
5+
precision: "fp4"
6+
resources:
7+
gpu_type: "b200"
8+
gpus_per_node: 8
9+
prefill_nodes: 1
10+
decode_nodes: 1
11+
prefill_workers: 1
12+
decode_workers: 1
13+
gpus_per_prefill: 2
14+
gpus_per_decode: 4
15+
dynamo: {install: true, version: 1.3.0.dev20260710}
16+
frontend: {type: dynamo, enable_multiple_frontends: false}
17+
backend:
18+
type: vllm
19+
connector: null
20+
allow_prefill_decode_colocation: true
21+
prefill_environment: {VLLM_FLOAT32_MATMUL_PRECISION: high, UCX_TCP_AF_PRIO: "inet"}
22+
decode_environment: {VLLM_FLOAT32_MATMUL_PRECISION: high, UCX_TCP_AF_PRIO: "inet"}
23+
vllm_config:
24+
prefill:
25+
served-model-name: nvidia/MiniMax-M3-NVFP4
26+
no-enable-flashinfer-autotune: true
27+
tensor-parallel-size: 1
28+
data-parallel-size: 2
29+
data-parallel-rpc-port: 13345
30+
enable-expert-parallel: true
31+
trust-remote-code: true
32+
no-enable-prefix-caching: true
33+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
34+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
35+
kv-cache-dtype: fp8
36+
block-size: 128
37+
gpu-memory-utilization: 0.90
38+
max-model-len: 9472
39+
language-model-only: true
40+
stream-interval: 32
41+
max-cudagraph-capture-size: 2048
42+
max-num-batched-tokens: 16384
43+
decode:
44+
served-model-name: nvidia/MiniMax-M3-NVFP4
45+
no-enable-flashinfer-autotune: true
46+
tensor-parallel-size: 4
47+
enable-expert-parallel: false
48+
trust-remote-code: true
49+
no-enable-prefix-caching: true
50+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
51+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
52+
kv-cache-dtype: fp8
53+
block-size: 128
54+
gpu-memory-utilization: 0.90
55+
max-model-len: 9472
56+
language-model-only: true
57+
stream-interval: 32
58+
max-num-seqs: 1024
59+
max-num-batched-tokens: 16384
60+
max-cudagraph-capture-size: 2048
61+
health_check: {max_attempts: 360, interval_seconds: 10}
62+
benchmark: {type: "sa-bench", isl: 8192, osl: 1024, random_range_ratio: 0.8, concurrencies: "1x4x8x16", req_rate: "inf"}
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
name: "minimax-m3-vllm-disagg-b200-1p2d-fp4-dep2-tp4-c64-8k1k"
2+
model:
3+
path: "nvidia/MiniMax-M3-NVFP4"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
5+
precision: "fp4"
6+
resources:
7+
gpu_type: "b200"
8+
prefill_nodes: 1
9+
prefill_workers: 1
10+
gpus_per_prefill: 2
11+
decode_nodes: 2
12+
decode_workers: 2
13+
spread_workers: true
14+
gpus_per_decode: 4
15+
gpus_per_node: 8
16+
dynamo: {install: true, version: 1.3.0.dev20260710}
17+
frontend:
18+
type: dynamo
19+
enable_multiple_frontends: false
20+
args:
21+
dyn-chat-processor: vllm
22+
reasoning-parser: minimax_m3
23+
backend:
24+
type: vllm
25+
connector: null
26+
prefill_environment:
27+
VLLM_USE_DEEP_GEMM: '1'
28+
VLLM_SKIP_P2P_CHECK: '1'
29+
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
30+
NVIDIA_GDRCOPY: '1'
31+
PYTHONUNBUFFERED: '1'
32+
VLLM_LOG_STATS_INTERVAL: '1'
33+
NVSHMEM_IB_ENABLE_IBGDA: '1'
34+
NCCL_CUMEM_ENABLE: '1'
35+
NCCL_MNNVL_ENABLE: '1'
36+
NCCL_NVLS_ENABLE: '1'
37+
NCCL_TIMEOUT: '1800'
38+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
39+
VLLM_USE_FLASHINFER_MOE_FP4: '1'
40+
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
41+
VLLM_USE_NCCL_SYMM_MEM: '1'
42+
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
43+
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
44+
VLLM_FLOAT32_MATMUL_PRECISION: high
45+
UCX_TCP_AF_PRIO: "inet"
46+
decode_environment:
47+
VLLM_USE_DEEP_GEMM: '1'
48+
VLLM_SKIP_P2P_CHECK: '1'
49+
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
50+
NVIDIA_GDRCOPY: '1'
51+
PYTHONUNBUFFERED: '1'
52+
VLLM_LOG_STATS_INTERVAL: '1'
53+
NVSHMEM_IB_ENABLE_IBGDA: '1'
54+
NCCL_CUMEM_ENABLE: '1'
55+
NCCL_MNNVL_ENABLE: '1'
56+
NCCL_NVLS_ENABLE: '1'
57+
NCCL_TIMEOUT: '1800'
58+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
59+
VLLM_USE_FLASHINFER_MOE_FP4: '1'
60+
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
61+
VLLM_USE_NCCL_SYMM_MEM: '1'
62+
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
63+
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
64+
VLLM_MOE_DP_CHUNK_SIZE: '384'
65+
VLLM_SHARED_EXPERTS_STREAM_TOKEN_THRESHOLD: '8192'
66+
VLLM_FLOAT32_MATMUL_PRECISION: high
67+
UCX_TCP_AF_PRIO: "inet"
68+
vllm_config:
69+
prefill:
70+
tensor-parallel-size: 1
71+
pipeline-parallel-size: 1
72+
enable-expert-parallel: true
73+
data-parallel-size: 2
74+
data-parallel-rpc-port: 13345
75+
data-parallel-hybrid-lb: true
76+
max-model-len: 9472
77+
max-num-seqs: 16
78+
enforce-eager: true
79+
gpu-memory-utilization: 0.9
80+
max-num-batched-tokens: 16384
81+
no-enable-chunked-prefill: true
82+
kv-cache-dtype: fp8
83+
async-scheduling: true
84+
no-enable-prefix-caching: true
85+
trust-remote-code: true
86+
served-model-name: nvidia/MiniMax-M3-NVFP4
87+
no-enable-flashinfer-autotune: true
88+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
89+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
90+
block-size: 128
91+
language-model-only: true
92+
stream-interval: 32
93+
max-cudagraph-capture-size: 2048
94+
decode:
95+
tensor-parallel-size: 4
96+
pipeline-parallel-size: 1
97+
enable-expert-parallel: false
98+
max-model-len: 9472
99+
max-num-seqs: 32
100+
gpu-memory-utilization: 0.9
101+
max-num-batched-tokens: 16384
102+
max-cudagraph-capture-size: 2048
103+
compilation-config: '{"cudagraph_mode":"FULL_DECODE_ONLY","custom_ops":["+rms_norm"],"pass_config":{}}'
104+
kv-cache-dtype: fp8
105+
all2all-backend: deepep_low_latency
106+
async-scheduling: true
107+
stream-interval: 32
108+
enable-dbo: true
109+
dbo-decode-token-threshold: 32
110+
no-enable-prefix-caching: true
111+
trust-remote-code: true
112+
served-model-name: nvidia/MiniMax-M3-NVFP4
113+
no-enable-flashinfer-autotune: true
114+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
115+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
116+
block-size: 128
117+
language-model-only: true
118+
health_check: {max_attempts: 360, interval_seconds: 10}
119+
benchmark:
120+
type: "sa-bench"
121+
isl: 8192
122+
osl: 1024
123+
random_range_ratio: 0.8
124+
concurrencies: "64"
125+
req_rate: "inf"
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
name: "minimax-m3-vllm-disagg-b200-2p2d-fp4-dep2-tp4-c128-8k1k"
2+
model:
3+
path: "nvidia/MiniMax-M3-NVFP4"
4+
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
5+
precision: "fp4"
6+
resources:
7+
gpu_type: "b200"
8+
prefill_nodes: 2
9+
prefill_workers: 2
10+
gpus_per_prefill: 2
11+
decode_nodes: 2
12+
decode_workers: 2
13+
spread_workers: true
14+
gpus_per_decode: 4
15+
gpus_per_node: 8
16+
dynamo: {install: true, version: 1.3.0.dev20260710}
17+
frontend:
18+
type: dynamo
19+
enable_multiple_frontends: false
20+
args:
21+
dyn-chat-processor: vllm
22+
reasoning-parser: minimax_m3
23+
backend:
24+
type: vllm
25+
connector: null
26+
prefill_environment:
27+
VLLM_USE_DEEP_GEMM: '1'
28+
VLLM_SKIP_P2P_CHECK: '1'
29+
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
30+
NVIDIA_GDRCOPY: '1'
31+
PYTHONUNBUFFERED: '1'
32+
VLLM_LOG_STATS_INTERVAL: '1'
33+
NVSHMEM_IB_ENABLE_IBGDA: '1'
34+
NCCL_CUMEM_ENABLE: '1'
35+
NCCL_MNNVL_ENABLE: '1'
36+
NCCL_NVLS_ENABLE: '1'
37+
NCCL_TIMEOUT: '1800'
38+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
39+
VLLM_USE_FLASHINFER_MOE_FP4: '1'
40+
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
41+
VLLM_USE_NCCL_SYMM_MEM: '1'
42+
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
43+
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
44+
VLLM_FLOAT32_MATMUL_PRECISION: high
45+
UCX_TCP_AF_PRIO: "inet"
46+
decode_environment:
47+
VLLM_USE_DEEP_GEMM: '1'
48+
VLLM_SKIP_P2P_CHECK: '1'
49+
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
50+
NVIDIA_GDRCOPY: '1'
51+
PYTHONUNBUFFERED: '1'
52+
VLLM_LOG_STATS_INTERVAL: '1'
53+
NVSHMEM_IB_ENABLE_IBGDA: '1'
54+
NCCL_CUMEM_ENABLE: '1'
55+
NCCL_MNNVL_ENABLE: '1'
56+
NCCL_NVLS_ENABLE: '1'
57+
NCCL_TIMEOUT: '1800'
58+
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
59+
VLLM_USE_FLASHINFER_MOE_FP4: '1'
60+
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
61+
VLLM_USE_NCCL_SYMM_MEM: '1'
62+
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
63+
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
64+
VLLM_MOE_DP_CHUNK_SIZE: '384'
65+
VLLM_SHARED_EXPERTS_STREAM_TOKEN_THRESHOLD: '8192'
66+
VLLM_FLOAT32_MATMUL_PRECISION: high
67+
UCX_TCP_AF_PRIO: "inet"
68+
vllm_config:
69+
prefill:
70+
tensor-parallel-size: 1
71+
pipeline-parallel-size: 1
72+
enable-expert-parallel: true
73+
data-parallel-size: 2
74+
data-parallel-rpc-port: 13345
75+
data-parallel-hybrid-lb: true
76+
max-model-len: 9472
77+
max-num-seqs: 16
78+
enforce-eager: true
79+
gpu-memory-utilization: 0.9
80+
max-num-batched-tokens: 16384
81+
no-enable-chunked-prefill: true
82+
kv-cache-dtype: fp8
83+
async-scheduling: true
84+
no-enable-prefix-caching: true
85+
trust-remote-code: true
86+
served-model-name: nvidia/MiniMax-M3-NVFP4
87+
no-enable-flashinfer-autotune: true
88+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
89+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
90+
block-size: 128
91+
language-model-only: true
92+
stream-interval: 32
93+
max-cudagraph-capture-size: 2048
94+
decode:
95+
tensor-parallel-size: 4
96+
pipeline-parallel-size: 1
97+
enable-expert-parallel: false
98+
max-model-len: 9472
99+
max-num-seqs: 64
100+
gpu-memory-utilization: 0.9
101+
max-num-batched-tokens: 16384
102+
max-cudagraph-capture-size: 2048
103+
compilation-config: '{"cudagraph_mode":"FULL_DECODE_ONLY","custom_ops":["+rms_norm"],"pass_config":{}}'
104+
kv-cache-dtype: fp8
105+
all2all-backend: deepep_low_latency
106+
async-scheduling: true
107+
stream-interval: 32
108+
enable-dbo: true
109+
dbo-decode-token-threshold: 32
110+
no-enable-prefix-caching: true
111+
trust-remote-code: true
112+
served-model-name: nvidia/MiniMax-M3-NVFP4
113+
no-enable-flashinfer-autotune: true
114+
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
115+
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
116+
block-size: 128
117+
language-model-only: true
118+
health_check: {max_attempts: 360, interval_seconds: 10}
119+
benchmark:
120+
type: "sa-bench"
121+
isl: 8192
122+
osl: 1024
123+
random_range_ratio: 0.8
124+
concurrencies: "128"
125+
req_rate: "inf"

0 commit comments

Comments
 (0)