Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e2e69c4
feat(minimaxm3): add B200 spread-worker CI configs
xinli-sw Jul 18, 2026
39266bb
fix(minimaxm3): reserve nodes for spread workers
xinli-sw Jul 19, 2026
c7d8fe2
feat(minimaxm3): use selective worker placement
xinli-sw Jul 20, 2026
e7ed0a8
Merge remote-tracking branch 'origin/main' into feat/minimaxm3-b200-v…
xinli-sw Jul 20, 2026
2d0622f
new
xinli-sw Jul 22, 2026
eafd384
merge: sync origin/main
xinli-sw Jul 22, 2026
4a6fe04
merge: sync updated origin/main
xinli-sw Jul 22, 2026
462a7fe
update ucx configs
xinli-sw Jul 23, 2026
94db9f4
Merge branch 'main' into feat/minimaxm3-b200-vllm-disagg
xinli-sw Jul 23, 2026
285eb6b
merge: sync origin/main; bump vllm image; fix UCX env for minimax-m3 …
xinli-sw Jul 23, 2026
38c4ef4
merge: sync origin/feat/minimaxm3-b200-vllm-disagg; resolve perf-chan…
xinli-sw Jul 23, 2026
f97abea
remove srt-slurm-placement branch checkout; rename spread_decode_work…
xinli-sw Jul 24, 2026
244fa9a
remove prefill_workers_per_node from minimax-m3 b200-fp4 disagg configs
xinli-sw Jul 24, 2026
e427fb9
fix prefill_nodes to match prefill_workers for spread_workers topology
xinli-sw Jul 24, 2026
2f2559a
revert b300-fp4 mtp configs to original (no image/UCX changes needed)
xinli-sw Jul 24, 2026
6ebf4ac
update minimaxm3-fp4-b200-dynamo-vllm image in nvidia-master.yaml
xinli-sw Jul 24, 2026
3f245da
perf-changelog: correct minimaxm3-fp4-b200-dynamo-vllm image string […
Ankur-singh Jul 25, 2026
2d43a0d
Merge origin/main, resolve launch_b200-dgxc.sh, re-append PR #2230 pe…
Ankur-singh Jul 29, 2026
01693d7
chore: refresh PR #2230 for sweep reuse [skip-sweep]
Ankur-singh Jul 29, 2026
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
@@ -0,0 +1,62 @@
name: "minimax-m3-vllm-disagg-b200-1p1d-fp4-dep2-tp4-8k1k"
model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
precision: "fp4"
resources:
gpu_type: "b200"
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 1
prefill_workers: 1
decode_workers: 1
gpus_per_prefill: 2
gpus_per_decode: 4
dynamo: {install: true, version: 1.3.0.dev20260710}
frontend: {type: dynamo, enable_multiple_frontends: false}
backend:
type: vllm
connector: null
allow_prefill_decode_colocation: true
prefill_environment: {VLLM_FLOAT32_MATMUL_PRECISION: high, UCX_TCP_AF_PRIO: "inet"}
decode_environment: {VLLM_FLOAT32_MATMUL_PRECISION: high, UCX_TCP_AF_PRIO: "inet"}
vllm_config:
prefill:
served-model-name: nvidia/MiniMax-M3-NVFP4
no-enable-flashinfer-autotune: true
tensor-parallel-size: 1
data-parallel-size: 2
data-parallel-rpc-port: 13345
enable-expert-parallel: true
trust-remote-code: true
no-enable-prefix-caching: true
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
kv-cache-dtype: fp8
block-size: 128
gpu-memory-utilization: 0.90
max-model-len: 9472
language-model-only: true
stream-interval: 32
max-cudagraph-capture-size: 2048
max-num-batched-tokens: 16384
decode:
served-model-name: nvidia/MiniMax-M3-NVFP4
no-enable-flashinfer-autotune: true
tensor-parallel-size: 4
enable-expert-parallel: false
trust-remote-code: true
no-enable-prefix-caching: true
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
kv-cache-dtype: fp8
block-size: 128
gpu-memory-utilization: 0.90
max-model-len: 9472
language-model-only: true
stream-interval: 32
max-num-seqs: 1024
max-num-batched-tokens: 16384
max-cudagraph-capture-size: 2048
health_check: {max_attempts: 360, interval_seconds: 10}
benchmark: {type: "sa-bench", isl: 8192, osl: 1024, random_range_ratio: 0.8, concurrencies: "1x4x8x16", req_rate: "inf"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: "minimax-m3-vllm-disagg-b200-1p2d-fp4-dep2-tp4-c64-8k1k"
model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
precision: "fp4"
resources:
gpu_type: "b200"
prefill_nodes: 1
prefill_workers: 1
gpus_per_prefill: 2
decode_nodes: 2
decode_workers: 2
spread_workers: true
gpus_per_decode: 4
gpus_per_node: 8
dynamo: {install: true, version: 1.3.0.dev20260710}
frontend:
type: dynamo
enable_multiple_frontends: false
args:
dyn-chat-processor: vllm
reasoning-parser: minimax_m3
backend:
type: vllm
connector: null
prefill_environment:
VLLM_USE_DEEP_GEMM: '1'
VLLM_SKIP_P2P_CHECK: '1'
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
NVIDIA_GDRCOPY: '1'
PYTHONUNBUFFERED: '1'
VLLM_LOG_STATS_INTERVAL: '1'
NVSHMEM_IB_ENABLE_IBGDA: '1'
NCCL_CUMEM_ENABLE: '1'
NCCL_MNNVL_ENABLE: '1'
NCCL_NVLS_ENABLE: '1'
NCCL_TIMEOUT: '1800'
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
VLLM_USE_FLASHINFER_MOE_FP4: '1'
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
VLLM_USE_NCCL_SYMM_MEM: '1'
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
VLLM_FLOAT32_MATMUL_PRECISION: high
UCX_TCP_AF_PRIO: "inet"
decode_environment:
VLLM_USE_DEEP_GEMM: '1'
VLLM_SKIP_P2P_CHECK: '1'
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
NVIDIA_GDRCOPY: '1'
PYTHONUNBUFFERED: '1'
VLLM_LOG_STATS_INTERVAL: '1'
NVSHMEM_IB_ENABLE_IBGDA: '1'
NCCL_CUMEM_ENABLE: '1'
NCCL_MNNVL_ENABLE: '1'
NCCL_NVLS_ENABLE: '1'
NCCL_TIMEOUT: '1800'
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
VLLM_USE_FLASHINFER_MOE_FP4: '1'
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
VLLM_USE_NCCL_SYMM_MEM: '1'
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
VLLM_MOE_DP_CHUNK_SIZE: '384'
VLLM_SHARED_EXPERTS_STREAM_TOKEN_THRESHOLD: '8192'
VLLM_FLOAT32_MATMUL_PRECISION: high
UCX_TCP_AF_PRIO: "inet"
vllm_config:
prefill:
tensor-parallel-size: 1
pipeline-parallel-size: 1
enable-expert-parallel: true
data-parallel-size: 2
data-parallel-rpc-port: 13345
data-parallel-hybrid-lb: true
max-model-len: 9472
max-num-seqs: 16
enforce-eager: true
gpu-memory-utilization: 0.9
max-num-batched-tokens: 16384
no-enable-chunked-prefill: true
kv-cache-dtype: fp8
async-scheduling: true
no-enable-prefix-caching: true
trust-remote-code: true
served-model-name: nvidia/MiniMax-M3-NVFP4
no-enable-flashinfer-autotune: true
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
block-size: 128
language-model-only: true
stream-interval: 32
max-cudagraph-capture-size: 2048
decode:
tensor-parallel-size: 4
pipeline-parallel-size: 1
enable-expert-parallel: false
max-model-len: 9472
max-num-seqs: 32
gpu-memory-utilization: 0.9
max-num-batched-tokens: 16384
max-cudagraph-capture-size: 2048
compilation-config: '{"cudagraph_mode":"FULL_DECODE_ONLY","custom_ops":["+rms_norm"],"pass_config":{}}'
kv-cache-dtype: fp8
all2all-backend: deepep_low_latency
async-scheduling: true
stream-interval: 32
enable-dbo: true
dbo-decode-token-threshold: 32
no-enable-prefix-caching: true
trust-remote-code: true
served-model-name: nvidia/MiniMax-M3-NVFP4
no-enable-flashinfer-autotune: true
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
block-size: 128
language-model-only: true
health_check: {max_attempts: 360, interval_seconds: 10}
benchmark:
type: "sa-bench"
isl: 8192
osl: 1024
random_range_ratio: 0.8
concurrencies: "64"
req_rate: "inf"
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: "minimax-m3-vllm-disagg-b200-2p2d-fp4-dep2-tp4-c128-8k1k"
model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9"
precision: "fp4"
resources:
gpu_type: "b200"
prefill_nodes: 2
prefill_workers: 2
gpus_per_prefill: 2
decode_nodes: 2
decode_workers: 2
spread_workers: true
gpus_per_decode: 4
gpus_per_node: 8
dynamo: {install: true, version: 1.3.0.dev20260710}
frontend:
type: dynamo
enable_multiple_frontends: false
args:
dyn-chat-processor: vllm
reasoning-parser: minimax_m3
backend:
type: vllm
connector: null
prefill_environment:
VLLM_USE_DEEP_GEMM: '1'
VLLM_SKIP_P2P_CHECK: '1'
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
NVIDIA_GDRCOPY: '1'
PYTHONUNBUFFERED: '1'
VLLM_LOG_STATS_INTERVAL: '1'
NVSHMEM_IB_ENABLE_IBGDA: '1'
NCCL_CUMEM_ENABLE: '1'
NCCL_MNNVL_ENABLE: '1'
NCCL_NVLS_ENABLE: '1'
NCCL_TIMEOUT: '1800'
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
VLLM_USE_FLASHINFER_MOE_FP4: '1'
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
VLLM_USE_NCCL_SYMM_MEM: '1'
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
VLLM_FLOAT32_MATMUL_PRECISION: high
UCX_TCP_AF_PRIO: "inet"
decode_environment:
VLLM_USE_DEEP_GEMM: '1'
VLLM_SKIP_P2P_CHECK: '1'
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: '1'
NVIDIA_GDRCOPY: '1'
PYTHONUNBUFFERED: '1'
VLLM_LOG_STATS_INTERVAL: '1'
NVSHMEM_IB_ENABLE_IBGDA: '1'
NCCL_CUMEM_ENABLE: '1'
NCCL_MNNVL_ENABLE: '1'
NCCL_NVLS_ENABLE: '1'
NCCL_TIMEOUT: '1800'
TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: '1800'
VLLM_USE_FLASHINFER_MOE_FP4: '1'
VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: '0'
VLLM_USE_NCCL_SYMM_MEM: '1'
VLLM_NIXL_SIDE_CHANNEL_PORT: '5600'
VLLM_NIXL_ABORT_REQUEST_TIMEOUT: '300'
VLLM_MOE_DP_CHUNK_SIZE: '384'
VLLM_SHARED_EXPERTS_STREAM_TOKEN_THRESHOLD: '8192'
VLLM_FLOAT32_MATMUL_PRECISION: high
UCX_TCP_AF_PRIO: "inet"
vllm_config:
prefill:
tensor-parallel-size: 1
pipeline-parallel-size: 1
enable-expert-parallel: true
data-parallel-size: 2
data-parallel-rpc-port: 13345
data-parallel-hybrid-lb: true
max-model-len: 9472
max-num-seqs: 16
enforce-eager: true
gpu-memory-utilization: 0.9
max-num-batched-tokens: 16384
no-enable-chunked-prefill: true
kv-cache-dtype: fp8
async-scheduling: true
no-enable-prefix-caching: true
trust-remote-code: true
served-model-name: nvidia/MiniMax-M3-NVFP4
no-enable-flashinfer-autotune: true
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
block-size: 128
language-model-only: true
stream-interval: 32
max-cudagraph-capture-size: 2048
decode:
tensor-parallel-size: 4
pipeline-parallel-size: 1
enable-expert-parallel: false
max-model-len: 9472
max-num-seqs: 64
gpu-memory-utilization: 0.9
max-num-batched-tokens: 16384
max-cudagraph-capture-size: 2048
compilation-config: '{"cudagraph_mode":"FULL_DECODE_ONLY","custom_ops":["+rms_norm"],"pass_config":{}}'
kv-cache-dtype: fp8
all2all-backend: deepep_low_latency
async-scheduling: true
stream-interval: 32
enable-dbo: true
dbo-decode-token-threshold: 32
no-enable-prefix-caching: true
trust-remote-code: true
served-model-name: nvidia/MiniMax-M3-NVFP4
no-enable-flashinfer-autotune: true
kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}'
attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}'
block-size: 128
language-model-only: true
health_check: {max_attempts: 360, interval_seconds: 10}
benchmark:
type: "sa-bench"
isl: 8192
osl: 1024
random_range_ratio: 0.8
concurrencies: "128"
req_rate: "inf"
Loading