From 4a91df90fd9d6606d03774f085f7e7ca2dee9732 Mon Sep 17 00:00:00 2001 From: hshrivastava-droid Date: Fri, 24 Jul 2026 12:01:05 -0700 Subject: [PATCH 01/23] add b300 vllm agentX single-node minimaxm3 fp4 EAGLE-GQA MTP --- .../agentic/minimaxm3_fp4_b300_mtp.sh | 100 ++++++++++++++++++ configs/nvidia-master.yaml | 16 +++ perf-changelog.yaml | 19 +++- 3 files changed, 130 insertions(+), 5 deletions(-) create mode 100755 benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh new file mode 100755 index 0000000000..ff43eebc14 --- /dev/null +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +set -euo pipefail +set -x + +# MiniMax-M3 NVFP4 B300 AgentX with EAGLE3-GQA and synthetic acceptance. + +source "$(dirname "$0")/../../benchmark_lib.sh" + +export EVAL_FRAMEWORK="lm-eval" + +check_env_vars MODEL TP CONC KV_OFFLOADING RESULT_DIR DURATION + +DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3-GQA" +NUM_SPEC_TOKENS=3 +SYNTHETIC_ACCEPT_LEN=2.78 + +if [[ -n "${SLURM_JOB_ID:-}" ]]; then + echo "JOB $SLURM_JOB_ID running on ${SLURMD_NODENAME:-unknown}" +fi + +if [[ -n "${MODEL_PATH:-}" ]]; then + if [[ ! -d "$MODEL_PATH" || -z "$(ls -A "$MODEL_PATH" 2>/dev/null)" ]]; then + hf download "$MODEL" --local-dir "$MODEL_PATH" + fi + DRAFT_MODEL_PATH="/data/models/${DRAFT_MODEL##*/}" + if [[ ! -d "$DRAFT_MODEL_PATH" || -z "$(ls -A "$DRAFT_MODEL_PATH" 2>/dev/null)" ]]; then + hf download "$DRAFT_MODEL" --local-dir "$DRAFT_MODEL_PATH" + fi +else + hf download "$MODEL" + export MODEL_PATH="$MODEL" + hf download "$DRAFT_MODEL" + DRAFT_MODEL_PATH="$DRAFT_MODEL" +fi + +nvidia-smi +resolve_trace_source +install_agentic_deps + +if agentic_kv_offload_enabled; then + echo "Error: this submission contains GPU-resident KV points only" >&2 + exit 1 +fi + +export PYTHONNOUSERSITE=1 +export VLLM_ENGINE_READY_TIMEOUT_S=3600 +export VLLM_FLOAT32_MATMUL_PRECISION=high +export VLLM_FLASHINFER_ALLREDUCE_BACKEND=trtllm + +SERVER_LOG="$RESULT_DIR/server.log" +mkdir -p "$RESULT_DIR" + +SERVER_PID="" +cleanup_agentic_services() { + local exit_code=$? + trap - EXIT INT TERM + set +e + stop_background_process_tree "$SERVER_PID" "vLLM server" 60 + exit "$exit_code" +} +trap cleanup_agentic_services EXIT +trap 'exit 130' INT +trap 'exit 143' TERM + +SPEC_CONFIG=$(printf \ + '{"method":"eagle3","model":"%s","num_speculative_tokens":%d,"attention_backend":"FLASH_ATTN","rejection_sample_method":"synthetic","synthetic_acceptance_length":%.2f}' \ + "$DRAFT_MODEL_PATH" "$NUM_SPEC_TOKENS" "$SYNTHETIC_ACCEPT_LEN") + +{ set +x; } 2>/dev/null +VLLM_CMD=( + vllm serve "$MODEL_PATH" + --served-model-name "$MODEL" + --host 0.0.0.0 + --port "$PORT" + --tensor-parallel-size "$TP" + --gpu-memory-utilization 0.9 + --block-size 128 + --language-model-only + --enable-prefix-caching + --no-enable-flashinfer-autotune + --reasoning-parser minimax_m3 + --default-chat-template-kwargs '{"thinking_mode":"enabled"}' + --attention-config '{"backend":"FLASHINFER","use_trtllm_attention":true,"indexer_kv_dtype":"fp8"}' + --all2all-backend flashinfer_nvlink_one_sided + --max-cudagraph-capture-size 512 + --max-num-batched-tokens 16384 + --stream-interval 20 + --trust-remote-code + --speculative-config "$SPEC_CONFIG" +) +printf '%q ' "${VLLM_CMD[@]}" | tee "$RESULT_DIR/vllm_command.txt" +printf '\n' | tee -a "$RESULT_DIR/vllm_command.txt" +"${VLLM_CMD[@]}" > "$SERVER_LOG" 2>&1 & +SERVER_PID=$! +echo "Server PID: $SERVER_PID" +set -x + +wait_for_server_ready --port "$PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" +build_replay_cmd "$RESULT_DIR" +run_agentic_replay_and_write_outputs "$RESULT_DIR" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 8cc99a8a0b..09a42d9901 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7800,6 +7800,22 @@ minimaxm3-fp8-h200-vllm-agentic: - { tp: 8, ep: 8, kv-offloading: none, conc-list: [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] } - { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "0.3.11.post1" }, conc-list: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] } +minimaxm3-fp4-b300-vllm-agentic-mtp: + image: vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 + model: nvidia/MiniMax-M3-NVFP4 + model-prefix: minimaxm3 + runner: cluster:b300-nv + precision: fp4 + framework: vllm + multinode: false + scenarios: + agentic-coding: + - dram-utilization: 0.80 + search-space: + - { tp: 8, spec-decoding: mtp, kv-offloading: none, conc-list: [1] } + - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 16] } + - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [2] } + dsv4-fp4-b200-sglang-agentic-hicache: image: lmsysorg/sglang:nightly-dev-cu13-20260707-b4155233 model: deepseek-ai/DeepSeek-V4-Pro diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 0381848924..ae7443f368 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5061,7 +5061,6 @@ - "Exclude known-bad nodes mia1-p01-g09,g14 from the disagg node pool" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2301 -- config-keys: - minimaxm3-fp4-mi355x-vllm-agentic description: - "Add Minimax-M3 FP4 vLLM Single Node Agentic Support" @@ -5121,7 +5120,7 @@ description: - "Add GB300 Dynamo-vLLM AgentX MTP3 points: aggregate TP8 c1, aggregate TP4 c4, P/D DEP4/DEP8 c128, and P/D DEP8/DEP8 c384; use upstream vLLM 426e59f, srt-slurm v1.0.36, and random session-affinity routing for P/D." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2341 - + - config-keys: - qwen3.5-fp8-mi355x-sglang @@ -5129,13 +5128,13 @@ description: - "Bump image from lmsysorg/sglang:v0.5.14-rocm720-mi35x to lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260726" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2349 - + - config-keys: - dsv4-fp4-mi355x-atom-mtp description: - "Re-sweep dsv4-fp4-mi355x-atom-mtp on latest atom-dev nightly (nightly_202607231538, was atom0.1.3 release). Align ATOM official MTP config (models.json): MTP3 dp-off conc 4-256 + DPA MTP3 (dp-attn) conc 32-1024 (added c32 dp-on; tp4 tried but removed — tp4+MTP+dp-on OOMs, KV budget negative). prefill-only TBO (--enable-tbo, argparse const=prefill so enable_tbo_decode=False) on dp-attn cells at conc>=256 (measured crossover run 30257759947 vs non-TBO 30238071409: TBO -10~14% output tput at c64/c128 but +8~14% at c256+; MTP removes low-conc latency so TBO overlap there is pure overhead); MTP-safe because only decode-TBO (--enable-tbo all) drops spec_decode_metadata. max_num_seqs=conc on dp-on cells and conc>=64 to avoid OOM. bench keeps --dsv4 (InferenceX bench uses encoding_dsv4.py; DSv4-Pro has no jinja chat_template). Fixed benchmark_lib source path (../ -> ../../)." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2345 - + - config-keys: - minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1 - minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1-tep4 @@ -5144,7 +5143,7 @@ - "Remove VLLM_FLASHINFER_ALLREDUCE_BACKEND=trtllm from the 1P1D TP1-prefill/TP8-decode recipe; retain the existing FP8 indexer KV cache configuration" - "Add a one-node 4P1D TP1-prefill/TEP4-decode concurrency-4096 point on the refreshed image while preserving the legacy 4P2D DEP2-prefill/TEP4-decode point unchanged" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2310 - + - config-keys: - kimik3-fp4-b300-vllm-agentic @@ -5173,3 +5172,13 @@ - "Bring-up validated in run 30326393603: all 12 configs green, zero ServerDisconnectedError after the keep-alive fix. GPU KV resolves to 42.23 GiB / 3,249,215 tokens, i.e. ~3.1 max-length requests, against MAX_NUM_SEQS = 2*CONC." - "Measured behaviour: below conc 8 the GPU-resident and DRAM arms are within run-to-run noise (1-5%). At conc 16 and 24 the GPU-resident arm thrashes -- prefix cache hit rate 2.7%, TTFT p50 86s and 191s, 49.6 and 54.9 output tok/s -- because the working set exceeds GPU KV and prefixes are recomputed. The DRAM arm holds TTFT p50 0.85s and 6.2s for 245.0 and 260.6 output tok/s (4-5x), with the CPU tier serving a 62% external prefix cache hit rate at conc 24. The high-conc GPU-resident points are retained deliberately as the honest baseline that makes the offload gain legible." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2386 + +- config-keys: + - minimaxm3-fp4-b300-vllm-agentic-mtp + scenario-type: + - agentic-coding + description: + - "Add five MiniMax-M3 NVFP4 B300 single-node aggregate vLLM AgentX points: TP8 concurrency 1; TP4 concurrency 1, 2, and 16; TP2 concurrency 2." + - "Use the Inferact/MiniMax-M3-EAGLE3-GQA draft model with three speculative tokens and synthetic rejection sampling; thinking-on synthetic acceptance length is 2.83 from the canonical MiniMax-M3 EAGLE3 distribution generated by SemiAnalysisAI/InferenceX action 28061204145." + - "Use vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 with prefix caching enabled, default KV-cache dtype, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2328 From 6ad6ee9c91ca344a34a1348f4c9a640de627f2b2 Mon Sep 17 00:00:00 2001 From: hshrivastava-droid Date: Mon, 27 Jul 2026 20:28:23 -0700 Subject: [PATCH 02/23] update eval logic --- benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh index ff43eebc14..aa3215f5db 100755 --- a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -96,5 +96,9 @@ echo "Server PID: $SERVER_PID" set -x wait_for_server_ready --port "$PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" -build_replay_cmd "$RESULT_DIR" -run_agentic_replay_and_write_outputs "$RESULT_DIR" +if [ "${EVAL_ONLY}" = "true" ]; then + run_eval --port "$PORT" +else + build_replay_cmd "$RESULT_DIR" + run_agentic_replay_and_write_outputs "$RESULT_DIR" +fi From 3e84e611f0d95d7ddd8fbcebffa6c02b97884030 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Tue, 28 Jul 2026 11:48:30 -0400 Subject: [PATCH 03/23] feat: add tool-call-parser + enable-auto-tool-choice; drop synthetic AL for eval Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .../single_node/agentic/minimaxm3_fp4_b300_mtp.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh index aa3215f5db..0f40fdf4e3 100755 --- a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -62,9 +62,15 @@ trap cleanup_agentic_services EXIT trap 'exit 130' INT trap 'exit 143' TERM -SPEC_CONFIG=$(printf \ - '{"method":"eagle3","model":"%s","num_speculative_tokens":%d,"attention_backend":"FLASH_ATTN","rejection_sample_method":"synthetic","synthetic_acceptance_length":%.2f}' \ - "$DRAFT_MODEL_PATH" "$NUM_SPEC_TOKENS" "$SYNTHETIC_ACCEPT_LEN") +if [ "${EVAL_ONLY:-}" = "true" ]; then + SPEC_CONFIG=$(printf \ + '{"method":"eagle3","model":"%s","num_speculative_tokens":%d,"attention_backend":"FLASH_ATTN"}' \ + "$DRAFT_MODEL_PATH" "$NUM_SPEC_TOKENS") +else + SPEC_CONFIG=$(printf \ + '{"method":"eagle3","model":"%s","num_speculative_tokens":%d,"attention_backend":"FLASH_ATTN","rejection_sample_method":"synthetic","synthetic_acceptance_length":%.2f}' \ + "$DRAFT_MODEL_PATH" "$NUM_SPEC_TOKENS" "$SYNTHETIC_ACCEPT_LEN") +fi { set +x; } 2>/dev/null VLLM_CMD=( @@ -79,6 +85,8 @@ VLLM_CMD=( --enable-prefix-caching --no-enable-flashinfer-autotune --reasoning-parser minimax_m3 + --tool-call-parser minimax_m3 + --enable-auto-tool-choice --default-chat-template-kwargs '{"thinking_mode":"enabled"}' --attention-config '{"backend":"FLASHINFER","use_trtllm_attention":true,"indexer_kv_dtype":"fp8"}' --all2all-backend flashinfer_nvlink_one_sided From 3f57bd6646ffcdba377077b5f049ceadaf4e8130 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Tue, 28 Jul 2026 16:02:51 -0400 Subject: [PATCH 04/23] =?UTF-8?q?perf-changelog:=20add=20trailing=20newlin?= =?UTF-8?q?e=20/=20=E6=9C=AB=E5=B0=BE=E6=B7=BB=E5=8A=A0=E7=A9=BA=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 (1M context) --- perf-changelog.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index ae7443f368..ce1d32318c 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5182,3 +5182,4 @@ - "Use the Inferact/MiniMax-M3-EAGLE3-GQA draft model with three speculative tokens and synthetic rejection sampling; thinking-on synthetic acceptance length is 2.83 from the canonical MiniMax-M3 EAGLE3 distribution generated by SemiAnalysisAI/InferenceX action 28061204145." - "Use vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 with prefix caching enabled, default KV-cache dtype, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2328 + From 31ec0067b00d8e05aa3f852b144d903782d09f6e Mon Sep 17 00:00:00 2001 From: Xin Li Date: Tue, 28 Jul 2026 16:05:24 -0400 Subject: [PATCH 05/23] =?UTF-8?q?perf-changelog:=20append=20minimaxm3-fp4-?= =?UTF-8?q?b300-vllm-agentic-mtp=20entry=20/=20=E8=BF=BD=E5=8A=A0=20minima?= =?UTF-8?q?xm3-fp4-b300-vllm-agentic-mtp=20=E6=9D=A1=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 (1M context) --- perf-changelog.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index ce1d32318c..9d69f024e0 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5061,6 +5061,7 @@ - "Exclude known-bad nodes mia1-p01-g09,g14 from the disagg node pool" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2301 +- config-keys: - minimaxm3-fp4-mi355x-vllm-agentic description: - "Add Minimax-M3 FP4 vLLM Single Node Agentic Support" @@ -5120,7 +5121,7 @@ description: - "Add GB300 Dynamo-vLLM AgentX MTP3 points: aggregate TP8 c1, aggregate TP4 c4, P/D DEP4/DEP8 c128, and P/D DEP8/DEP8 c384; use upstream vLLM 426e59f, srt-slurm v1.0.36, and random session-affinity routing for P/D." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2341 - + - config-keys: - qwen3.5-fp8-mi355x-sglang @@ -5128,13 +5129,13 @@ description: - "Bump image from lmsysorg/sglang:v0.5.14-rocm720-mi35x to lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260726" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2349 - + - config-keys: - dsv4-fp4-mi355x-atom-mtp description: - "Re-sweep dsv4-fp4-mi355x-atom-mtp on latest atom-dev nightly (nightly_202607231538, was atom0.1.3 release). Align ATOM official MTP config (models.json): MTP3 dp-off conc 4-256 + DPA MTP3 (dp-attn) conc 32-1024 (added c32 dp-on; tp4 tried but removed — tp4+MTP+dp-on OOMs, KV budget negative). prefill-only TBO (--enable-tbo, argparse const=prefill so enable_tbo_decode=False) on dp-attn cells at conc>=256 (measured crossover run 30257759947 vs non-TBO 30238071409: TBO -10~14% output tput at c64/c128 but +8~14% at c256+; MTP removes low-conc latency so TBO overlap there is pure overhead); MTP-safe because only decode-TBO (--enable-tbo all) drops spec_decode_metadata. max_num_seqs=conc on dp-on cells and conc>=64 to avoid OOM. bench keeps --dsv4 (InferenceX bench uses encoding_dsv4.py; DSv4-Pro has no jinja chat_template). Fixed benchmark_lib source path (../ -> ../../)." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2345 - + - config-keys: - minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1 - minimaxm3-fp4-b300-dynamo-vllm-8k1k-tp1-tep4 @@ -5143,7 +5144,7 @@ - "Remove VLLM_FLASHINFER_ALLREDUCE_BACKEND=trtllm from the 1P1D TP1-prefill/TP8-decode recipe; retain the existing FP8 indexer KV cache configuration" - "Add a one-node 4P1D TP1-prefill/TEP4-decode concurrency-4096 point on the refreshed image while preserving the legacy 4P2D DEP2-prefill/TEP4-decode point unchanged" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2310 - + - config-keys: - kimik3-fp4-b300-vllm-agentic @@ -5182,4 +5183,3 @@ - "Use the Inferact/MiniMax-M3-EAGLE3-GQA draft model with three speculative tokens and synthetic rejection sampling; thinking-on synthetic acceptance length is 2.83 from the canonical MiniMax-M3 EAGLE3 distribution generated by SemiAnalysisAI/InferenceX action 28061204145." - "Use vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 with prefix caching enabled, default KV-cache dtype, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2328 - From df08354c0dd17baef9fc51bd1546f1f8f418e2f9 Mon Sep 17 00:00:00 2001 From: hshrivastava-droid Date: Wed, 29 Jul 2026 11:26:34 -0700 Subject: [PATCH 06/23] update config --- .../agentic/minimaxm3_fp4_b300_mtp.sh | 17 ++++++++++++----- configs/nvidia-master.yaml | 13 ++++++++----- perf-changelog.yaml | 5 ++--- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh index 0f40fdf4e3..18901924d4 100755 --- a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -3,16 +3,17 @@ set -euo pipefail set -x # MiniMax-M3 NVFP4 B300 AgentX with EAGLE3-GQA and synthetic acceptance. +# DRAM KV offload uses vLLM's SimpleCPUOffloadConnector in lazy mode. source "$(dirname "$0")/../../benchmark_lib.sh" export EVAL_FRAMEWORK="lm-eval" -check_env_vars MODEL TP CONC KV_OFFLOADING RESULT_DIR DURATION +check_env_vars MODEL TP CONC KV_OFFLOADING TOTAL_CPU_DRAM_GB RESULT_DIR DURATION DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3-GQA" NUM_SPEC_TOKENS=3 -SYNTHETIC_ACCEPT_LEN=2.78 +SYNTHETIC_ACCEPT_LEN=2.83 if [[ -n "${SLURM_JOB_ID:-}" ]]; then echo "JOB $SLURM_JOB_ID running on ${SLURMD_NODENAME:-unknown}" @@ -37,9 +38,14 @@ nvidia-smi resolve_trace_source install_agentic_deps -if agentic_kv_offload_enabled; then - echo "Error: this submission contains GPU-resident KV points only" >&2 - exit 1 +OFFLOAD_ARGS=() +if require_agentic_kv_offload_backend vllm-simple; then + CPU_OFFLOAD_BYTES=$((TOTAL_CPU_DRAM_GB * 1024 * 1024 * 1024)) + export VLLM_USE_SIMPLE_KV_OFFLOAD=1 + OFFLOAD_CONFIG=$(printf \ + '{"kv_connector":"SimpleCPUOffloadConnector","kv_role":"kv_both","kv_connector_extra_config":{"cpu_bytes_to_use":%d,"lazy_offload":true}}' \ + "$CPU_OFFLOAD_BYTES") + OFFLOAD_ARGS=(--kv-transfer-config "$OFFLOAD_CONFIG") fi export PYTHONNOUSERSITE=1 @@ -95,6 +101,7 @@ VLLM_CMD=( --stream-interval 20 --trust-remote-code --speculative-config "$SPEC_CONFIG" + "${OFFLOAD_ARGS[@]}" ) printf '%q ' "${VLLM_CMD[@]}" | tee "$RESULT_DIR/vllm_command.txt" printf '\n' | tee -a "$RESULT_DIR/vllm_command.txt" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 09a42d9901..fca59d082a 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7810,11 +7810,14 @@ minimaxm3-fp4-b300-vllm-agentic-mtp: multinode: false scenarios: agentic-coding: - - dram-utilization: 0.80 - search-space: - - { tp: 8, spec-decoding: mtp, kv-offloading: none, conc-list: [1] } - - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 16] } - - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [2] } + # 0.683 maps the B300 TP4 SimpleCPU point to the measured 1,024 GB + # engine-level CPU KV budget. GPU-resident points receive a zero budget. + - dram-utilization: 0.683 + search-space: + - { tp: 8, spec-decoding: mtp, kv-offloading: none, conc-list: [2] } + - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [2] } + - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [2, 6] } + - { tp: 4, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [40] } dsv4-fp4-b200-sglang-agentic-hicache: image: lmsysorg/sglang:nightly-dev-cu13-20260707-b4155233 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 9d69f024e0..23329f0cc9 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5179,7 +5179,6 @@ scenario-type: - agentic-coding description: - - "Add five MiniMax-M3 NVFP4 B300 single-node aggregate vLLM AgentX points: TP8 concurrency 1; TP4 concurrency 1, 2, and 16; TP2 concurrency 2." - - "Use the Inferact/MiniMax-M3-EAGLE3-GQA draft model with three speculative tokens and synthetic rejection sampling; thinking-on synthetic acceptance length is 2.83 from the canonical MiniMax-M3 EAGLE3 distribution generated by SemiAnalysisAI/InferenceX action 28061204145." - - "Use vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 with prefix caching enabled, default KV-cache dtype, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." + - "Sample five MiniMax-M3 NVFP4 B300 vLLM AgentX Pareto points on vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909: TP8 c2; TP4 c2; TP2 c2 and 6; and TP4 c40 with lazy SimpleCPUOffloadConnector KV offload (1,024 GB engine-level CPU KV budget)." + - "Use the Inferact/MiniMax-M3-EAGLE3-GQA drafter with three speculative tokens and synthetic acceptance length 2.83; enable prefix caching, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2328 From b7556ccd639fe72e4c00603c22a8f34ffc47976c Mon Sep 17 00:00:00 2001 From: Ankur-singh Date: Wed, 29 Jul 2026 16:15:48 -0700 Subject: [PATCH 07/23] =?UTF-8?q?fix(minimaxm3):=20pin=20synthetic=20AL=20?= =?UTF-8?q?to=20the=20GQA=20golden=20curve=20(2.83=20->=202.78)=20/=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=B0=86=E5=90=88=E6=88=90=E6=8E=A5?= =?UTF-8?q?=E5=8F=97=E9=95=BF=E5=BA=A6=E5=AF=B9=E9=BD=90=E5=88=B0=20GQA=20?= =?UTF-8?q?=E9=BB=84=E9=87=91=E6=9B=B2=E7=BA=BF=EF=BC=882.83=20=E2=86=92?= =?UTF-8?q?=202.78=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This script runs the GQA draft head (Inferact/MiniMax-M3-EAGLE3-GQA) but injected 2.83, which is minimaxm3_eagle3.yaml thinking_on[3] -- the curve measured on the NON-GQA head. #2413 committed golden_al_distribution/minimaxm3_eagle3_gqa.yaml, whose thinking_on[3] is 2.78 for the head this script actually loads. Since 2.83 is the higher of the two, the benchmark was injecting a more generous acceptance than its own golden curve allows, which inflates spec-decode throughput. Per the AgentX fairness rule a submission may choose any supported draft length but may not substitute a different acceptance target, so pin 2.78 and note which curve it comes from -- two curves now exist for this model and the filenames differ by one suffix. Note: this changes the benchmarked numbers, so the existing sweep at d0f4fc92 no longer characterises this config; a fresh sweep is required rather than reusing that run. 中文:本脚本使用 GQA 草稿头,却注入了非 GQA 曲线的 2.83。#2413 已提交 minimaxm3_eagle3_gqa.yaml,其 thinking_on[3] 为 2.78。2.83 更高,会高估投机解码 吞吐,违反 AgentX 不得替换接受率目标的规定。改为 2.78 并注明来源曲线。 该改动会影响基准数值,需要重新跑 sweep,不能复用原有运行。 --- benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh index 18901924d4..d69f479c94 100755 --- a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -13,7 +13,10 @@ check_env_vars MODEL TP CONC KV_OFFLOADING TOTAL_CPU_DRAM_GB RESULT_DIR DURATION DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3-GQA" NUM_SPEC_TOKENS=3 -SYNTHETIC_ACCEPT_LEN=2.83 +# Golden AL for the GQA draft head: golden_al_distribution/minimaxm3_eagle3_gqa.yaml +# minimax-m3.thinking_on[3]. The non-GQA curve (minimaxm3_eagle3.yaml) reads 2.83 +# at the same level -- that head is not what this script runs. +SYNTHETIC_ACCEPT_LEN=2.78 if [[ -n "${SLURM_JOB_ID:-}" ]]; then echo "JOB $SLURM_JOB_ID running on ${SLURMD_NODENAME:-unknown}" From a52dada798c67263f22c8401f31477f9f4e81cbf Mon Sep 17 00:00:00 2001 From: Ankur-singh Date: Wed, 29 Jul 2026 18:40:17 -0700 Subject: [PATCH 08/23] =?UTF-8?q?fix(changelog):=20correct=20synthetic=20a?= =?UTF-8?q?cceptance=20length=202.83=20->=202.78=20/=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=EF=BC=9A=E6=9B=B4=E6=AD=A3=E5=90=88=E6=88=90=E6=8E=A5=E5=8F=97?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=202.83=20=E2=86=92=202.78?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The changelog entry still claimed 2.83 while the script was corrected to 2.78 in b7556ccd. 2.78 is the golden value for the GQA drafter this script loads (golden_al_distribution/minimaxm3_eagle3_gqa.yaml thinking_on[3]); 2.83 is the non-GQA curve. Prose-only; the executable value was already correct. 中文:changelog 仍写 2.83,而脚本已在 b7556ccd 更正为 2.78。2.78 对应本脚本实际 加载的 GQA 草稿头的黄金值;2.83 为非 GQA 曲线。仅文案更正。 --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index e9649175af..ca7c1305f0 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5280,5 +5280,5 @@ - agentic-coding description: - "Sample five MiniMax-M3 NVFP4 B300 vLLM AgentX Pareto points on vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909: TP8 c2; TP4 c2; TP2 c2 and 6; and TP4 c40 with lazy SimpleCPUOffloadConnector KV offload (1,024 GB engine-level CPU KV budget)." - - "Use the Inferact/MiniMax-M3-EAGLE3-GQA drafter with three speculative tokens and synthetic acceptance length 2.83; enable prefix caching, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." + - "Use the Inferact/MiniMax-M3-EAGLE3-GQA drafter with three speculative tokens and synthetic acceptance length 2.78; enable prefix caching, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2328 From 9d0be340f7b1193d1fcbbf5cb238d083c028b91d Mon Sep 17 00:00:00 2001 From: hshrivastava-droid Date: Thu, 30 Jul 2026 10:27:41 -0700 Subject: [PATCH 09/23] update config --- configs/nvidia-master.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index ff1fb832fa..7c536eec40 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -8456,8 +8456,7 @@ minimaxm3-fp4-b300-vllm-agentic-mtp: # engine-level CPU KV budget. GPU-resident points receive a zero budget. - dram-utilization: 0.683 search-space: - - { tp: 8, spec-decoding: mtp, kv-offloading: none, conc-list: [2] } - - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [2] } + - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 5] } - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [2, 6] } - { tp: 4, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [40] } From 01dc27e902f4fbf6bf1dea612c478251406fc43c Mon Sep 17 00:00:00 2001 From: Xin Li Date: Fri, 31 Jul 2026 17:22:17 -0400 Subject: [PATCH 10/23] chore(agentx): pin MiniMax-M3 sweep to AIPerf ed05782 (globally anchor profiling handoff) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中文:将 MiniMax-M3 AgentX 扫描固定到 AIPerf ed05782(全局锚定性能分析切换点) Co-Authored-By: Claude Sonnet 4.6 (1M context) --- utils/aiperf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/aiperf b/utils/aiperf index deb5421c7f..ed057829b7 160000 --- a/utils/aiperf +++ b/utils/aiperf @@ -1 +1 @@ -Subproject commit deb5421c7ff3cd39f78228f469e23e25233ac6c6 +Subproject commit ed057829b78d25d79ce6f3b87763d48fe50363f5 From 2af3fbcd1b2289dafe70d7842d77fe81a8f40a61 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Sat, 1 Aug 2026 23:06:07 -0400 Subject: [PATCH 11/23] chore(agentx): pin MiniMax-M3 sweep to AIPerf abf55f9 (keep idle watchdogs active across barriers) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中文:将 MiniMax-M3 AgentX 扫描固定到 AIPerf abf55f9(跨 barrier 保持空闲看门狗活跃) Co-Authored-By: Claude Sonnet 4.6 (1M context) --- utils/aiperf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/aiperf b/utils/aiperf index ed057829b7..abf55f902c 160000 --- a/utils/aiperf +++ b/utils/aiperf @@ -1 +1 @@ -Subproject commit ed057829b78d25d79ce6f3b87763d48fe50363f5 +Subproject commit abf55f902cde0a3e8389c452a83ecbf5ba15dea9 From 6161fb059d379a560e31e84864d3d52ea86e84a0 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Sun, 2 Aug 2026 00:52:05 -0400 Subject: [PATCH 12/23] feat(minimaxm3-b300-mtp): expand AgentX search space for TP4/TP2/TP4-DRAM arms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TP4 GPU-resident: [1,2,5,10,15,20]; TP2 GPU-resident: [1,2,5,10,15,20]; TP4 DRAM offload: [20,30,40,50,60] 中文:扩展 MiniMax-M3 B300 MTP AgentX 扫描空间:TP4 GPU 驻留 [1,2,5,10,15,20];TP2 GPU 驻留 [1,2,5,10,15,20];TP4 DRAM 卸载 [20,30,40,50,60] Co-Authored-By: Claude Sonnet 4.6 (1M context) --- configs/nvidia-master.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 05076c2d85..1ba1fed987 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -8600,9 +8600,9 @@ minimaxm3-fp4-b300-vllm-agentic-mtp: # engine-level CPU KV budget. GPU-resident points receive a zero budget. - dram-utilization: 0.683 search-space: - - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 5] } - - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [2, 6] } - - { tp: 4, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [40] } + - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 5, 10, 15, 20] } + - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 5, 10, 15, 20] } + - { tp: 4, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [20, 30, 40, 50, 60] } dsv4-fp4-b200-sglang-agentic-hicache: image: lmsysorg/sglang:nightly-dev-cu13-20260707-b4155233 From 9b468247449cc37e2579aaec9fcc8ab286750a28 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Sun, 2 Aug 2026 10:23:14 -0400 Subject: [PATCH 13/23] =?UTF-8?q?feat(minimaxm3-b300-mtp):=20prune=20searc?= =?UTF-8?q?h=20space=20=E2=80=94=20trim=20TP2,=20extend=20DRAM=20offload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TP2: [1,2,5] (drop c10,c15,c20); TP4 DRAM: [30,40,50,60,80,90,100] (drop c20, add c80/90/100) 中文:精简扫描空间——TP2 缩减至 [1,2,5],TP4 DRAM 卸载调整为 [30,40,50,60,80,90,100] Co-Authored-By: Claude Sonnet 4.6 (1M context) --- configs/nvidia-master.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 1ba1fed987..baaf8e4f73 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -8601,8 +8601,8 @@ minimaxm3-fp4-b300-vllm-agentic-mtp: - dram-utilization: 0.683 search-space: - { tp: 4, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 5, 10, 15, 20] } - - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 5, 10, 15, 20] } - - { tp: 4, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [20, 30, 40, 50, 60] } + - { tp: 2, spec-decoding: mtp, kv-offloading: none, conc-list: [1, 2, 5] } + - { tp: 4, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: vllm-simple }, conc-list: [30, 40, 50, 60, 80, 90, 100] } dsv4-fp4-b200-sglang-agentic-hicache: image: lmsysorg/sglang:nightly-dev-cu13-20260707-b4155233 From eb24e17ab6f494e82e91ad7411cfa5360fa9416b Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 02:39:33 -0400 Subject: [PATCH 14/23] minimaxm3-fp4-b200-dynamo-vllm-mtp: day-zero B200 disagg EAGLE3 recipes mirrored from B300 --- .../8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml | 92 ++++++++++++++++++ .../8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml | 92 ++++++++++++++++++ .../8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml | 92 ++++++++++++++++++ .../8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml | 92 ++++++++++++++++++ .../8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml | 96 +++++++++++++++++++ .../8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml | 92 ++++++++++++++++++ configs/nvidia-master.yaml | 89 +++++++++++++++++ perf-changelog.yaml | 6 ++ 8 files changed, 651 insertions(+) create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..a01695a2c7 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml @@ -0,0 +1,92 @@ +name: "minimax-m3-vllm-disagg-b200-1p1d-dep2-tp4-fp4-8k1k-eagle3" + +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + precision: fp4 + +resources: + gpu_type: b200 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 0 + prefill_workers: 1 + decode_workers: 1 + gpus_per_prefill: 2 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + connector: null + allow_prefill_decode_colocation: true + allow_prefill_decode_colocation_across_nodes: true + + prefill_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + decode_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + vllm_config: + prefill: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 1 + pipeline-parallel-size: 1 + data-parallel-size: 2 + data-parallel-rpc-port: 13345 + enable-expert-parallel: true + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 4 + pipeline-parallel-size: 1 + enable-expert-parallel: false + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-num-seqs: 1024 + max-num-batched-tokens: 16384 + max-cudagraph-capture-size: 2048 + +health_check: + max_attempts: 360 + interval_seconds: 10 + +benchmark: + type: sa-bench + isl: 8192 + osl: 1024 + req_rate: inf + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true + concurrencies: "64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..db33713ca8 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml @@ -0,0 +1,92 @@ +name: "minimax-m3-vllm-disagg-b200-1p2d-dep2-tp4-fp4-8k1k-eagle3" + +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + precision: fp4 + +resources: + gpu_type: b200 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 1 + decode_workers: 2 + gpus_per_prefill: 2 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + connector: null + allow_prefill_decode_colocation: true + allow_prefill_decode_colocation_across_nodes: true + + prefill_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + decode_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + vllm_config: + prefill: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 1 + pipeline-parallel-size: 1 + data-parallel-size: 2 + data-parallel-rpc-port: 13345 + enable-expert-parallel: true + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 4 + pipeline-parallel-size: 1 + enable-expert-parallel: false + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-num-seqs: 1024 + max-num-batched-tokens: 16384 + max-cudagraph-capture-size: 2048 + +health_check: + max_attempts: 360 + interval_seconds: 10 + +benchmark: + type: sa-bench + isl: 8192 + osl: 1024 + req_rate: inf + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true + concurrencies: "4x32x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..be70386326 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml @@ -0,0 +1,92 @@ +name: "minimax-m3-vllm-disagg-b200-1p4d-dep2-tp4-fp4-8k1k-eagle3" + +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + precision: fp4 + +resources: + gpu_type: b200 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 2 + prefill_workers: 1 + decode_workers: 4 + gpus_per_prefill: 2 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + connector: null + allow_prefill_decode_colocation: true + allow_prefill_decode_colocation_across_nodes: true + + prefill_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + decode_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + vllm_config: + prefill: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 1 + pipeline-parallel-size: 1 + data-parallel-size: 2 + data-parallel-rpc-port: 13345 + enable-expert-parallel: true + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 4 + pipeline-parallel-size: 1 + enable-expert-parallel: false + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-num-seqs: 1024 + max-num-batched-tokens: 16384 + max-cudagraph-capture-size: 2048 + +health_check: + max_attempts: 360 + interval_seconds: 10 + +benchmark: + type: sa-bench + isl: 8192 + osl: 1024 + req_rate: inf + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true + concurrencies: "4x8x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..67ae021d34 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml @@ -0,0 +1,92 @@ +name: "minimax-m3-vllm-disagg-b200-1p6d-dep2-tp4-fp4-8k1k-eagle3" + +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + precision: fp4 + +resources: + gpu_type: b200 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 3 + prefill_workers: 1 + decode_workers: 6 + gpus_per_prefill: 2 + gpus_per_decode: 4 + +dynamo: + install: true + version: 1.3.0.dev20260710 + +frontend: + type: dynamo + enable_multiple_frontends: false + +backend: + type: vllm + connector: null + allow_prefill_decode_colocation: true + allow_prefill_decode_colocation_across_nodes: true + + prefill_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + decode_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + vllm_config: + prefill: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 1 + pipeline-parallel-size: 1 + data-parallel-size: 2 + data-parallel-rpc-port: 13345 + enable-expert-parallel: true + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 4 + pipeline-parallel-size: 1 + enable-expert-parallel: false + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-num-seqs: 1024 + max-num-batched-tokens: 16384 + max-cudagraph-capture-size: 2048 + +health_check: + max_attempts: 360 + interval_seconds: 10 + +benchmark: + type: sa-bench + isl: 8192 + osl: 1024 + req_rate: inf + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true + concurrencies: "24x48" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..9d19296144 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml @@ -0,0 +1,96 @@ +name: "minimax-m3-vllm-disagg-b200-2p1d-dep2-dep4-fp4-8k1k-eagle3" + +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + precision: fp4 + +resources: + gpu_type: b200 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 0 + prefill_workers: 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 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-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-num-seqs: 1024 + max-num-batched-tokens: 16384 + max-cudagraph-capture-size: 2048 + +health_check: + max_attempts: 360 + interval_seconds: 10 + +benchmark: + type: sa-bench + isl: 8192 + osl: 1024 + req_rate: inf + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true + concurrencies: "256x512" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml new file mode 100644 index 0000000000..3984867739 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml @@ -0,0 +1,92 @@ +name: "minimax-m3-vllm-disagg-b200-2p3d-dep2-tp4-fp4-8k1k-eagle3" + +model: + path: "nvidia/MiniMax-M3-NVFP4" + container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + precision: fp4 + +resources: + gpu_type: b200 + gpus_per_node: 8 + prefill_nodes: 1 + decode_nodes: 1 + prefill_workers: 2 + decode_workers: 3 + 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 + UCX_TLS: cuda_copy,cuda_ipc,rc + + decode_environment: + VLLM_FLOAT32_MATMUL_PRECISION: high + UCX_TLS: cuda_copy,cuda_ipc,rc + + vllm_config: + prefill: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 1 + pipeline-parallel-size: 1 + data-parallel-size: 2 + data-parallel-rpc-port: 13345 + enable-expert-parallel: true + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-cudagraph-capture-size: 2048 + max-num-batched-tokens: 16384 + + decode: + no-enable-flashinfer-autotune: true + tensor-parallel-size: 4 + pipeline-parallel-size: 1 + enable-expert-parallel: false + trust-remote-code: true + no-enable-prefix-caching: true + kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' + attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' + block-size: 128 + gpu-memory-utilization: 0.95 + max-model-len: 9472 + language-model-only: true + speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' + stream-interval: 32 + max-num-seqs: 1024 + max-num-batched-tokens: 16384 + max-cudagraph-capture-size: 2048 + +health_check: + max_attempts: 360 + interval_seconds: 10 + +benchmark: + type: sa-bench + isl: 8192 + osl: 1024 + req_rate: inf + num_warmup_mult: 0 + random_range_ratio: 0.8 + use_chat_template: true + concurrencies: "192" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index a30af59641..df39d010bf 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7767,6 +7767,95 @@ minimaxm3-fp4-b300-dynamo-vllm-8k1k-legacy-max-tput: ep: 4 dp-attn: false +minimaxm3-fp4-b200-dynamo-vllm-mtp: + image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 + model: nvidia/MiniMax-M3-NVFP4 + model-prefix: minimaxm3 + runner: b200-multinode + 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: + - spec-decoding: "mtp" + conc-list: [24, 48] + prefill: + num-worker: 1 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 6 + tp: 4 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [4, 8, 64] + prefill: + num-worker: 1 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 4 + tp: 4 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [4, 32, 64] + prefill: + num-worker: 1 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 2 + tp: 4 + ep: 1 + dp-attn: false + - spec-decoding: "mtp" + conc-list: [64] + prefill: + num-worker: 1 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 1 + tp: 4 + ep: 1 + dp-attn: false + + - spec-decoding: "mtp" + conc-list: [192] + prefill: + num-worker: 2 + tp: 2 + ep: 2 + dp-attn: true + additional-settings: + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml" + decode: + num-worker: 3 + tp: 4 + ep: 1 + dp-attn: false + + minimaxm3-fp4-b300-dynamo-vllm-mtp: image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: nvidia/MiniMax-M3-NVFP4 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 6eebd97070..bb266592ca 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5355,3 +5355,9 @@ - "Apply the accuracy-gated Kimi-K2.5 MXFP4 settings: tuned AITER MXFP4 MoE, fused shared experts, FP8 KV cache, block size 16, 16384 batched tokens, 512 sequences, async scheduling, gpu-memory-utilization 0.85 (headroom for CUDA-graph capture on MI355X), and the AITER BF16 GEMM path" - "Extend the TP4 and TP8 8k1k concurrency sweep from 64 to 128 (1k1k deprecated per #2263)" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2213 + +- config-keys: + - minimaxm3-fp4-b200-dynamo-vllm-mtp + description: + - "Add MiniMax M3 NVFP4 B200 disagg EAGLE3 MTP recipes, mirrored from B300" + pr-link: TBD From ef58e3433d1bbedea66bb0b4de7979d406ae115b Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 02:44:45 -0400 Subject: [PATCH 15/23] fill pr-link --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index bb266592ca..2508278542 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5360,4 +5360,4 @@ - minimaxm3-fp4-b200-dynamo-vllm-mtp description: - "Add MiniMax M3 NVFP4 B200 disagg EAGLE3 MTP recipes, mirrored from B300" - pr-link: TBD + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2462 From b804fdd1870767d093d41223101561f2c25c196b Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 09:55:15 -0400 Subject: [PATCH 16/23] switch B200 MTP prefill from DEP2 to TP4 --- ...1k.yaml => 1p1d-tp4-dep4-eagle3-8k1k.yaml} | 11 ++--- ...k1k.yaml => 1p1d-tp4-tp4-eagle3-8k1k.yaml} | 9 ++-- ...k1k.yaml => 1p2d-tp4-tp4-eagle3-8k1k.yaml} | 9 ++-- ...k1k.yaml => 1p3d-tp4-tp4-eagle3-8k1k.yaml} | 11 ++--- ...k1k.yaml => 1p4d-tp4-tp4-eagle3-8k1k.yaml} | 9 ++-- ...k1k.yaml => 1p6d-tp4-tp4-eagle3-8k1k.yaml} | 9 ++-- configs/nvidia-master.yaml | 42 +++++++++---------- 7 files changed, 41 insertions(+), 59 deletions(-) rename benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/{2p1d-dep2-dep4-eagle3-8k1k.yaml => 1p1d-tp4-dep4-eagle3-8k1k.yaml} (91%) rename benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/{1p1d-dep2-tp4-eagle3-8k1k.yaml => 1p1d-tp4-tp4-eagle3-8k1k.yaml} (91%) rename benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/{1p2d-dep2-tp4-eagle3-8k1k.yaml => 1p2d-tp4-tp4-eagle3-8k1k.yaml} (91%) rename benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/{2p3d-dep2-tp4-eagle3-8k1k.yaml => 1p3d-tp4-tp4-eagle3-8k1k.yaml} (91%) rename benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/{1p4d-dep2-tp4-eagle3-8k1k.yaml => 1p4d-tp4-tp4-eagle3-8k1k.yaml} (91%) rename benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/{1p6d-dep2-tp4-eagle3-8k1k.yaml => 1p6d-tp4-tp4-eagle3-8k1k.yaml} (91%) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml similarity index 91% rename from benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml rename to benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml index 9d19296144..013556c503 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p1d-dep2-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml @@ -1,4 +1,4 @@ -name: "minimax-m3-vllm-disagg-b200-2p1d-dep2-dep4-fp4-8k1k-eagle3" +name: "minimax-m3-vllm-disagg-b200-1p1d-tp4-dep4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" @@ -10,9 +10,9 @@ resources: gpus_per_node: 8 prefill_nodes: 1 decode_nodes: 0 - prefill_workers: 2 + prefill_workers: 1 decode_workers: 1 - gpus_per_prefill: 2 + gpus_per_prefill: 4 gpus_per_decode: 4 dynamo: @@ -42,11 +42,8 @@ backend: vllm_config: prefill: no-enable-flashinfer-autotune: true - tensor-parallel-size: 1 + tensor-parallel-size: 4 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"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml similarity index 91% rename from benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml rename to benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml index a01695a2c7..9141831a7f 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml @@ -1,4 +1,4 @@ -name: "minimax-m3-vllm-disagg-b200-1p1d-dep2-tp4-fp4-8k1k-eagle3" +name: "minimax-m3-vllm-disagg-b200-1p1d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" @@ -12,7 +12,7 @@ resources: decode_nodes: 0 prefill_workers: 1 decode_workers: 1 - gpus_per_prefill: 2 + gpus_per_prefill: 4 gpus_per_decode: 4 dynamo: @@ -40,11 +40,8 @@ backend: vllm_config: prefill: no-enable-flashinfer-autotune: true - tensor-parallel-size: 1 + tensor-parallel-size: 4 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"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml similarity index 91% rename from benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml rename to benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index db33713ca8..d7f43bc8aa 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -1,4 +1,4 @@ -name: "minimax-m3-vllm-disagg-b200-1p2d-dep2-tp4-fp4-8k1k-eagle3" +name: "minimax-m3-vllm-disagg-b200-1p2d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" @@ -12,7 +12,7 @@ resources: decode_nodes: 1 prefill_workers: 1 decode_workers: 2 - gpus_per_prefill: 2 + gpus_per_prefill: 4 gpus_per_decode: 4 dynamo: @@ -40,11 +40,8 @@ backend: vllm_config: prefill: no-enable-flashinfer-autotune: true - tensor-parallel-size: 1 + tensor-parallel-size: 4 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"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml similarity index 91% rename from benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml rename to benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml index 3984867739..b6a828770c 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -1,4 +1,4 @@ -name: "minimax-m3-vllm-disagg-b200-2p3d-dep2-tp4-fp4-8k1k-eagle3" +name: "minimax-m3-vllm-disagg-b200-1p3d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" @@ -10,9 +10,9 @@ resources: gpus_per_node: 8 prefill_nodes: 1 decode_nodes: 1 - prefill_workers: 2 + prefill_workers: 1 decode_workers: 3 - gpus_per_prefill: 2 + gpus_per_prefill: 4 gpus_per_decode: 4 dynamo: @@ -40,11 +40,8 @@ backend: vllm_config: prefill: no-enable-flashinfer-autotune: true - tensor-parallel-size: 1 + tensor-parallel-size: 4 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"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml similarity index 91% rename from benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml rename to benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml index be70386326..956587417d 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml @@ -1,4 +1,4 @@ -name: "minimax-m3-vllm-disagg-b200-1p4d-dep2-tp4-fp4-8k1k-eagle3" +name: "minimax-m3-vllm-disagg-b200-1p4d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" @@ -12,7 +12,7 @@ resources: decode_nodes: 2 prefill_workers: 1 decode_workers: 4 - gpus_per_prefill: 2 + gpus_per_prefill: 4 gpus_per_decode: 4 dynamo: @@ -40,11 +40,8 @@ backend: vllm_config: prefill: no-enable-flashinfer-autotune: true - tensor-parallel-size: 1 + tensor-parallel-size: 4 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"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml similarity index 91% rename from benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml rename to benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml index 67ae021d34..de48a0db04 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml @@ -1,4 +1,4 @@ -name: "minimax-m3-vllm-disagg-b200-1p6d-dep2-tp4-fp4-8k1k-eagle3" +name: "minimax-m3-vllm-disagg-b200-1p6d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" @@ -12,7 +12,7 @@ resources: decode_nodes: 3 prefill_workers: 1 decode_workers: 6 - gpus_per_prefill: 2 + gpus_per_prefill: 4 gpus_per_decode: 4 dynamo: @@ -40,11 +40,8 @@ backend: vllm_config: prefill: no-enable-flashinfer-autotune: true - tensor-parallel-size: 1 + tensor-parallel-size: 4 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"}' diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index df39d010bf..433b800c8a 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7787,11 +7787,11 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: conc-list: [24, 48] prefill: num-worker: 1 - tp: 2 - ep: 2 - dp-attn: true + tp: 4 + ep: 1 + dp-attn: false additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-dep2-tp4-eagle3-8k1k.yaml" + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml" decode: num-worker: 6 tp: 4 @@ -7801,11 +7801,11 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: conc-list: [4, 8, 64] prefill: num-worker: 1 - tp: 2 - ep: 2 - dp-attn: true + tp: 4 + ep: 1 + dp-attn: false additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-dep2-tp4-eagle3-8k1k.yaml" + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml" decode: num-worker: 4 tp: 4 @@ -7815,11 +7815,11 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: conc-list: [4, 32, 64] prefill: num-worker: 1 - tp: 2 - ep: 2 - dp-attn: true + tp: 4 + ep: 1 + dp-attn: false additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-dep2-tp4-eagle3-8k1k.yaml" + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml" decode: num-worker: 2 tp: 4 @@ -7829,11 +7829,11 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: conc-list: [64] prefill: num-worker: 1 - tp: 2 - ep: 2 - dp-attn: true + tp: 4 + ep: 1 + dp-attn: false additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-dep2-tp4-eagle3-8k1k.yaml" + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml" decode: num-worker: 1 tp: 4 @@ -7843,12 +7843,12 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: - spec-decoding: "mtp" conc-list: [192] prefill: - num-worker: 2 - tp: 2 - ep: 2 - dp-attn: true + num-worker: 1 + tp: 4 + ep: 1 + dp-attn: false additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/2p3d-dep2-tp4-eagle3-8k1k.yaml" + - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml" decode: num-worker: 3 tp: 4 From 71dc665657e218d71843917da5b36a4aca6e5caa Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 10:28:48 -0400 Subject: [PATCH 17/23] reduce gpu-memory-utilization to 0.9 --- .../b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml | 4 ++-- .../b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 4 ++-- .../b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 4 ++-- .../b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml | 4 ++-- .../b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml index 013556c503..01d713de5e 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml @@ -49,7 +49,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml index 9141831a7f..aa8a231313 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml @@ -47,7 +47,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' @@ -65,7 +65,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index d7f43bc8aa..b835fc8d0a 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -47,7 +47,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' @@ -65,7 +65,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml index b6a828770c..92a1756da5 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -47,7 +47,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' @@ -65,7 +65,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml index 956587417d..bd9328d24f 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml @@ -47,7 +47,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' @@ -65,7 +65,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml index de48a0db04..8b9059dfa8 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml @@ -47,7 +47,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' @@ -65,7 +65,7 @@ backend: 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 + gpu-memory-utilization: 0.9 max-model-len: 9472 language-model-only: true speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' From 4380ea3c361c759c39f8926a5d51a0dbfb89fb6a Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 10:33:42 -0400 Subject: [PATCH 18/23] image nightly-5e35a6f, set VLLM_MINIMAX_M3_MSA_DECODE_BACKEND=cutlass --- .../b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml | 6 +++++- .../b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml | 4 +++- .../b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 4 +++- .../b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 4 +++- .../b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml | 4 +++- .../b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml | 4 +++- configs/nvidia-master.yaml | 2 +- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml index 01d713de5e..b8adcaafdb 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b200-1p1d-tp4-dep4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-8e981630c9336233ca9de91452f68918bddbc4e2" + container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" precision: fp4 resources: @@ -32,12 +32,16 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass vllm_config: prefill: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml index aa8a231313..c887bc00d1 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b200-1p1d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" precision: fp4 resources: @@ -32,10 +32,12 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass vllm_config: prefill: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index b835fc8d0a..6ad720e49a 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b200-1p2d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" precision: fp4 resources: @@ -32,10 +32,12 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass vllm_config: prefill: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml index 92a1756da5..27317e8793 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b200-1p3d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" precision: fp4 resources: @@ -32,10 +32,12 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass vllm_config: prefill: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml index bd9328d24f..979dad3d5a 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b200-1p4d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" precision: fp4 resources: @@ -32,10 +32,12 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass vllm_config: prefill: diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml index 8b9059dfa8..78491a6a24 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml @@ -2,7 +2,7 @@ name: "minimax-m3-vllm-disagg-b200-1p6d-tp4-tp4-fp4-8k1k-eagle3" model: path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9" + container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" precision: fp4 resources: @@ -32,10 +32,12 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc + VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass vllm_config: prefill: diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 433b800c8a..362247da63 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7768,7 +7768,7 @@ minimaxm3-fp4-b300-dynamo-vllm-8k1k-legacy-max-tput: dp-attn: false minimaxm3-fp4-b200-dynamo-vllm-mtp: - image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 + image: vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7 model: nvidia/MiniMax-M3-NVFP4 model-prefix: minimaxm3 runner: b200-multinode From 8e5d1b2a68df2040f2011c5ad0ae31abb059ae26 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 10:33:59 -0400 Subject: [PATCH 19/23] VLLM_MINIMAX_M3_MSA_DECODE_BACKEND only in decode_environment --- .../minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml | 2 -- .../minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml | 1 - .../minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml | 1 - 6 files changed, 7 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml index b8adcaafdb..ea9f82a8a7 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml @@ -32,9 +32,7 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high VLLM_FLASHINFER_ALLREDUCE_BACKEND: trtllm - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml index c887bc00d1..997e2c2927 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml @@ -32,7 +32,6 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index 6ad720e49a..5ee7737a4b 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -32,7 +32,6 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml index 27317e8793..0e787e5f41 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml @@ -32,7 +32,6 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml index 979dad3d5a..ec61be78bc 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml @@ -32,7 +32,6 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml index 78491a6a24..88a3e18094 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml @@ -32,7 +32,6 @@ backend: prefill_environment: VLLM_FLOAT32_MATMUL_PRECISION: high UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass decode_environment: VLLM_FLOAT32_MATMUL_PRECISION: high From 7de0a2bfb3da1eb8d62a9bc5d454417f73a41b95 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 13:56:26 -0400 Subject: [PATCH 20/23] feat(minimaxm3-b300-mtp): bump image to nightly-5e35a6f4, add cutlass MSA decode + fp8 KV cache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Image: vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7 attention-config: add minimax_m3_msa_decode_backend=cutlass --kv-cache-dtype fp8 中文:更新镜像至 nightly-5e35a6f4,新增 cutlass MSA 解码后端及 FP8 KV 缓存 Co-Authored-By: Claude Sonnet 4.6 (1M context) --- benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh | 3 ++- configs/nvidia-master.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh index d69f479c94..52eeab88f0 100755 --- a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -97,7 +97,8 @@ VLLM_CMD=( --tool-call-parser minimax_m3 --enable-auto-tool-choice --default-chat-template-kwargs '{"thinking_mode":"enabled"}' - --attention-config '{"backend":"FLASHINFER","use_trtllm_attention":true,"indexer_kv_dtype":"fp8"}' + --attention-config '{"backend":"FLASHINFER","use_trtllm_attention":true,"indexer_kv_dtype":"fp8","minimax_m3_msa_decode_backend":"cutlass"}' + --kv-cache-dtype fp8 --all2all-backend flashinfer_nvlink_one_sided --max-cudagraph-capture-size 512 --max-num-batched-tokens 16384 diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 409f16a127..71f8d188d4 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -8620,7 +8620,7 @@ qwen3.5-fp4-b200-sglang-agentic-mtp: - { tp: 2, ep: 1, spec-decoding: mtp, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [16, 18, 20, 22, 24, 28, 32] } minimaxm3-fp4-b300-vllm-agentic-mtp: - image: vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 + image: vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7 model: nvidia/MiniMax-M3-NVFP4 model-prefix: minimaxm3 runner: cluster:b300-nv From 9e7b4ae2f6ffa4aeffd03f67e813fdce12fcd865 Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 15:12:20 -0400 Subject: [PATCH 21/23] expand concurrency sweep per topology --- .../b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml | 2 +- configs/nvidia-master.yaml | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml index 997e2c2927..bde4d6b152 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "64" + concurrencies: "192x256x512" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index 5ee7737a4b..2ba26aab30 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "4x32x64" + concurrencies: "32x64x96" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml index ec61be78bc..a85253cbfd 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "4x8x64" + concurrencies: "4x8x16x32x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml index 88a3e18094..324e7588a0 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "24x48" + concurrencies: "12x24x48" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 4f9ca19f1f..6027b81022 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7800,7 +7800,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: osl: 1024 search-space: - spec-decoding: "mtp" - conc-list: [24, 48] + conc-list: [12, 24, 48] prefill: num-worker: 1 tp: 4 @@ -7814,7 +7814,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: ep: 1 dp-attn: false - spec-decoding: "mtp" - conc-list: [4, 8, 64] + conc-list: [4, 8, 16, 32, 64] prefill: num-worker: 1 tp: 4 @@ -7828,7 +7828,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: ep: 1 dp-attn: false - spec-decoding: "mtp" - conc-list: [4, 32, 64] + conc-list: [32, 64, 96] prefill: num-worker: 1 tp: 4 @@ -7842,7 +7842,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: ep: 1 dp-attn: false - spec-decoding: "mtp" - conc-list: [64] + conc-list: [192, 256, 512] prefill: num-worker: 1 tp: 4 @@ -7857,7 +7857,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: dp-attn: false - spec-decoding: "mtp" - conc-list: [192] + conc-list: [12, 24, 48] prefill: num-worker: 1 tp: 4 From a291116369063ca689ff739374f0025f2118180f Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 15:12:36 -0400 Subject: [PATCH 22/23] Revert "expand concurrency sweep per topology" This reverts commit 9e7b4ae2f6ffa4aeffd03f67e813fdce12fcd865. --- .../b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml | 2 +- .../b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml | 2 +- configs/nvidia-master.yaml | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml index bde4d6b152..997e2c2927 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "192x256x512" + concurrencies: "64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml index 2ba26aab30..5ee7737a4b 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "32x64x96" + concurrencies: "4x32x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml index a85253cbfd..ec61be78bc 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "4x8x16x32x64" + concurrencies: "4x8x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml index 324e7588a0..88a3e18094 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml @@ -87,4 +87,4 @@ benchmark: num_warmup_mult: 0 random_range_ratio: 0.8 use_chat_template: true - concurrencies: "12x24x48" + concurrencies: "24x48" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 6027b81022..4f9ca19f1f 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7800,7 +7800,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: osl: 1024 search-space: - spec-decoding: "mtp" - conc-list: [12, 24, 48] + conc-list: [24, 48] prefill: num-worker: 1 tp: 4 @@ -7814,7 +7814,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: ep: 1 dp-attn: false - spec-decoding: "mtp" - conc-list: [4, 8, 16, 32, 64] + conc-list: [4, 8, 64] prefill: num-worker: 1 tp: 4 @@ -7828,7 +7828,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: ep: 1 dp-attn: false - spec-decoding: "mtp" - conc-list: [32, 64, 96] + conc-list: [4, 32, 64] prefill: num-worker: 1 tp: 4 @@ -7842,7 +7842,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: ep: 1 dp-attn: false - spec-decoding: "mtp" - conc-list: [192, 256, 512] + conc-list: [64] prefill: num-worker: 1 tp: 4 @@ -7857,7 +7857,7 @@ minimaxm3-fp4-b200-dynamo-vllm-mtp: dp-attn: false - spec-decoding: "mtp" - conc-list: [12, 24, 48] + conc-list: [192] prefill: num-worker: 1 tp: 4 From 8767d90c11860a10668f2d66179711a9c24fc8bd Mon Sep 17 00:00:00 2001 From: Xin Li Date: Mon, 3 Aug 2026 16:13:14 -0400 Subject: [PATCH 23/23] =?UTF-8?q?minimaxm3-fp4-b300-vllm-agentic-mtp:=20cl?= =?UTF-8?q?ean=20up=20branch=20=E2=80=94=20drop=20B200=20entry,=20remove?= =?UTF-8?q?=20cutlass=20MSA=20+=20all2all,=20fix=20perf-changelog=20/=20?= =?UTF-8?q?=E6=B8=85=E7=90=86=E5=88=86=E6=94=AF=EF=BC=9A=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=20B200=20=E6=9D=A1=E7=9B=AE=E3=80=81cutlass=20MSA=20=E5=92=8C?= =?UTF-8?q?=20all2all=EF=BC=8C=E4=BF=AE=E5=A4=8D=20perf-changelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml | 95 ------------------- .../8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml | 90 ------------------ .../8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml | 90 ------------------ .../8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml | 90 ------------------ .../8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml | 90 ------------------ .../8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml | 90 ------------------ .../agentic/minimaxm3_fp4_b300_mtp.sh | 3 +- configs/nvidia-master.yaml | 89 ----------------- perf-changelog.yaml | 29 +++++- 9 files changed, 27 insertions(+), 639 deletions(-) delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml deleted file mode 100644 index ea9f82a8a7..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-dep4-eagle3-8k1k.yaml +++ /dev/null @@ -1,95 +0,0 @@ -name: "minimax-m3-vllm-disagg-b200-1p1d-tp4-dep4-fp4-8k1k-eagle3" - -model: - path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" - precision: fp4 - -resources: - gpu_type: b200 - gpus_per_node: 8 - prefill_nodes: 1 - decode_nodes: 0 - prefill_workers: 1 - decode_workers: 1 - gpus_per_prefill: 4 - 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 - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - - vllm_config: - prefill: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-cudagraph-capture-size: 2048 - max-num-batched-tokens: 16384 - - decode: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 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-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-num-seqs: 1024 - max-num-batched-tokens: 16384 - max-cudagraph-capture-size: 2048 - -health_check: - max_attempts: 360 - interval_seconds: 10 - -benchmark: - type: sa-bench - isl: 8192 - osl: 1024 - req_rate: inf - num_warmup_mult: 0 - random_range_ratio: 0.8 - use_chat_template: true - concurrencies: "256x512" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml deleted file mode 100644 index 997e2c2927..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: "minimax-m3-vllm-disagg-b200-1p1d-tp4-tp4-fp4-8k1k-eagle3" - -model: - path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" - precision: fp4 - -resources: - gpu_type: b200 - gpus_per_node: 8 - prefill_nodes: 1 - decode_nodes: 0 - prefill_workers: 1 - decode_workers: 1 - gpus_per_prefill: 4 - 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 - UCX_TLS: cuda_copy,cuda_ipc,rc - - decode_environment: - VLLM_FLOAT32_MATMUL_PRECISION: high - UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - - vllm_config: - prefill: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-cudagraph-capture-size: 2048 - max-num-batched-tokens: 16384 - - decode: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - enable-expert-parallel: false - trust-remote-code: true - no-enable-prefix-caching: true - kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' - attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' - block-size: 128 - gpu-memory-utilization: 0.9 - max-model-len: 9472 - language-model-only: true - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-num-seqs: 1024 - max-num-batched-tokens: 16384 - max-cudagraph-capture-size: 2048 - -health_check: - max_attempts: 360 - interval_seconds: 10 - -benchmark: - type: sa-bench - isl: 8192 - osl: 1024 - req_rate: inf - num_warmup_mult: 0 - random_range_ratio: 0.8 - use_chat_template: true - concurrencies: "64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml deleted file mode 100644 index 5ee7737a4b..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p2d-tp4-tp4-eagle3-8k1k.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: "minimax-m3-vllm-disagg-b200-1p2d-tp4-tp4-fp4-8k1k-eagle3" - -model: - path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" - precision: fp4 - -resources: - gpu_type: b200 - gpus_per_node: 8 - prefill_nodes: 1 - decode_nodes: 1 - prefill_workers: 1 - decode_workers: 2 - gpus_per_prefill: 4 - 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 - UCX_TLS: cuda_copy,cuda_ipc,rc - - decode_environment: - VLLM_FLOAT32_MATMUL_PRECISION: high - UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - - vllm_config: - prefill: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-cudagraph-capture-size: 2048 - max-num-batched-tokens: 16384 - - decode: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - enable-expert-parallel: false - trust-remote-code: true - no-enable-prefix-caching: true - kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' - attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' - block-size: 128 - gpu-memory-utilization: 0.9 - max-model-len: 9472 - language-model-only: true - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-num-seqs: 1024 - max-num-batched-tokens: 16384 - max-cudagraph-capture-size: 2048 - -health_check: - max_attempts: 360 - interval_seconds: 10 - -benchmark: - type: sa-bench - isl: 8192 - osl: 1024 - req_rate: inf - num_warmup_mult: 0 - random_range_ratio: 0.8 - use_chat_template: true - concurrencies: "4x32x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml deleted file mode 100644 index 0e787e5f41..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: "minimax-m3-vllm-disagg-b200-1p3d-tp4-tp4-fp4-8k1k-eagle3" - -model: - path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" - precision: fp4 - -resources: - gpu_type: b200 - 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 - connector: null - allow_prefill_decode_colocation: true - allow_prefill_decode_colocation_across_nodes: true - - prefill_environment: - VLLM_FLOAT32_MATMUL_PRECISION: high - UCX_TLS: cuda_copy,cuda_ipc,rc - - decode_environment: - VLLM_FLOAT32_MATMUL_PRECISION: high - UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - - vllm_config: - prefill: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-cudagraph-capture-size: 2048 - max-num-batched-tokens: 16384 - - decode: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - enable-expert-parallel: false - trust-remote-code: true - no-enable-prefix-caching: true - kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' - attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' - block-size: 128 - gpu-memory-utilization: 0.9 - max-model-len: 9472 - language-model-only: true - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-num-seqs: 1024 - max-num-batched-tokens: 16384 - max-cudagraph-capture-size: 2048 - -health_check: - max_attempts: 360 - interval_seconds: 10 - -benchmark: - type: sa-bench - isl: 8192 - osl: 1024 - req_rate: inf - num_warmup_mult: 0 - random_range_ratio: 0.8 - use_chat_template: true - concurrencies: "192" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml deleted file mode 100644 index ec61be78bc..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: "minimax-m3-vllm-disagg-b200-1p4d-tp4-tp4-fp4-8k1k-eagle3" - -model: - path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" - precision: fp4 - -resources: - gpu_type: b200 - gpus_per_node: 8 - prefill_nodes: 1 - decode_nodes: 2 - prefill_workers: 1 - decode_workers: 4 - gpus_per_prefill: 4 - 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 - UCX_TLS: cuda_copy,cuda_ipc,rc - - decode_environment: - VLLM_FLOAT32_MATMUL_PRECISION: high - UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - - vllm_config: - prefill: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-cudagraph-capture-size: 2048 - max-num-batched-tokens: 16384 - - decode: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - enable-expert-parallel: false - trust-remote-code: true - no-enable-prefix-caching: true - kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' - attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' - block-size: 128 - gpu-memory-utilization: 0.9 - max-model-len: 9472 - language-model-only: true - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-num-seqs: 1024 - max-num-batched-tokens: 16384 - max-cudagraph-capture-size: 2048 - -health_check: - max_attempts: 360 - interval_seconds: 10 - -benchmark: - type: sa-bench - isl: 8192 - osl: 1024 - req_rate: inf - num_warmup_mult: 0 - random_range_ratio: 0.8 - use_chat_template: true - concurrencies: "4x8x64" diff --git a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml b/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml deleted file mode 100644 index 88a3e18094..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: "minimax-m3-vllm-disagg-b200-1p6d-tp4-tp4-fp4-8k1k-eagle3" - -model: - path: "nvidia/MiniMax-M3-NVFP4" - container: "vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7" - precision: fp4 - -resources: - gpu_type: b200 - gpus_per_node: 8 - prefill_nodes: 1 - decode_nodes: 3 - prefill_workers: 1 - decode_workers: 6 - gpus_per_prefill: 4 - 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 - UCX_TLS: cuda_copy,cuda_ipc,rc - - decode_environment: - VLLM_FLOAT32_MATMUL_PRECISION: high - UCX_TLS: cuda_copy,cuda_ipc,rc - VLLM_MINIMAX_M3_MSA_DECODE_BACKEND: cutlass - - vllm_config: - prefill: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - 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-GQA","num_speculative_tokens":1,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-cudagraph-capture-size: 2048 - max-num-batched-tokens: 16384 - - decode: - no-enable-flashinfer-autotune: true - tensor-parallel-size: 4 - pipeline-parallel-size: 1 - enable-expert-parallel: false - trust-remote-code: true - no-enable-prefix-caching: true - kv-transfer-config: '{"kv_connector": "NixlConnector", "kv_role": "kv_both"}' - attention-config: '{"backend": "FLASHINFER", "use_trtllm_attention": true, "indexer_kv_dtype": "fp8"}' - block-size: 128 - gpu-memory-utilization: 0.9 - max-model-len: 9472 - language-model-only: true - speculative-config: '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3-GQA","num_speculative_tokens":3,"attention_backend":"FLASH_ATTN"}' - stream-interval: 32 - max-num-seqs: 1024 - max-num-batched-tokens: 16384 - max-cudagraph-capture-size: 2048 - -health_check: - max_attempts: 360 - interval_seconds: 10 - -benchmark: - type: sa-bench - isl: 8192 - osl: 1024 - req_rate: inf - num_warmup_mult: 0 - random_range_ratio: 0.8 - use_chat_template: true - concurrencies: "24x48" diff --git a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh index 52eeab88f0..3593cac4ce 100755 --- a/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh +++ b/benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh @@ -97,9 +97,8 @@ VLLM_CMD=( --tool-call-parser minimax_m3 --enable-auto-tool-choice --default-chat-template-kwargs '{"thinking_mode":"enabled"}' - --attention-config '{"backend":"FLASHINFER","use_trtllm_attention":true,"indexer_kv_dtype":"fp8","minimax_m3_msa_decode_backend":"cutlass"}' + --attention-config '{"backend":"FLASHINFER","use_trtllm_attention":true,"indexer_kv_dtype":"fp8"}' --kv-cache-dtype fp8 - --all2all-backend flashinfer_nvlink_one_sided --max-cudagraph-capture-size 512 --max-num-batched-tokens 16384 --stream-interval 20 diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 4f9ca19f1f..71f8d188d4 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7783,95 +7783,6 @@ minimaxm3-fp4-b300-dynamo-vllm-8k1k-legacy-max-tput: ep: 4 dp-attn: false -minimaxm3-fp4-b200-dynamo-vllm-mtp: - image: vllm/vllm-openai:nightly-5e35a6f4f9bbc217c599692157ca985c894373f7 - model: nvidia/MiniMax-M3-NVFP4 - model-prefix: minimaxm3 - runner: b200-multinode - 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: - - spec-decoding: "mtp" - conc-list: [24, 48] - prefill: - num-worker: 1 - tp: 4 - ep: 1 - dp-attn: false - additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p6d-tp4-tp4-eagle3-8k1k.yaml" - decode: - num-worker: 6 - tp: 4 - ep: 1 - dp-attn: false - - spec-decoding: "mtp" - conc-list: [4, 8, 64] - prefill: - num-worker: 1 - tp: 4 - ep: 1 - dp-attn: false - additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p4d-tp4-tp4-eagle3-8k1k.yaml" - decode: - num-worker: 4 - tp: 4 - ep: 1 - dp-attn: false - - spec-decoding: "mtp" - conc-list: [4, 32, 64] - prefill: - num-worker: 1 - tp: 4 - ep: 1 - dp-attn: false - additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-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: [64] - prefill: - num-worker: 1 - tp: 4 - ep: 1 - dp-attn: false - additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p1d-tp4-tp4-eagle3-8k1k.yaml" - decode: - num-worker: 1 - tp: 4 - ep: 1 - dp-attn: false - - - spec-decoding: "mtp" - conc-list: [192] - prefill: - num-worker: 1 - tp: 4 - ep: 1 - dp-attn: false - additional-settings: - - "CONFIG_FILE=recipes/vllm/minimax-m3/b200-fp4/8k1k/mtp/1p3d-tp4-tp4-eagle3-8k1k.yaml" - decode: - num-worker: 3 - tp: 4 - ep: 1 - dp-attn: false - - minimaxm3-fp4-b300-dynamo-vllm-mtp: image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 model: nvidia/MiniMax-M3-NVFP4 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 2508278542..b33da5176b 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5357,7 +5357,30 @@ pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2213 - config-keys: - - minimaxm3-fp4-b200-dynamo-vllm-mtp + - qwen3.5-fp4-b300-sglang-agentic-mtp description: - - "Add MiniMax M3 NVFP4 B200 disagg EAGLE3 MTP recipes, mirrored from B300" - pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2462 + - "Add Qwen3.5-397B-A17B NVFP4 AgentX benchmark on B300 with SGLang native NEXTN MTP" + - "Use the 256k trace dataset and golden synthetic acceptance length 3.39" + - "Use the shared AIPerf watchdog to cap whole-trajectory runtime idle gaps at 300 seconds" + - "Image: lmsysorg/sglang:v0.5.16-cu130" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2421 + +- config-keys: + - qwen3.5-fp4-b200-sglang-agentic-mtp + description: + - "Add Qwen3.5-397B-A17B NVFP4 AgentX benchmark on B200 with SGLang native NEXTN MTP" + - "Use the 256k trace dataset and golden synthetic acceptance length 3.39" + - "Use the shared AIPerf watchdog to cap whole-trajectory runtime idle gaps at 300 seconds" + - "Image: lmsysorg/sglang:v0.5.16-cu130" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2420 + + +- config-keys: + - minimaxm3-fp4-b300-vllm-agentic-mtp + scenario-type: + - agentic-coding + description: + - "Add five MiniMax-M3 NVFP4 B300 single-node aggregate vLLM AgentX points: TP8 concurrency 1; TP4 concurrency 1, 2, and 16; TP2 concurrency 2." + - "Use the Inferact/MiniMax-M3-EAGLE3-GQA draft model with three speculative tokens and synthetic rejection sampling; thinking-on synthetic acceptance length is 2.78." + - "Use vllm/vllm-openai:nightly-387189c42997b27e2c04b5d97ef8190ffa2bf909 with prefix caching enabled, default KV-cache dtype, FlashInfer TRT-LLM attention with FP8 indexer KV, and the EAGLE3 drafter on FLASH_ATTN." + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2328