-
Notifications
You must be signed in to change notification settings - Fork 282
add B300 vLLM AgentX single-node MiniMax-M3 FP4 EAGLE3-GQA MTP / 新增 B300 vLLM AgentX 单节点 MiniMax-M3 FP4 EAGLE3-GQA MTP #2328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
36 commits
Select commit
Hold shift + click to select a range
4a91df9
add b300 vllm agentX single-node minimaxm3 fp4 EAGLE-GQA MTP
hshrivastava-droid 6ad6ee9
update eval logic
hshrivastava-droid 3e84e61
feat: add tool-call-parser + enable-auto-tool-choice; drop synthetic …
xinli-sw 3f57bd6
perf-changelog: add trailing newline / 末尾添加空行
xinli-sw 31ec006
perf-changelog: append minimaxm3-fp4-b300-vllm-agentic-mtp entry / 追加…
xinli-sw df08354
update config
hshrivastava-droid d0f4fc9
Merge remote-tracking branch 'origin/main' into minimaxm3-fp4-b300-vl…
hshrivastava-droid b7556cc
fix(minimaxm3): pin synthetic AL to the GQA golden curve (2.83 -> 2.7…
Ankur-singh f98ab15
Merge origin/main and resolve perf changelog / 合并 origin/main 并解决 per…
Ankur-singh c2dd90d
chore: merge origin/main and resolve perf changelog
Ankur-singh a52dada
fix(changelog): correct synthetic acceptance length 2.83 -> 2.78 / 修复…
Ankur-singh 9031f23
Merge origin/main and resolve perf changelog / 合并 origin/main 并解决 per…
Ankur-singh 220fd05
Merge origin/main and preserve append-only changelog / 合并 origin/main…
xinli-sw 9d0be34
update config
hshrivastava-droid 8398df0
Merge branch 'main' into minimaxm3-fp4-b300-vllm-agentic-mtp
hshrivastava-droid 5e785d0
chore(agentx): pin MiniMax-M3 sweep to AIPerf PR 31
RohitNagraj 01dc27e
chore(agentx): pin MiniMax-M3 sweep to AIPerf ed05782 (globally ancho…
xinli-sw 2af3fbc
chore(agentx): pin MiniMax-M3 sweep to AIPerf abf55f9 (keep idle watc…
xinli-sw 6161fb0
feat(minimaxm3-b300-mtp): expand AgentX search space for TP4/TP2/TP4-…
xinli-sw 9b46824
feat(minimaxm3-b300-mtp): prune search space — trim TP2, extend DRAM …
xinli-sw eb24e17
minimaxm3-fp4-b200-dynamo-vllm-mtp: day-zero B200 disagg EAGLE3 recip…
xinli-sw ef58e34
fill pr-link
xinli-sw b804fdd
switch B200 MTP prefill from DEP2 to TP4
xinli-sw 71dc665
reduce gpu-memory-utilization to 0.9
xinli-sw 4380ea3
image nightly-5e35a6f, set VLLM_MINIMAX_M3_MSA_DECODE_BACKEND=cutlass
xinli-sw 8e5d1b2
VLLM_MINIMAX_M3_MSA_DECODE_BACKEND only in decode_environment
xinli-sw 26f7bdf
Merge origin/main; update MiniMax-M3 DRAM offload conc-list [30,40,50…
xinli-sw 7de0a2b
feat(minimaxm3-b300-mtp): bump image to nightly-5e35a6f4, add cutlass…
xinli-sw 40ea516
resolve perf-changelog merge
xinli-sw 9e7b4ae
expand concurrency sweep per topology
xinli-sw a291116
Revert "expand concurrency sweep per topology"
xinli-sw 8767d90
minimaxm3-fp4-b300-vllm-agentic-mtp: clean up branch — drop B200 entr…
xinli-sw f0c2234
Merge branch 'main' into minimaxm3-fp4-b300-vllm-agentic-mtp
cquil11 3c6efea
Update perf-changelog.yaml
cquil11 dd53cd6
Merge branch 'main' into minimaxm3-fp4-b300-vllm-agentic-mtp
cquil11 fd391ba
Update perf-changelog.yaml
cquil11 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
122 changes: 122 additions & 0 deletions
122
benchmarks/single_node/agentic/minimaxm3_fp4_b300_mtp.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,122 @@ | ||
| #!/usr/bin/env bash | ||
| 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 TOTAL_CPU_DRAM_GB RESULT_DIR DURATION | ||
|
|
||
| DRAFT_MODEL="Inferact/MiniMax-M3-EAGLE3-GQA" | ||
| NUM_SPEC_TOKENS=3 | ||
| # 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}" | ||
| 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 | ||
|
|
||
| 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 | ||
| 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 | ||
|
|
||
| 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=( | ||
| 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 | ||
| --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"}' | ||
| --kv-cache-dtype fp8 | ||
| --max-cudagraph-capture-size 512 | ||
| --max-num-batched-tokens 16384 | ||
| --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" | ||
| "${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" | ||
| if [ "${EVAL_ONLY}" = "true" ]; then | ||
| run_eval --port "$PORT" | ||
| else | ||
| build_replay_cmd "$RESULT_DIR" | ||
| run_agentic_replay_and_write_outputs "$RESULT_DIR" | ||
| fi | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.