[None][perf] Autotune MiniMax-M3 MXFP8 decode backends - #17316
Draft
zheyuf wants to merge 1 commit into
Draft
Conversation
zheyuf
force-pushed
the
zheyu/perf/mxfp8-flashinfer-quant
branch
2 times, most recently
from
August 6, 2026 20:37
0c0dc5f to
315bf92
Compare
Signed-off-by: Zheyu Fu <zheyuf@nvidia.com>
zheyuf
force-pushed
the
zheyu/perf/mxfp8-flashinfer-quant
branch
from
August 7, 2026 00:08
315bf92 to
9204c7d
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
@coderabbitai summary
Description
Factorize MiniMax-M3's MXFP8 generation-graph backend tuning:
The first generation-graph warmup profiles the two candidates for each stage; the second captures the winners. The search is factorized (2 + 2), not a four-way cross product, and CUDA-graph replay has no profiling or Python dispatch.
Activation is intentionally narrow: MiniMax-M3, PP1, whole-model generation CUDA graphs, no
torch.compile, and no explicit backend override. Other models, PP>1, graph-disabled execution,torch.compile, explicit backend choices, and missing CuTeDSL retain their existing path and autotuning lifecycle. This adds no public option, dependency, orM <= 32heuristic.Performance
Same-node A-H-H-A on Alex's 12 B300 AGG Pareto points; all 48 arms passed correctness and dispatch validation, and both head arms improved both InferenceX axes at every point.
X =
(sum(input tokens) + sum(actual output tokens)) / benchmark duration / deployment GPUs.Y =
1000 / mean(TPOT_ms), where each request'sTPOT = (E2EL - TTFT) / (actual output tokens - 1).Every run used 8,192 input and 1,024 output tokens per request. Each entry is the mean of the two wall-clock-interpolated H-vs-A gains. The measured serving path is unchanged by the final lifecycle narrowing in this commit.
Autotuning overhead
With an empty CuTeDSL JIT cache, the factorized graph-tuning window itself is 93-96 seconds, including one-time compilation. That is an absolute cold-start window, not a +93-96 second incremental cost: on MiniMax-M3 it replaces the old eager FlashInfer tuning phase. All tuning finishes before RPC readiness, so it is outside AgentX benchmark duration and request TTFT; cold-start/autoscaling readiness is the tradeoff.
Test Coverage
git diff --checkpassed.M=1,24,40, and64; eager and replay outputs matched the TRT-LLM native reference with cosine 1.0.PR Checklist
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.