From 0ced54b8d5da8316f89dacfd5d5294d1f7a757cf Mon Sep 17 00:00:00 2001 From: hjjq <50634613+hjjq@users.noreply.github.com> Date: Mon, 13 Jul 2026 15:43:46 -0700 Subject: [PATCH 1/3] feat(config): add MiniMax M3 B300 disagg EAGLE Pareto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中文:新增 MiniMax M3 NVFP4 在 B300 上的 Dynamo vLLM 分离式 EAGLE Pareto 配置,并使用官方 nightly 镜像与模型名称。 --- .../8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml | 94 +++++++++++ .../8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml | 91 +++++++++++ .../8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml | 95 +++++++++++ configs/nvidia-master.yaml | 150 ++++++++++++++++++ perf-changelog.yaml | 8 + runners/launch_b300-nv.sh | 14 +- 12 files changed, 994 insertions(+), 4 deletions(-) create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..f9a74a3e77 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml @@ -0,0 +1,94 @@ +name: "minimax-m3-vllm-disagg-b300-1p1d-dep2-dep4-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: "fp4" + +resources: + gpu_type: "b300" + 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: + 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 + 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","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + data-parallel-size: 2 + data-parallel-rpc-port: 13345 + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 1 + pipeline-parallel-size: 1 + 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.9 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3","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 + data-parallel-size: 4 + data-parallel-rpc-port: 13345 +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: "64x128x256" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..a76924dd87 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p2d-tp4-tp4-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 1 + decode_workers: 2 + gpus_per_prefill: 4 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 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","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","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: "4x64x128" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml new file mode 100644 index 0000000000..838a51de4d --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p3d-tp2-tp2-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 0 + prefill_workers: 1 + decode_workers: 3 + gpus_per_prefill: 2 + gpus_per_decode: 2 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 2 + 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","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: 2 + 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","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: "64x128" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..96510a7265 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p3d-tp4-tp4-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 1 + decode_workers: 3 + gpus_per_prefill: 4 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 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","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","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: "4x48x128" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml new file mode 100644 index 0000000000..8c217e4bd8 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p4d-tp2-tp2-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 1 + decode_workers: 4 + gpus_per_prefill: 2 + gpus_per_decode: 2 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 2 + 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","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: 2 + 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","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" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..59f402c096 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p5d-tp4-tp4-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 2 + prefill_workers: 1 + decode_workers: 5 + gpus_per_prefill: 4 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 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","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","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: "40x128" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml new file mode 100644 index 0000000000..4920db0005 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p7d-tp2-tp2-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 1 + decode_workers: 7 + gpus_per_prefill: 2 + gpus_per_decode: 2 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 2 + 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","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: 2 + 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","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: "64x128" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..7cea8b05e9 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml @@ -0,0 +1,91 @@ +name: "minimax-m3-vllm-disagg-b300-1p7d-tp4-tp4-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b300 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 3 + prefill_workers: 1 + decode_workers: 7 + gpus_per_prefill: 4 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + 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: 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","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","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: "16x28x128" + diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..2d910b6df4 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml @@ -0,0 +1,95 @@ +name: "minimax-m3-vllm-disagg-b300-2p1d-dep2-dep4-fp4-8k1k-eagle3" +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: "fp4" + +resources: + gpu_type: "b300" + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 2 + 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","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: 1 + pipeline-parallel-size: 1 + data-parallel-size: 4 + 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.9 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3","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 + concurrencies: "128x256" + req_rate: "inf" + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index f90c510186..8a598e9eed 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -13163,6 +13163,156 @@ minimaxm3-fp4-b300-dynamo-vllm: ep: 8 dp-attn: false +# MiniMax-M3 NVFP4 B300 disagg EAGLE3 Pareto. These entries reproduce only +# measured nondominated 8k/1k points from the vLLM nightly campaign. +minimaxm3-fp4-b300-dynamo-vllm-mtp: + image: vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2 + model: nvidia/MiniMax-M3-NVFP4 + model-prefix: minimaxm3 + runner: b300 + precision: fp4 + framework: dynamo-vllm + router: { name: dynamo-router, version: "1.3.0.dev20260710" } + kv-p2p-transfer: nixl + multinode: true + disagg: true + scenarios: + fixed-seq-len: + - isl: 8192 + osl: 1024 + search-space: + # Pure TP4 prefill and decode workers. + - spec-decoding: "mtp" + conc-list: [4, 48, 128] + prefill: + num-worker: 1 + tp: 4 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 3 + tp: 4 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [4, 64, 128] + prefill: + num-worker: 1 + tp: 4 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 2 + tp: 4 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [16, 28, 128] + prefill: + num-worker: 1 + tp: 4 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 7 + tp: 4 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [40, 128] + prefill: + num-worker: 1 + tp: 4 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 5 + tp: 4 + ep: 1 + dp-attn: false + + # Pure TP2 prefill and decode workers. + - spec-decoding: "mtp" + conc-list: [64, 128] + prefill: + num-worker: 1 + tp: 2 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml" + decode: + num-worker: 7 + tp: 2 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [64] + prefill: + num-worker: 1 + tp: 2 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml" + decode: + num-worker: 4 + tp: 2 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [64, 128] + prefill: + num-worker: 1 + tp: 2 + ep: 1 + dp-attn: false + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml" + decode: + num-worker: 3 + tp: 2 + ep: 1 + dp-attn: false + + # Data-parallel expert workers: DEP2 prefill and DEP4 decode. + - spec-decoding: "mtp" + conc-list: [64, 128, 256] + prefill: + num-worker: 1 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml" + decode: + num-worker: 1 + tp: 4 + ep: 4 + dp-attn: true + - spec-decoding: "mtp" + conc-list: [128, 256] + prefill: + num-worker: 2 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml" + decode: + num-worker: 1 + tp: 4 + ep: 4 + dp-attn: true + # MiniMax-M3 GB300 disagg sweep — refreshed recipe set (no Marlin variants). # All prefill DEP2 (TP1 DP2 EP, 2 GPU/worker). Decode: DEP4, TEP8, DEP8, TEP4. # 4 GPU/node (GB300 NVL72). kv-cache-dtype=fp8. srun_options mem=0 required. diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 57d510dd15..13c7528687 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4750,3 +4750,11 @@ - "Image: lmsysorg/sglang:nightly-dev-cu13-20260709-074bb928" - "6 topologies across 1k/1k and 8k/1k: 1P1D TP4 STP + wide-EP (DEP4 prefill / DEP16 decode) from 1P1D up to 8P1D, recipes under benchmarks/multi_node/srt-slurm-recipes/sglang/qwen3.5/gb300-fp8/" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2137 + +- config-keys: + - minimaxm3-fp4-b300-dynamo-vllm-mtp + description: + - "Add MiniMax M3 NVFP4 B300 Dynamo vLLM disaggregated EAGLE3 Pareto configurations for the 8k/1k workload" + - "Use the commit-pinned official vLLM nightly image and NVIDIA srt-slurm main" + - "Include only measured Pareto points across TP2, TP4, and DEP2/DEP4 worker layouts" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXX diff --git a/runners/launch_b300-nv.sh b/runners/launch_b300-nv.sh index 6810ee5d85..d5bc243e90 100644 --- a/runners/launch_b300-nv.sh +++ b/runners/launch_b300-nv.sh @@ -76,15 +76,18 @@ elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "dsv4" ]]; then git checkout aflowers/vllm-gb200-v0.20.0 mkdir -p recipes/vllm/deepseek-v4 cp -rT "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/vllm/deepseek-v4" recipes/vllm/deepseek-v4 -elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "minimaxm3" && ( $PRECISION == "fp4" || $PRECISION == "fp8" ) ]]; then +elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "minimaxm3" && $PRECISION == "fp4" ]]; then + git clone --branch main --single-branch https://github.com/NVIDIA/srt-slurm.git "$SRT_REPO_DIR" + cd "$SRT_REPO_DIR" || exit 1 + mkdir -p recipes/vllm/minimax-m3 + cp -rT "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3" recipes/vllm/minimax-m3 +elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "minimaxm3" && $PRECISION == "fp8" ]]; then git clone https://github.com/NVIDIA/srt-slurm.git "$SRT_REPO_DIR" cd "$SRT_REPO_DIR" || exit 1 git checkout sa-submission-q2-2026 mkdir -p recipes/vllm/minimax-m3 cp -rT "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3" recipes/vllm/minimax-m3 - if [[ $PRECISION == "fp8" ]]; then - SRTCTL_SETUP_SCRIPT="minimax-m3-vllm-fixes.sh" - fi + SRTCTL_SETUP_SCRIPT="minimax-m3-vllm-fixes.sh" # NVIDIA/srt-slurm#38 git show 22d46ba9971615016d2339c9ffbc7b4597accfad --format= -- src/srtctl/core/ip_utils/get_node_ip.sh | git apply - || exit 1 if [[ -n "$SRTCTL_SETUP_SCRIPT" ]]; then @@ -181,6 +184,9 @@ SRTCTL_APPLY_ARGS=( -f "$CONFIG_FILE" --tags "b300,${MODEL_PREFIX},${PRECISION},${ISL}x${OSL},infmax-$(date +%Y%m%d)" ) +if [[ "$MODEL_PREFIX" == "minimaxm3" && "$PRECISION" == "fp4" ]]; then + SRTCTL_APPLY_ARGS+=(--no-preflight) +fi if [[ -n "$SRTCTL_SETUP_SCRIPT" ]]; then SRTCTL_APPLY_ARGS+=(--setup-script "$SRTCTL_SETUP_SCRIPT") fi From 28076333481131bd0a20178485e10ffcf30e0d6d Mon Sep 17 00:00:00 2001 From: hjjq <50634613+hjjq@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:08:42 -0700 Subject: [PATCH 2/3] chore(config): clean MiniMax M3 submission metadata MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中文:移除 MiniMax M3 提交配置中的注释,并更新性能变更日志的 PR 链接。 --- .../b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml | 1 - .../b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml | 1 - configs/nvidia-master.yaml | 5 ----- perf-changelog.yaml | 4 +--- 10 files changed, 1 insertion(+), 16 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml index f9a74a3e77..9a53e6fbc4 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml @@ -91,4 +91,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "64x128x256" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index a76924dd87..1302d76a91 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "4x64x128" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml index 838a51de4d..de2f0ca697 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "64x128" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml index 96510a7265..023cb23e89 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "4x48x128" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml index 8c217e4bd8..3b63a61539 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "64" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml index 59f402c096..9c3ae34a9d 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "40x128" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml index 4920db0005..0c06e9d281 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "64x128" - diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml index 7cea8b05e9..83f68cf2fb 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml @@ -88,4 +88,3 @@ benchmark: random_range_ratio: 0.8 use_chat_template: true concurrencies: "16x28x128" - diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 8a598e9eed..16bc56ec9f 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -13163,8 +13163,6 @@ minimaxm3-fp4-b300-dynamo-vllm: ep: 8 dp-attn: false -# MiniMax-M3 NVFP4 B300 disagg EAGLE3 Pareto. These entries reproduce only -# measured nondominated 8k/1k points from the vLLM nightly campaign. minimaxm3-fp4-b300-dynamo-vllm-mtp: image: vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2 model: nvidia/MiniMax-M3-NVFP4 @@ -13181,7 +13179,6 @@ minimaxm3-fp4-b300-dynamo-vllm-mtp: - isl: 8192 osl: 1024 search-space: - # Pure TP4 prefill and decode workers. - spec-decoding: "mtp" conc-list: [4, 48, 128] prefill: @@ -13239,7 +13236,6 @@ minimaxm3-fp4-b300-dynamo-vllm-mtp: ep: 1 dp-attn: false - # Pure TP2 prefill and decode workers. - spec-decoding: "mtp" conc-list: [64, 128] prefill: @@ -13283,7 +13279,6 @@ minimaxm3-fp4-b300-dynamo-vllm-mtp: ep: 1 dp-attn: false - # Data-parallel expert workers: DEP2 prefill and DEP4 decode. - spec-decoding: "mtp" conc-list: [64, 128, 256] prefill: diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 13c7528687..f5807a318d 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4755,6 +4755,4 @@ - minimaxm3-fp4-b300-dynamo-vllm-mtp description: - "Add MiniMax M3 NVFP4 B300 Dynamo vLLM disaggregated EAGLE3 Pareto configurations for the 8k/1k workload" - - "Use the commit-pinned official vLLM nightly image and NVIDIA srt-slurm main" - - "Include only measured Pareto points across TP2, TP4, and DEP2/DEP4 worker layouts" - pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXX + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2182 From 836b8dd6abd63839b0b621e800c41b64096354bd Mon Sep 17 00:00:00 2001 From: hjjq <50634613+hjjq@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:14:22 -0700 Subject: [PATCH 3/3] chore(config): use floating vLLM nightly image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中文:将 MiniMax M3 Pareto 主配置和全部配方统一改为不带提交哈希的 vLLM nightly 镜像。 --- .../b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml | 2 +- .../minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml | 2 +- configs/nvidia-master.yaml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml index 9a53e6fbc4..c239a1b98c 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p1d-dep2-dep4-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p1d-dep2-dep4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: "fp4" resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index 1302d76a91..a6dc5f9892 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p2d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml index de2f0ca697..55f620f09d 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp2-tp2-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p3d-tp2-tp2-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml index 023cb23e89..9d5425c8f3 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p3d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml index 3b63a61539..16c2d18234 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p4d-tp2-tp2-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p4d-tp2-tp2-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml index 9c3ae34a9d..db76ffabfa 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p5d-tp4-tp4-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p5d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml index 0c06e9d281..cc92ae5ca0 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp2-tp2-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p7d-tp2-tp2-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml index 83f68cf2fb..5453387a9f 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/1p7d-tp4-tp4-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-1p7d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: fp4 resources: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml index 2d910b6df4..5ac95488b9 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml @@ -1,7 +1,7 @@ name: "minimax-m3-vllm-disagg-b300-2p1d-dep2-dep4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly" precision: "fp4" resources: diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 16bc56ec9f..b6d4fdc81e 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -13164,7 +13164,7 @@ minimaxm3-fp4-b300-dynamo-vllm: dp-attn: false minimaxm3-fp4-b300-dynamo-vllm-mtp: - image: vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2 + image: vllm/vllm-openai:nightly model: nvidia/MiniMax-M3-NVFP4 model-prefix: minimaxm3 runner: b300