Skip to content

[Klaud Cold] minimaxm3-fp8-mi355x-vllm-mtp: run with CUDA graphs (drop --enforce-eager)#1755

Merged
functionstackx merged 1 commit into
mainfrom
feat/minimax-m3-mi355-cudagraphs
Jun 14, 2026
Merged

[Klaud Cold] minimaxm3-fp8-mi355x-vllm-mtp: run with CUDA graphs (drop --enforce-eager)#1755
functionstackx merged 1 commit into
mainfrom
feat/minimax-m3-mi355-cudagraphs

Conversation

@functionstackx

@functionstackx functionstackx commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

Runs the MiniMax-M3 MXFP8 MI355X recipes with CUDA graphs instead of eager execution, to measure the cudagraph speedup. Touches both the non-MTP and EAGLE3 MTP scripts:

  • Drop --enforce-eager from the vllm serve line in minimaxm3_fp8_mi355x.sh and minimaxm3_fp8_mi355x_mtp.sh.
  • Add export VLLM_USE_BREAKABLE_CUDAGRAPH=0 to both — this avoids the M3-decode breakable-cudagraph path that previously forced eager execution (the reason --enforce-eager was originally set).

Everything else is unchanged (block-size 128, --language-model-only, FP8 KV cache, TRITON_ATTN, minimax_m3 parsers; MTP keeps the EAGLE3 draft + the in-place amd/model.py patch).

Config keys re-swept: minimaxm3-fp8-mi355x-vllm, minimaxm3-fp8-mi355x-vllm-mtp (perf-changelog entry added so the sweep picks both up).

Validation

  • bash -n passes on both scripts; serve-line --enforce-eager removed (only comments mention it); VLLM_USE_BREAKABLE_CUDAGRAPH=0 exported in both.

🤖 Generated with Claude Code


Note

Low Risk
Benchmark-only launch script and changelog; no application runtime or security-sensitive logic.

Overview
Updates the MiniMax-M3 MXFP8 MI355X EAGLE3 MTP fixed-sequence vLLM recipe so throughput reflects CUDA graph execution instead of eager mode.

The vllm serve invocation drops --enforce-eager and the script exports VLLM_USE_BREAKABLE_CUDAGRAPH=0, sidestepping the M3 decode breakable-cudagraph path that previously required eager (aligned with the non-MTP MI355X change in #1754). It also passes --no-enable-prefix-caching, consistent with other random-prompt MiniMax MI355X recipes.

perf-changelog.yaml adds an entry for minimaxm3-fp8-mi355x-vllm-mtp so the sweep re-runs this config key.

Reviewed by Cursor Bugbot for commit 1e98162. Bugbot is set up for automated code reviews on this repo. Configure here.

Update: also adds --no-enable-prefix-caching to both MI355X scripts (matching the MI300X recipes).

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! For vLLM & SGLang, please ensure that your recipes is similar to the official vLLM recipes and/or the SGLang cookbook

If it is not, please create a PR first before we can merge your single node PR into the master branch. Let's ensure that the documentation is first class such that the entire ML community can benefit from your hard work! Thank you

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. If re-running failed jobs is attempted, PR authors are responsible for ensuring it passes. See GitHub's docs on re-running failed jobs: https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

As a rule of thumb, generally, PR authors should request a review & get a PR approval from the respective companies' CODEOWNERS before requesting a review from core maintainers.

If additional help is needed, PR authors can reach out to core maintainers over Slack.

functionstackx added a commit that referenced this pull request Jun 14, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

--max-model-len "$MAX_MODEL_LEN" \
--kv-cache-dtype fp8 \
--attention-backend TRITON_ATTN \
--enforce-eager \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing MTP cudagraph capture sizing

Medium Severity

The EAGLE3 MTP recipe now runs with CUDA graphs but never passes --max-cudagraph-capture-size, while other MiniMax MTP scripts size capture to CONC * (1 + speculative tokens). Sweeps up to hundreds of concurrent requests can decode outside the captured graph sizes, so results may not reflect the intended full-graph speedup.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 234abd2. Configure here.

@functionstackx functionstackx changed the title [Klaud Cold] minimaxm3 MI355X: run with CUDA graphs (drop --enforce-eager, VLLM_USE_BREAKABLE_CUDAGRAPH=0) [Klaud Cold] minimaxm3 MI355X: CUDA graphs + disable prefix caching Jun 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 528c410. Configure here.

--max-model-len "$MAX_MODEL_LEN" \
--kv-cache-dtype fp8 \
--attention-backend TRITON_ATTN \
--enforce-eager \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing cudagraph capture sizing

Medium Severity

Removing --enforce-eager turns on CUDA graphs, but neither script sets --max-cudagraph-capture-size or the CAPTURE_SIZE logic used on the MiniMax B200/B300 recipes. vLLM’s default capture list caps around 512, while these sweeps hit concurrency 512–1024 (MTP needs scaling by speculative tokens per step), so many jobs won’t run under full graph capture and the intended cudagraph speedup won’t be measured reliably.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 528c410. Configure here.

@functionstackx functionstackx changed the title [Klaud Cold] minimaxm3 MI355X: CUDA graphs + disable prefix caching [Klaud Cold] minimaxm3 MI355X (STP + MTP): CUDA graphs + disable prefix caching Jun 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@functionstackx functionstackx force-pushed the feat/minimax-m3-mi355-cudagraphs branch from 528c410 to 2899dc8 Compare June 14, 2026 17:09
…ager)

MTP-only: drop --enforce-eager, set VLLM_USE_BREAKABLE_CUDAGRAPH=0, add
--no-enable-prefix-caching on the MI355X EAGLE3 MTP recipe. The non-MTP
MI355X recipe already got this via #1754, so this PR no longer touches it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@functionstackx functionstackx force-pushed the feat/minimax-m3-mi355-cudagraphs branch from 2899dc8 to 1e98162 Compare June 14, 2026 17:17
@functionstackx functionstackx changed the title [Klaud Cold] minimaxm3 MI355X (STP + MTP): CUDA graphs + disable prefix caching [Klaud Cold] minimaxm3-fp8-mi355x-vllm-mtp: run with CUDA graphs (drop --enforce-eager) Jun 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@functionstackx

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run

@functionstackx functionstackx merged commit a83cedf into main Jun 14, 2026
79 checks passed
@functionstackx functionstackx deleted the feat/minimax-m3-mi355-cudagraphs branch June 14, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

1 participant