Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
90121f6
feat: add MiniMax M3 NVFP4 B200 Dynamo vLLM disaggregated EAGLE3 recipes
xinli-sw Jul 30, 2026
3bcb1e8
chore: fill perf-changelog pr-link for minimaxm3-fp4-b200-dynamo-vllm…
xinli-sw Jul 30, 2026
356d87e
fix: update B200 fp4 MTP image to vllm/vllm-openai:v0.26.0
xinli-sw Jul 30, 2026
78c78a2
fix: update B200 fp4 MTP image to nightly-6f91edf96d3f3272945809c0470…
xinli-sw Jul 31, 2026
de37c93
merge main, re-append changelog
xinli-sw Jul 31, 2026
9aa51d9
restore mtp recipes, switch 2xDEP2 prefill to 1xDEP4
xinli-sw Jul 31, 2026
d342b5a
Merge remote-tracking branch 'origin/main' into feat/minimaxm3-fp4-b2…
xinli-sw Aug 1, 2026
ad50a25
redesign B200 MTP sweep: 1P DEP4 prefill, 1D/2D/4D x TP4/TP8 decode, …
xinli-sw Aug 1, 2026
bb30008
runner: b200-new
xinli-sw Aug 1, 2026
769953d
revert runner to b200-multinode
xinli-sw Aug 1, 2026
8149988
upgrade non-MTP B200 disagg prefill from DEP2 to DEP4 (4 GPUs per ser…
xinli-sw Aug 2, 2026
f6ce556
bump dynamo to 1.3.0.dev20260713
xinli-sw Aug 2, 2026
4dadc90
remove allow_prefill_decode_colocation from B200 MTP recipes (OOM fix)
xinli-sw Aug 2, 2026
41dee2b
add max-num-seqs: 256 to prefill to fix sampler warmup OOM
xinli-sw Aug 2, 2026
5cf507c
enforce-eager on prefill to free CUDA graph memory
xinli-sw Aug 2, 2026
95cbff8
Merge remote-tracking branch 'origin/main' into feat/minimaxm3-fp4-b2…
xinli-sw Aug 2, 2026
dd15e1e
set decode max-num-seqs and max-cudagraph = conc/total_decode_gpus
xinli-sw Aug 2, 2026
bf68d84
Merge remote-tracking branch 'origin/main' into feat/minimaxm3-fp4-b2…
xinli-sw Aug 2, 2026
b5ccd41
remove max-cudagraph-capture-size from prefill (using enforce-eager)
xinli-sw Aug 2, 2026
79b11d0
Merge branch 'main' into feat/minimaxm3-fp4-b200-dynamo-vllm-mtp-dayzero
xinli-sw Aug 2, 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,94 @@
name: "minimax-m3-vllm-disagg-b200-1p1d-dep2-tp4-fp4-8k1k-eagle3"

model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2"
precision: fp4

resources:
gpu_type: b200
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 0
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
allow_prefill_decode_colocation_across_nodes: true

prefill_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

decode_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

vllm_config:
prefill:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 1
pipeline-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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}'
stream-interval: 32
max-cudagraph-capture-size: 2048
max-num-batched-tokens: 16384

decode:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 4
pipeline-parallel-size: 1
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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}'
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
req_rate: inf
num_warmup_mult: 0
random_range_ratio: 0.8
use_chat_template: true
concurrencies: "64"
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: "minimax-m3-vllm-disagg-b200-1p2d-dep2-tp4-fp4-8k1k-eagle3"

model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2"
precision: fp4

resources:
gpu_type: b200
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 1
prefill_workers: 1
decode_workers: 2
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
allow_prefill_decode_colocation_across_nodes: true

prefill_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

decode_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

vllm_config:
prefill:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 1
pipeline-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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}'
stream-interval: 32
max-cudagraph-capture-size: 2048
max-num-batched-tokens: 16384

decode:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 4
pipeline-parallel-size: 1
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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}'
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
req_rate: inf
num_warmup_mult: 0
random_range_ratio: 0.8
use_chat_template: true
concurrencies: "4x32x64"
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: "minimax-m3-vllm-disagg-b200-1p4d-dep2-tp4-fp4-8k1k-eagle3"

model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2"
precision: fp4

resources:
gpu_type: b200
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 2
prefill_workers: 1
decode_workers: 4
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
allow_prefill_decode_colocation_across_nodes: true

prefill_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

decode_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

vllm_config:
prefill:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 1
pipeline-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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}'
stream-interval: 32
max-cudagraph-capture-size: 2048
max-num-batched-tokens: 16384

decode:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 4
pipeline-parallel-size: 1
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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}'
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
req_rate: inf
num_warmup_mult: 0
random_range_ratio: 0.8
use_chat_template: true
concurrencies: "4x8x64"
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: "minimax-m3-vllm-disagg-b200-1p6d-dep2-tp4-fp4-8k1k-eagle3"

model:
path: "nvidia/MiniMax-M3-NVFP4"
container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2"
precision: fp4

resources:
gpu_type: b200
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 3
prefill_workers: 1
decode_workers: 6
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
allow_prefill_decode_colocation_across_nodes: true

prefill_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

decode_environment:
VLLM_FLOAT32_MATMUL_PRECISION: high
VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm
UCX_TLS: cuda_copy,cuda_ipc,rc

vllm_config:
prefill:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 1
pipeline-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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}'
stream-interval: 32
max-cudagraph-capture-size: 2048
max-num-batched-tokens: 16384

decode:
no-enable-flashinfer-autotune: true
tensor-parallel-size: 4
pipeline-parallel-size: 1
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"}'
block-size: 128
gpu-memory-utilization: 0.95
max-model-len: 9472
language-model-only: true
speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}'
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
req_rate: inf
num_warmup_mult: 0
random_range_ratio: 0.8
use_chat_template: true
concurrencies: "24x48"
Loading
Loading