-
Notifications
You must be signed in to change notification settings - Fork 224
[AMD] feat: MiniMax M3 Day 0 support MI355X #1725
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
Changes from all commits
8dd8f0b
e803275
447bbe5
ad1df2a
7209a3b
44741e3
277613f
40a5008
137b4d3
bf697c8
e453206
8f73bda
a2f466e
e4cc6a6
8de1cd6
a9ce153
18fb62e
567f264
eb48c54
4a583eb
2d15f24
3b7e102
e94de69
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,86 @@ | ||||||||||||||||||||||||||||||||||||||||||||
| #!/usr/bin/env bash | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| # MiniMax-M3 MXFP8 MI355X (gfx950) single-node vLLM recipe. | ||||||||||||||||||||||||||||||||||||||||||||
| # https://github.com/vllm-project/recipes/commit/2a3728ed9892debfd767a72a58ebc90b33f186e5 | ||||||||||||||||||||||||||||||||||||||||||||
| # The recipe recommends MXFP8 from TP=4 on gfx950 and requires block size 128. | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| source "$(dirname "$0")/../../benchmark_lib.sh" | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| check_env_vars \ | ||||||||||||||||||||||||||||||||||||||||||||
| MODEL \ | ||||||||||||||||||||||||||||||||||||||||||||
| TP \ | ||||||||||||||||||||||||||||||||||||||||||||
| EP_SIZE \ | ||||||||||||||||||||||||||||||||||||||||||||
| DP_ATTENTION \ | ||||||||||||||||||||||||||||||||||||||||||||
| CONC \ | ||||||||||||||||||||||||||||||||||||||||||||
| ISL \ | ||||||||||||||||||||||||||||||||||||||||||||
| OSL \ | ||||||||||||||||||||||||||||||||||||||||||||
| MAX_MODEL_LEN \ | ||||||||||||||||||||||||||||||||||||||||||||
| RANDOM_RANGE_RATIO \ | ||||||||||||||||||||||||||||||||||||||||||||
| RESULT_FILENAME | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if [[ -n "$SLURM_JOB_ID" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||
| echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME" | ||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if [[ "$MODEL" != /* ]]; then hf download "$MODEL"; fi | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if [ -n "$ROCR_VISIBLE_DEVICES" ]; then | ||||||||||||||||||||||||||||||||||||||||||||
| export HIP_VISIBLE_DEVICES="$ROCR_VISIBLE_DEVICES" | ||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| SERVER_LOG=/workspace/server.log | ||||||||||||||||||||||||||||||||||||||||||||
| export VLLM_ENGINE_READY_TIMEOUT_S=3600 | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if [ "${EVAL_ONLY}" = "true" ]; then | ||||||||||||||||||||||||||||||||||||||||||||
| setup_eval_context | ||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| PARALLEL_ARGS=(--tensor-parallel-size "$TP") | ||||||||||||||||||||||||||||||||||||||||||||
| if [ "${DP_ATTENTION}" = "true" ]; then | ||||||||||||||||||||||||||||||||||||||||||||
| PARALLEL_ARGS=( | ||||||||||||||||||||||||||||||||||||||||||||
| --tensor-parallel-size 1 | ||||||||||||||||||||||||||||||||||||||||||||
| --data-parallel-size "$TP" | ||||||||||||||||||||||||||||||||||||||||||||
| --enable-expert-parallel | ||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||
| elif [ "$EP_SIZE" -gt 1 ]; then | ||||||||||||||||||||||||||||||||||||||||||||
| PARALLEL_ARGS+=(--enable-expert-parallel) | ||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| start_gpu_monitor | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| set -x | ||||||||||||||||||||||||||||||||||||||||||||
| vllm serve "$MODEL" --port "$PORT" \ | ||||||||||||||||||||||||||||||||||||||||||||
|
cursor[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||
| "${PARALLEL_ARGS[@]}" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --block-size 128 \ | ||||||||||||||||||||||||||||||||||||||||||||
| --language-model-only \ | ||||||||||||||||||||||||||||||||||||||||||||
| --max-model-len "$MAX_MODEL_LEN" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --kv-cache-dtype fp8 \ | ||||||||||||||||||||||||||||||||||||||||||||
| --attention-backend TRITON_ATTN \ | ||||||||||||||||||||||||||||||||||||||||||||
| --enforce-eager \ | ||||||||||||||||||||||||||||||||||||||||||||
| --tool-call-parser minimax_m3 \ | ||||||||||||||||||||||||||||||||||||||||||||
| --reasoning-parser minimax_m3 \ | ||||||||||||||||||||||||||||||||||||||||||||
| --enable-auto-tool-choice > "$SERVER_LOG" 2>&1 & | ||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+52
to
+62
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 BLOCKING: Missing Why it matters: Every other MiniMax benchmark script (M2.5 MI355X, M2.5 MI300X/MI325X/H200/B300, and M3 B300) passes Fix:
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing trust-remote-code on serveMedium Severity The new MI355X MiniMax-M3 script starts Reviewed by Cursor Bugbot for commit 3b7e102. Configure here. |
||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| SERVER_PID=$! | ||||||||||||||||||||||||||||||||||||||||||||
| wait_for_server_ready --port "$PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| run_benchmark_serving \ | ||||||||||||||||||||||||||||||||||||||||||||
| --model "$MODEL" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --port "$PORT" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --backend vllm \ | ||||||||||||||||||||||||||||||||||||||||||||
| --input-len "$ISL" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --output-len "$OSL" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --random-range-ratio "$RANDOM_RANGE_RATIO" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --num-prompts "$((CONC * 10))" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --max-concurrency "$CONC" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --result-filename "$RESULT_FILENAME" \ | ||||||||||||||||||||||||||||||||||||||||||||
| --result-dir /workspace/ \ | ||||||||||||||||||||||||||||||||||||||||||||
| --trust-remote-code | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| if [ "${RUN_EVAL}" = "true" ]; then | ||||||||||||||||||||||||||||||||||||||||||||
| run_eval --framework lm-eval --port "$PORT" | ||||||||||||||||||||||||||||||||||||||||||||
| append_lm_eval_summary | ||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| stop_gpu_monitor | ||||||||||||||||||||||||||||||||||||||||||||
| set +x | ||||||||||||||||||||||||||||||||||||||||||||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eval-only max length not applied
Medium Severity
In
EVAL_ONLYmode the script callssetup_eval_contextbut never assignsMAX_MODEL_LENfromEVAL_MAX_MODEL_LENbeforevllm serve. The server keeps the sweep’s benchmarkMAX_MODEL_LENwhile eval uses the capped context, which can break eval-only runs or over-allocate KV versus the model limit.Reviewed by Cursor Bugbot for commit 2d15f24. Configure here.