diff --git a/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-gb200-vllm-fixes.sh b/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-gb200-vllm-fixes.sh deleted file mode 100755 index c0eed0a517..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-gb200-vllm-fixes.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -python3 - <<'PYEOF' -from importlib.util import find_spec -from pathlib import Path - -spec = find_spec("vllm") -if not spec or not spec.origin: - raise RuntimeError("vllm is not installed") -root = Path(spec.origin).parent -patches = { - root / "distributed/device_communicators/flashinfer_all_reduce.py": [ - ( - " comm_backend=comm_backend,\n" - " group=group,\n", - " comm_backend=comm_backend,\n" - ' force_oneshot_support=backend == "mnnvl",\n' - " group=group,\n", - ), - ], - root / "models/minimax_m3/nvidia/sparse_attention_msa.py": [ - ( - " prefill_topk = topk[:, nd:num_tokens, :]\n", - " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n", - ), - ], -} -for path, edits in patches.items(): - source = path.read_text() - for old, new in edits: - if new in source: - continue - if source.count(old) != 1: - raise RuntimeError(f"missing or ambiguous patch anchor in {path}") - source = source.replace(old, new, 1) - path.write_text(source) -PYEOF diff --git a/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-gb300-vllm-fixes.sh b/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-gb300-vllm-fixes.sh deleted file mode 100755 index c0eed0a517..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-gb300-vllm-fixes.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -python3 - <<'PYEOF' -from importlib.util import find_spec -from pathlib import Path - -spec = find_spec("vllm") -if not spec or not spec.origin: - raise RuntimeError("vllm is not installed") -root = Path(spec.origin).parent -patches = { - root / "distributed/device_communicators/flashinfer_all_reduce.py": [ - ( - " comm_backend=comm_backend,\n" - " group=group,\n", - " comm_backend=comm_backend,\n" - ' force_oneshot_support=backend == "mnnvl",\n' - " group=group,\n", - ), - ], - root / "models/minimax_m3/nvidia/sparse_attention_msa.py": [ - ( - " prefill_topk = topk[:, nd:num_tokens, :]\n", - " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n", - ), - ], -} -for path, edits in patches.items(): - source = path.read_text() - for old, new in edits: - if new in source: - continue - if source.count(old) != 1: - raise RuntimeError(f"missing or ambiguous patch anchor in {path}") - source = source.replace(old, new, 1) - path.write_text(source) -PYEOF diff --git a/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-vllm-fixes.sh b/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-vllm-fixes.sh deleted file mode 100755 index 02862bba39..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/configs/minimax-m3-vllm-fixes.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -python3 - <<'PYEOF' -from importlib.util import find_spec -from pathlib import Path - -spec = find_spec("vllm") -if not spec or not spec.origin: - raise RuntimeError("vllm is not installed") -root = Path(spec.origin).parent -patches = { - root / "models/minimax_m3/nvidia/sparse_attention_msa.py": [ - ( - " prefill_topk = topk[:, nd:num_tokens, :]\n", - " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n", - ), - ], - root / "distributed/kv_transfer/kv_connector/v1/nixl/base_worker.py": [ - ( - " for i, local_len in enumerate(self.block_len_per_layer):\n", - " total_kv_heads = self.transfer_topo.total_num_kv_heads\n" - " local_heads = self.transfer_topo.local_physical_heads\n" - " remote_heads = max(1, total_kv_heads // remote_tp_size)\n" - " for i, local_len in enumerate(self.block_len_per_layer):\n", - ), - ( - "remote_len == (local_len * tp_ratio) // block_size_ratio,", - "remote_len == (local_len * remote_heads // local_heads) " - "// block_size_ratio,", - ), - ( - "remote_len == local_len // (-tp_ratio),", - "remote_len == local_len * remote_heads // local_heads,", - ), - ], -} -for path, edits in patches.items(): - source = path.read_text() - for old, new in edits: - if new in source: - continue - if source.count(old) != 1: - raise RuntimeError(f"missing or ambiguous patch anchor in {path}") - source = source.replace(old, new, 1) - path.write_text(source) -PYEOF diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-dep8-8k1k.yaml index 4129408ebd..7dd82b6098 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb200-1p2d-dep4-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep4-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep4-8k1k.yaml index 5bde9ac9be..64e712e0c8 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep4-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep4-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb200-1p2d-dep4-tep4-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep8-8k1k.yaml index 56ed02e5e8..8606cf5c38 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/1p2d-dep4-tep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb200-1p2d-dep4-tep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/2p2d-dep4-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/2p2d-dep4-dep8-8k1k.yaml index 22ebfc7836..c5e9b185a7 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/2p2d-dep4-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/2p2d-dep4-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb200-2p2d-dep4-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/3p2d-dep4-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/3p2d-dep4-dep8-8k1k.yaml index ba1db206e4..ca89f94a72 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/3p2d-dep4-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/3p2d-dep4-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb200-3p2d-dep4-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/5p2d-dep4-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/5p2d-dep4-dep8-8k1k.yaml index a54ddcb226..df1ba1d8de 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/5p2d-dep4-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8/8k1k/5p2d-dep4-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb200-5p2d-dep4-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-dep8-8k1k.yaml index d990d661b9..ec72d22b08 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-1p1d-dep2-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-tep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-tep8-8k1k.yaml index d46133924c..ebc16ae605 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-tep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p1d-dep2-tep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-1p1d-dep2-tep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p2d-dep2-tep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p2d-dep2-tep8-8k1k.yaml index e8c606e271..65a6f797a6 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p2d-dep2-tep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/1p2d-dep2-tep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-1p2d-dep2-tep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p1d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p1d-dep2-dep8-8k1k.yaml index 02c3be14ac..fa51ba1792 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p1d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p1d-dep2-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-2p1d-dep2-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml index 304650d6c1..79c7649689 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-2p2d-dep2-tep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p4d-dep2-tep4-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p4d-dep2-tep4-8k1k.yaml index efea8bfacf..fdb35c7fc6 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p4d-dep2-tep4-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/2p4d-dep2-tep4-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-2p4d-dep2-tep4-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p1d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p1d-dep2-dep8-8k1k.yaml index 97e1ec88c8..8335b2f7bf 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p1d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p1d-dep2-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-3p1d-dep2-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p2d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p2d-dep2-dep8-8k1k.yaml index 745b2fad44..b52ebd3a2f 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p2d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/3p2d-dep2-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-3p2d-dep2-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/6p1d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/6p1d-dep2-dep8-8k1k.yaml index 9be5cc1772..94e7898237 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/6p1d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8/8k1k/6p1d-dep2-dep8-8k1k.yaml @@ -6,13 +6,13 @@ name: "minimax-m3-vllm-disagg-gb300-6p1d-dep2-dep8-fp8-8k1k" model: path: "minimax-m3-mxfp8" - container: "vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 health_check: max_attempts: 720 diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p1d-dep2-tp4-marlin-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p1d-dep2-tp4-marlin-8k1k.yaml index 04aca65862..a51cfbd2a3 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p1d-dep2-tp4-marlin-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p1d-dep2-tp4-marlin-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-1p1d-fp8-dep2-tp4-marlin-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p2d-dep2-tep4-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p2d-dep2-tep4-8k1k.yaml index e483108986..a962183696 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p2d-dep2-tep4-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p2d-dep2-tep4-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-1p2d-fp8-dep2-tep4-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep4-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep4-8k1k.yaml index 30ac635a9a..a41361ae66 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep4-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep4-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-1p4d-fp8-dep2-tep4-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep8-8k1k.yaml index 46af72e46c..c1a97a0c07 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/1p4d-dep2-tep8-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-1p4d-fp8-dep2-tep8-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-dep8-8k1k.yaml index b1558ae34f..873271d90a 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-dep8-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-2p2d-fp8-dep2-dep8-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml index 46aaa045da..71fcc81d96 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/2p2d-dep2-tep8-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-2p2d-fp8-dep2-tep8-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-dep8-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-dep8-8k1k.yaml index 3756103eed..e36f12dfa5 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-dep8-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-dep8-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-4p2d-fp8-dep2-dep8-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-tep4-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-tep4-8k1k.yaml index c9f29f7852..f8a6503096 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-tep4-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b300-fp8/8k1k/4p2d-dep2-tep4-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b300-4p2d-fp8-dep2-tep4-8k1k" model: path: "MiniMaxAI/MiniMax-M3-MXFP8" - container: "vllm/vllm-openai:minimax-m3-0618-x86_64-cu130" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" precision: "fp8" resources: @@ -17,7 +17,7 @@ resources: dynamo: install: true - version: 1.3.0.dev20260614 + version: 1.3.0.dev20260710 frontend: type: dynamo diff --git a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200.sh b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200.sh index 7ac314a09a..1b4e70fd9f 100755 --- a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200.sh +++ b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200.sh @@ -22,39 +22,6 @@ check_env_vars \ RANDOM_RANGE_RATIO \ RESULT_FILENAME -# The 0618 image keeps MiniMax M3 top-k indices in a persistent -# [head_kv, max_tokens, topK] buffer for CUDA graphs. Slicing that buffer to -# the actual prefill length is non-contiguous when TP leaves multiple local KV -# heads, and the MSA CSR builder rejects it. Materialize the slice until the -# image includes this fix. -python3 - <<'PYEOF' || { echo "MiniMax M3 MSA contiguity patch failed" >&2; exit 1; } -import importlib.util -import pathlib - -spec = importlib.util.find_spec("vllm") -if spec is None or not spec.submodule_search_locations: - raise RuntimeError("Could not locate the installed vllm package") - -target = ( - pathlib.Path(next(iter(spec.submodule_search_locations))) - / "models" - / "minimax_m3" - / "nvidia" - / "sparse_attention_msa.py" -) -src = target.read_text() -old = " prefill_topk = topk[:, nd:num_tokens, :]\n" -new = " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n" - -if new in src: - print(f"[minimax-m3-msa-patch] already applied: {target}") -elif src.count(old) == 1: - target.write_text(src.replace(old, new, 1)) - print(f"[minimax-m3-msa-patch] patched: {target}") -else: - raise RuntimeError(f"Expected exactly one patch anchor in {target}") -PYEOF - if [[ -n "$SLURM_JOB_ID" ]]; then echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME" fi @@ -100,7 +67,7 @@ $PARALLEL_ARGS \ --language-model-only \ --max-cudagraph-capture-size 2048 \ --max-num-batched-tokens "$((ISL * 2 ))" \ ---stream-interval 20 --no-enable-prefix-caching \ +--stream-interval 32 --no-enable-prefix-caching \ --trust-remote-code > $SERVER_LOG 2>&1 & SERVER_PID=$! diff --git a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200_mtp.sh b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200_mtp.sh index 51147129dc..555741679a 100644 --- a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200_mtp.sh +++ b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b200_mtp.sh @@ -3,15 +3,15 @@ # MiniMax-M3 MXFP8 B200 single-node vLLM recipe with EAGLE3 speculative # decoding — the repo's spec-decoding=mtp variant of minimaxm3_fp8_b200.sh # (https://recipes.vllm.ai/MiniMaxAI/MiniMax-M3). Adds the -# Inferact/MiniMax-M3-EAGLE3 draft head via --speculative-config with 3 -# speculative tokens. Everything else keeps the non-MTP serve shape: +# Inferact/MiniMax-M3-EAGLE3-GQA draft head via --speculative-config with 1 +# speculative token. Everything else keeps the non-MTP serve shape: # --block-size 128 is mandatory (MSA sparse_block_size is 128; the default 16 # misaligns sparse indexing), and --language-model-only skips the vision # encoder for the text-only benchmark. dp-attn=true maps to DP×EP (DEP); # ep>1 maps to TP+EP (TEP). # -# The target uses the FlashInfer TRT-LLM attention path. The EAGLE3 drafter is -# pinned separately to TRITON_ATTN. +# The target uses the FlashInfer TRT-LLM attention path. The EAGLE3-GQA drafter +# is pinned separately to FLASH_ATTN. source "$(dirname "$0")/../../benchmark_lib.sh" @@ -27,40 +27,7 @@ check_env_vars \ RANDOM_RANGE_RATIO \ RESULT_FILENAME -# The 0618 image keeps MiniMax M3 top-k indices in a persistent -# [head_kv, max_tokens, topK] buffer for CUDA graphs. Slicing that buffer to -# the actual prefill length is non-contiguous when TP leaves multiple local KV -# heads, and the MSA CSR builder rejects it. Materialize the slice until the -# image includes this fix. -python3 - <<'PYEOF' || { echo "MiniMax M3 MSA contiguity patch failed" >&2; exit 1; } -import importlib.util -import pathlib - -spec = importlib.util.find_spec("vllm") -if spec is None or not spec.submodule_search_locations: - raise RuntimeError("Could not locate the installed vllm package") - -target = ( - pathlib.Path(next(iter(spec.submodule_search_locations))) - / "models" - / "minimax_m3" - / "nvidia" - / "sparse_attention_msa.py" -) -src = target.read_text() -old = " prefill_topk = topk[:, nd:num_tokens, :]\n" -new = " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n" - -if new in src: - print(f"[minimax-m3-msa-patch] already applied: {target}") -elif src.count(old) == 1: - target.write_text(src.replace(old, new, 1)) - print(f"[minimax-m3-msa-patch] patched: {target}") -else: - raise RuntimeError(f"Expected exactly one patch anchor in {target}") -PYEOF - -DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3" +DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3-GQA" if [[ -n "$SLURM_JOB_ID" ]]; then echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME" @@ -100,8 +67,8 @@ else PARALLEL_ARGS="--tensor-parallel-size=$TP" fi -# use 3 speculative tokens for all configs for now -NUM_SPEC_TOKENS=3 +# use 1 speculative token for all configs for now +NUM_SPEC_TOKENS=1 if [ "${EVAL_ONLY}" = "true" ]; then setup_eval_context @@ -116,14 +83,13 @@ $PARALLEL_ARGS \ --gpu-memory-utilization 0.90 \ --max-model-len $MAX_MODEL_LEN \ --block-size 128 \ ---attention-config '{"backend": "FLASHINFER", "use_trtllm_attention": true}' \ ---attention-config.indexer_kv_dtype "fp8" \ +--attention-config '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' \ --kv-cache-dtype fp8 \ --language-model-only \ --max-cudagraph-capture-size 2048 \ --max-num-batched-tokens "$((ISL * 2 ))" \ ---speculative-config "{\"method\": \"eagle3\", \"model\": \"$DRAFT_MODEL_PATH\", \"num_speculative_tokens\": $NUM_SPEC_TOKENS, \"attention_backend\": \"TRITON_ATTN\"}" \ ---stream-interval 20 --no-enable-prefix-caching \ +--speculative-config "{\"method\": \"eagle3\", \"model\": \"$DRAFT_MODEL_PATH\", \"num_speculative_tokens\": $NUM_SPEC_TOKENS, \"attention_backend\": \"FLASH_ATTN\"}" \ +--stream-interval 32 --no-enable-prefix-caching \ --trust-remote-code > $SERVER_LOG 2>&1 & SERVER_PID=$! diff --git a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300.sh b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300.sh index c0ee15f1f0..e37d30c930 100755 --- a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300.sh +++ b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300.sh @@ -23,39 +23,6 @@ check_env_vars \ RANDOM_RANGE_RATIO \ RESULT_FILENAME -# The 0618 image keeps MiniMax M3 top-k indices in a persistent -# [head_kv, max_tokens, topK] buffer for CUDA graphs. Slicing that buffer to -# the actual prefill length is non-contiguous when TP leaves multiple local KV -# heads, and the MSA CSR builder rejects it. Materialize the slice until the -# image includes this fix. -python3 - <<'PYEOF' || { echo "MiniMax M3 MSA contiguity patch failed" >&2; exit 1; } -import importlib.util -import pathlib - -spec = importlib.util.find_spec("vllm") -if spec is None or not spec.submodule_search_locations: - raise RuntimeError("Could not locate the installed vllm package") - -target = ( - pathlib.Path(next(iter(spec.submodule_search_locations))) - / "models" - / "minimax_m3" - / "nvidia" - / "sparse_attention_msa.py" -) -src = target.read_text() -old = " prefill_topk = topk[:, nd:num_tokens, :]\n" -new = " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n" - -if new in src: - print(f"[minimax-m3-msa-patch] already applied: {target}") -elif src.count(old) == 1: - target.write_text(src.replace(old, new, 1)) - print(f"[minimax-m3-msa-patch] patched: {target}") -else: - raise RuntimeError(f"Expected exactly one patch anchor in {target}") -PYEOF - # `hf download` creates the target dir if missing and is itself idempotent. # When MODEL_PATH is unset (stand-alone runs), fall back to the HF_HUB_CACHE. # Either way, MODEL_PATH is what the server is launched with. @@ -108,7 +75,7 @@ $PARALLEL_ARGS \ --language-model-only \ --max-cudagraph-capture-size 2048 \ --max-num-batched-tokens "$((ISL * 2 ))" \ ---stream-interval 20 --no-enable-prefix-caching \ +--stream-interval 32 --no-enable-prefix-caching \ --trust-remote-code > $SERVER_LOG 2>&1 & SERVER_PID=$! diff --git a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300_mtp.sh b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300_mtp.sh index 01bf23eb6d..8bd8f78c7b 100644 --- a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300_mtp.sh +++ b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_b300_mtp.sh @@ -3,13 +3,13 @@ # MiniMax-M3 MXFP8 B300 single-node vLLM recipe with EAGLE3 speculative # decoding — the repo's spec-decoding=mtp variant of minimaxm3_fp8_b300.sh # (https://recipes.vllm.ai/MiniMaxAI/MiniMax-M3). Adds the -# Inferact/MiniMax-M3-EAGLE3 draft head via --speculative-config with 3 -# speculative tokens. Everything else keeps the non-MTP serve shape: +# Inferact/MiniMax-M3-EAGLE3-GQA draft head via --speculative-config with 1 +# speculative token. Everything else keeps the non-MTP serve shape: # --block-size 128 is mandatory (MSA sparse/index cache); the benchmark is # text-only, so --language-model-only frees the vision encoder's VRAM. # -# The target uses the FlashInfer TRT-LLM attention path. The EAGLE3 drafter is -# pinned separately to TRITON_ATTN. +# The target uses the FlashInfer TRT-LLM attention path. The EAGLE3-GQA drafter +# is pinned separately to FLASH_ATTN. source "$(dirname "$0")/../../benchmark_lib.sh" @@ -25,40 +25,7 @@ check_env_vars \ RANDOM_RANGE_RATIO \ RESULT_FILENAME -# The 0618 image keeps MiniMax M3 top-k indices in a persistent -# [head_kv, max_tokens, topK] buffer for CUDA graphs. Slicing that buffer to -# the actual prefill length is non-contiguous when TP leaves multiple local KV -# heads, and the MSA CSR builder rejects it. Materialize the slice until the -# image includes this fix. -python3 - <<'PYEOF' || { echo "MiniMax M3 MSA contiguity patch failed" >&2; exit 1; } -import importlib.util -import pathlib - -spec = importlib.util.find_spec("vllm") -if spec is None or not spec.submodule_search_locations: - raise RuntimeError("Could not locate the installed vllm package") - -target = ( - pathlib.Path(next(iter(spec.submodule_search_locations))) - / "models" - / "minimax_m3" - / "nvidia" - / "sparse_attention_msa.py" -) -src = target.read_text() -old = " prefill_topk = topk[:, nd:num_tokens, :]\n" -new = " prefill_topk = topk[:, nd:num_tokens, :].contiguous()\n" - -if new in src: - print(f"[minimax-m3-msa-patch] already applied: {target}") -elif src.count(old) == 1: - target.write_text(src.replace(old, new, 1)) - print(f"[minimax-m3-msa-patch] patched: {target}") -else: - raise RuntimeError(f"Expected exactly one patch anchor in {target}") -PYEOF - -DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3" +DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3-GQA" # `hf download` creates the target dir if missing and is itself idempotent. # When MODEL_PATH is unset (stand-alone runs), fall back to the HF_HUB_CACHE. @@ -102,8 +69,8 @@ else PARALLEL_ARGS="--tensor-parallel-size=$TP" fi -# use 3 speculative tokens for all configs for now -NUM_SPEC_TOKENS=3 +# use 1 speculative token for all configs for now +NUM_SPEC_TOKENS=1 if [ "${EVAL_ONLY}" = "true" ]; then setup_eval_context @@ -118,14 +85,13 @@ $PARALLEL_ARGS \ --gpu-memory-utilization 0.90 \ --max-model-len $MAX_MODEL_LEN \ --block-size 128 \ ---attention-config '{"backend": "FLASHINFER", "use_trtllm_attention": true}' \ ---attention-config.indexer_kv_dtype "fp8" \ +--attention-config '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' \ --kv-cache-dtype fp8 \ --language-model-only \ --max-cudagraph-capture-size 2048 \ --max-num-batched-tokens "$((ISL * 2 ))" \ ---speculative-config "{\"method\": \"eagle3\", \"model\": \"$DRAFT_MODEL_PATH\", \"num_speculative_tokens\": $NUM_SPEC_TOKENS, \"attention_backend\": \"TRITON_ATTN\"}" \ ---stream-interval 20 --no-enable-prefix-caching \ +--speculative-config "{\"method\": \"eagle3\", \"model\": \"$DRAFT_MODEL_PATH\", \"num_speculative_tokens\": $NUM_SPEC_TOKENS, \"attention_backend\": \"FLASH_ATTN\"}" \ +--stream-interval 32 --no-enable-prefix-caching \ --trust-remote-code > $SERVER_LOG 2>&1 & SERVER_PID=$! diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index a388cad95d..cdb274f117 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -6666,7 +6666,7 @@ qwen3.5-fp8-h100-sglang-agentic: # baseline above. The image includes vLLM PR #46380, so no runtime patch is # needed. minimaxm3-fp8-b300-dynamo-vllm: - image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: b300 @@ -7021,7 +7021,7 @@ minimaxm3-fp4-b300-dynamo-vllm-mtp: # 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. minimaxm3-fp8-gb300-dynamo-vllm: - image: vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: gb300-nv @@ -7195,7 +7195,7 @@ qwen3.5-fp4-b200-trt: # All prefill DEP4 (TP1 DP4 EP, 4 GPU/worker). Decode: Marlin, TEP8, DEP8, TEP4. # 4 GPU/node (GB200 NVL72). FLASHINFER attention with FP8 KV cache. minimaxm3-fp8-gb200-dynamo-vllm: - image: vllm/vllm-openai:minimax-m3-perf-arm64-13.0.1-7a67223 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: gb200 @@ -7328,7 +7328,7 @@ qwen3.5-fp4-b200-trt-mtp: # sparse/index cache alignment). Weights are NOT SRE-staged; b300 falls back # to writable /data/models (see launch_b300-nv.sh MODEL_PATH split). minimaxm3-fp8-b300-vllm: - image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: b300 @@ -7409,7 +7409,7 @@ minimaxm3-fp4-b300-vllm-mtp: # /lustre/fsw/gharunners/models/MiniMax-M3-MXFP8 (pre-downloaded, see # launch_b200-dgxc.sh). minimaxm3-fp8-b200-vllm: - image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: b200-dgxc @@ -7461,7 +7461,7 @@ minimaxm3-fp4-b200-vllm: # precedent: spec decode pays off at low/mid concurrency while acceptance # dilutes in big batches, and the draft weights + draft KV shave headroom. minimaxm3-fp8-b200-vllm-mtp: - image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: b200-dgxc @@ -7517,7 +7517,7 @@ minimaxm3-fp4-b200-vllm-mtp: # big batches, and the draft weights + draft KV shave headroom — tp2-ep2 is # dropped entirely since its KV headroom was already thin without a draft. minimaxm3-fp8-b300-vllm-mtp: - image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: MiniMaxAI/MiniMax-M3-MXFP8 model-prefix: minimaxm3 runner: b300 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 975c917743..4e01656723 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5066,3 +5066,16 @@ description: - "Bump SGLang container image from lmsysorg/sglang:v0.5.12-cu130 to lmsysorg/sglang:v0.5.15.post1-cu130 (https://github.com/sgl-project/sglang/releases/tag/v0.5.15.post1)" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2313 + +- config-keys: + - minimaxm3-fp8-b300-vllm + - minimaxm3-fp8-b300-vllm-mtp + - minimaxm3-fp8-b200-vllm + - minimaxm3-fp8-b200-vllm-mtp + - minimaxm3-fp8-b300-dynamo-vllm + - minimaxm3-fp8-gb300-dynamo-vllm + - minimaxm3-fp8-gb200-dynamo-vllm + description: + - "Bump image to vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 and dynamo to 1.3.0.dev20260710" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2334 + diff --git a/runners/launch_b300-nv.sh b/runners/launch_b300-nv.sh index 63c0916962..57e8bfd43a 100644 --- a/runners/launch_b300-nv.sh +++ b/runners/launch_b300-nv.sh @@ -94,9 +94,6 @@ elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "minimaxm3" && ( $PRECIS 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 # 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 diff --git a/runners/launch_gb200-nv.sh b/runners/launch_gb200-nv.sh index a5f917da09..169014e86c 100755 --- a/runners/launch_gb200-nv.sh +++ b/runners/launch_gb200-nv.sh @@ -347,10 +347,6 @@ elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "minimaxm3" && $PRECISIO git checkout sa-submission-q2-2026 || exit 1 mkdir -p recipes/vllm/minimax-m3-gb200-fp8 || exit 1 cp -rT "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb200-fp8" recipes/vllm/minimax-m3-gb200-fp8 || exit 1 - SRTCTL_SETUP_SCRIPT="minimax-m3-gb200-vllm-fixes.sh" - cp \ - "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/configs/$SRTCTL_SETUP_SCRIPT" \ - "configs/$SRTCTL_SETUP_SCRIPT" || exit 1 elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "kimik2.5" && $PRECISION == "fp4" ]]; then git clone https://github.com/NVIDIA/srt-slurm.git "$SRT_REPO_DIR" || exit 1 cd "$SRT_REPO_DIR" || exit 1 diff --git a/runners/launch_gb300-nv.sh b/runners/launch_gb300-nv.sh index d450cdb86d..9e2f994e27 100644 --- a/runners/launch_gb300-nv.sh +++ b/runners/launch_gb300-nv.sh @@ -234,10 +234,6 @@ elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "minimaxm3" ]]; then git checkout sa-submission-q2-2026 mkdir -p recipes/vllm/minimax-m3-gb300-fp8 cp -rT "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3-gb300-fp8" recipes/vllm/minimax-m3-gb300-fp8 - SRTCTL_SETUP_SCRIPT="minimax-m3-gb300-vllm-fixes.sh" - cp \ - "$GITHUB_WORKSPACE/benchmarks/multi_node/srt-slurm-recipes/configs/$SRTCTL_SETUP_SCRIPT" \ - "configs/$SRTCTL_SETUP_SCRIPT" elif [[ $FRAMEWORK == "dynamo-vllm" && $MODEL_PREFIX == "kimik2.5" && $PRECISION == "fp4" ]]; then git clone https://github.com/NVIDIA/srt-slurm.git "$SRT_REPO_DIR" cd "$SRT_REPO_DIR"