From 8d496309c701278b236415c5bb1cb42babebe20e Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 16:19:15 +0000 Subject: [PATCH 1/4] chore(configs): bump MiniMax-M3 FP4 GB300 Dynamo vLLM disagg image to v0.32.0 Co-Authored-By: Claude Opus 5.5 --- inferencex-e2e/configs/nvidia-master.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inferencex-e2e/configs/nvidia-master.yaml b/inferencex-e2e/configs/nvidia-master.yaml index 5ae75951e6..df50851ac9 100644 --- a/inferencex-e2e/configs/nvidia-master.yaml +++ b/inferencex-e2e/configs/nvidia-master.yaml @@ -5453,7 +5453,7 @@ minimaxm3-fp4-b300-vllm-agentic-mtp: - { tp: 2, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [24, 28], srt-recipe: agentic.yaml } minimaxm3-fp4-gb300-dynamo-vllm-agentic-mtp-disagg: - image: vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7 + image: vllm/vllm-openai:v0.32.0@sha256:befccf0e7e4089aa23926bb6f887a85c0d46c2a99e6de5c5ffdf5cb7957c5b34 model: nvidia/MiniMax-M3-NVFP4 model-prefix: minimaxm3 runner: cluster:gb300-nv From bac80d58cfec0f2552c4ff1476de8db5703f489f Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 16:49:12 +0000 Subject: [PATCH 2/4] fix(recipes): use FLASHINFER for MiniMax-M3 GB300 EAGLE3 drafter on vLLM v0.32.0 vLLM v0.32.0 routes FLASH_ATTN to the FA4 dense kernel on SM100, which rejects the stride-0 FP8 KV descale tensors. Co-Authored-By: Claude Opus 5.5 --- .../gb300-fp4/agentx/disagg-variants.yaml | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml b/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml index 0371e10c36..e707ae0b0f 100644 --- a/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml +++ b/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml @@ -174,12 +174,12 @@ override_1p1d_tep4_tp4_c1: tensor-parallel-size: 4 enable-expert-parallel: true all2all-backend: "flashinfer_nvlink_one_sided" - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' decode: nodes: 1 workers: 1 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' override_1p1d_tep4_tp4_c1_eval: name: "minimax-m3-vllm-disagg-gb300-1p1d-tep4-tp4-c1-fp4-eval-agentic" @@ -192,12 +192,12 @@ override_1p1d_tep4_tp4_c1_eval: tensor-parallel-size: 4 enable-expert-parallel: true all2all-backend: "flashinfer_nvlink_one_sided" - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' decode: nodes: 1 workers: 1 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' override_1p1d_tp2_tp4_c20_c24: name: "minimax-m3-vllm-disagg-gb300-1p1d-tp2-tp4-c20-c24-fp4-agentic" @@ -206,12 +206,12 @@ override_1p1d_tp2_tp4_c20_c24: roles: prefill: args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' decode: nodes: 1 workers: 1 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' override_1p1d_tp2_tp4_c20_c24_eval: name: "minimax-m3-vllm-disagg-gb300-1p1d-tp2-tp4-c20-c24-fp4-eval-agentic" @@ -220,12 +220,12 @@ override_1p1d_tp2_tp4_c20_c24_eval: roles: prefill: args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' decode: nodes: 1 workers: 1 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' override_1p3d_dep4_tp4_c24: name: "minimax-m3-vllm-disagg-gb300-1p3d-dep4-tp4-c24-fp4-agentic" @@ -240,12 +240,12 @@ override_1p3d_dep4_tp4_c24: data-parallel-rpc-port: 13345 enable-expert-parallel: true all2all-backend: "flashinfer_nvlink_one_sided" - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' decode: nodes: 3 workers: 3 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' override_1p3d_dep4_tp4_c24_eval: name: "minimax-m3-vllm-disagg-gb300-1p3d-dep4-tp4-c24-fp4-eval-agentic" @@ -260,12 +260,12 @@ override_1p3d_dep4_tp4_c24_eval: data-parallel-rpc-port: 13345 enable-expert-parallel: true all2all-backend: "flashinfer_nvlink_one_sided" - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' decode: nodes: 3 workers: 3 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' override_1p3d_tp2_tp2_c48: name: "minimax-m3-vllm-disagg-gb300-1p3d-tp2-tp2-c48-fp4-agentic" @@ -276,14 +276,14 @@ override_1p3d_tp2_tp2_c48: roles: prefill: args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' decode: nodes: 3 workers: 3 gpus: 2 args: tensor-parallel-size: 2 - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' override_1p3d_tp2_tp2_c48_eval: name: "minimax-m3-vllm-disagg-gb300-1p3d-tp2-tp2-c48-fp4-eval-agentic" @@ -294,14 +294,14 @@ override_1p3d_tp2_tp2_c48_eval: roles: prefill: args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' decode: nodes: 3 workers: 3 gpus: 2 args: tensor-parallel-size: 2 - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' override_2p5d_tp2_tp2_c120: name: "minimax-m3-vllm-disagg-gb300-2p5d-tp2-tp2-c120-fp4-agentic" @@ -314,14 +314,14 @@ override_2p5d_tp2_tp2_c120: nodes: 2 workers: 2 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' decode: nodes: 5 workers: 5 gpus: 2 args: tensor-parallel-size: 2 - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN","rejection_sample_method":"block"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER","rejection_sample_method":"block"}' override_2p5d_tp2_tp2_c120_eval: name: "minimax-m3-vllm-disagg-gb300-2p5d-tp2-tp2-c120-fp4-eval-agentic" @@ -334,11 +334,11 @@ override_2p5d_tp2_tp2_c120_eval: nodes: 2 workers: 2 args: - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' decode: nodes: 5 workers: 5 gpus: 2 args: tensor-parallel-size: 2 - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASHINFER"}' From b5f1ca30b442b0c176aeca7685e26b25ea75c179 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 17:50:07 +0000 Subject: [PATCH 3/4] fix(recipes): pin Dynamo 1.6.0.dev20261010 for MiniMax-M3 GB300 vLLM disagg Dynamo 1.4.0.dev20260730 parses DYN_TCP_RPC_HOST as a raw socket address, so the gb300-nv node value enP22s22f0np0 (an interface name) fails with 'Invalid TCP bind address'. Dynamo resolves interface names since ai-dynamo/dynamo#11870 (2026-09-05); 1.6.0.dev20261010 matches the green gb300-nv dsv41flash Dynamo vLLM recipes. Co-Authored-By: Claude Opus 5.5 --- .../minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml b/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml index e707ae0b0f..c61bf8a8ab 100644 --- a/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml +++ b/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml @@ -6,11 +6,11 @@ base: model: {} container: {} frameworks: - dynamo: "1.4.0.dev20260730" + dynamo: "1.6.0.dev20261010" dynamo: install: true source: - pypi: "1.4.0.dev20260730" + pypi: "1.6.0.dev20261010" health_check: max_attempts: 2160 interval_seconds: 10 From 1bb28675db76ae04addcac9bc27affa60832e92f Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 18:12:27 +0000 Subject: [PATCH 4/4] fix(recipes): pin Dynamo 1.7.0.dev20261025 for MiniMax-M3 GB300 vLLM v0.32.0 Dynamo 1.6.0.dev20261010 imports get_engine_zmq_addresses, which vLLM v0.32.0 lacks; 1.7.0.dev20261025 follows ai-dynamo/dynamo#16757 (vLLM v0.32.0 core) and resolves the helper lazily (#16378). Co-Authored-By: Claude Opus 5.5 --- .../minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml b/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml index c61bf8a8ab..b3507486ba 100644 --- a/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml +++ b/inferencex-e2e/benchmarks/multi_node/srt-slurm-recipes/minimaxm3/vllm/gb300-fp4/agentx/disagg-variants.yaml @@ -6,11 +6,11 @@ base: model: {} container: {} frameworks: - dynamo: "1.6.0.dev20261010" + dynamo: "1.7.0.dev20261025" dynamo: install: true source: - pypi: "1.6.0.dev20261010" + pypi: "1.7.0.dev20261025" health_check: max_attempts: 2160 interval_seconds: 10