Repository navigation
MiniMax-M3.1-Flash MI355X SGLang AgentX: opt into full-precision custom all-reduce / MiniMax-M3.1-Flash MI355X SGLang AgentX:启用全精度 custom all-reduce - #4745
Conversation
…ll-reduce Co-authored-by: Cursor <cursoragent@cursor.com>
cbd6306 to
2d1c39b
Compare
… opt-out Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closing: this is a no-op on the pinned image.
The measured gain came from upstream SGLang serving the Quark MXFP4 checkpoint, where custom all-reduce is off by default; this recipe already has it on. 中文关闭原因:在固定镜像上这项改动不起作用。
之前测得的收益来自上游 SGLang 加 Quark MXFP4 checkpoint 的组合,那里 custom all-reduce 默认关闭;本配方已经默认开启。 |
Summary
SGLang disables custom all-reduce for MiniMax-M3 on ROCm unless
SGLANG_M3_ALLOW_CUSTOM_AR=1(sgl-project/sglang#32230). The pinned image enables it automatically only for the Quark exports, so this recipe runs its TP4 decode all-reduces on RCCL. This PR sets the opt-in, plusROCM_QUICK_REDUCE_QUANTIZATION=NONEto keep the all-reduce full precision. Without that, the image quantizes it to INT8, and its MiniMax-M3.1 override raises that to INT4, which #4510 would forbid.Evidence comes from a Hyperloom AgentX run on 4x MI355X at conc 8, with
amd/MiniMax-M3.1-Flash-Quark-MXFP4and SGLang0.5.22.dev20261028. Both sides of that comparison setSGLANG_MINIMAX_M3_INDEX_TOPK_FREQ=4and quick reduceNONE. The opt-in raised p50 normalized interactivity from 121.1 to 134.6 tok/s/user (+11.2%) and output throughput from 345.7 to 367.6 tok/s. That run used a different checkpoint and image from this recipe, so the sweep here is the measurement.AI model disclosure
claude-sonnet-5.5, as configured for the Hyperloom optimizer.PR checklist and change type
Type of Change
Checklist
python -m infx.matrix.changed --base origin/mainlists affected config keys, I have appended one new entry covering them to the physical end ofinferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entriesinferencex-e2e/perf-changelog.yamlentry, it carries exactly one primary sweep label (a maintainer applies it on fork PRs):full-sweep-fail-fast(recommended),full-sweep-enabled, ornon-canary-full-sweep-enabled. Optional modifiersall-evals,evals-only, andagentx-fastrequire a primary label; the last two block reuse while applied.OWNER/MEMBER/COLLABORATOR) has commented/use <run_id>(or the legacy/reuse-sweep-run) on this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the primary sweep label will no longer automatically kick off new sweeps. Remove and re-add the primary sweep label to force a new sweep.中文
SGLang 默认在 ROCm 上为 MiniMax-M3 关闭 custom all-reduce,除非设置
SGLANG_M3_ALLOW_CUSTOM_AR=1(sgl-project/sglang#32230)。固定镜像只对 Quark 导出版本自动开启它,所以本配方 TP4 下的 decode all-reduce 走的是 RCCL。本 PR 设置该开关,并设置ROCM_QUICK_REDUCE_QUANTIZATION=NONE让 all-reduce 保持全精度。如果不设置,镜像会把 all-reduce 量化为 INT8,它对 MiniMax-M3.1 的 override 还会再提升为 INT4,而 #4510 会禁止 INT4。依据来自一次 Hyperloom AgentX 运行:4 张 MI355X,conc 8,使用
amd/MiniMax-M3.1-Flash-Quark-MXFP4和 SGLang0.5.22.dev20261028。对比的两组都设置了SGLANG_MINIMAX_M3_INDEX_TOPK_FREQ=4,quick reduce 都为NONE。开启该开关后,p50 归一化交互性从 121.1 提升到 134.6 tok/s/user(+11.2%),输出吞吐从 345.7 提升到 367.6 tok/s。那次运行的 checkpoint 和镜像都与本配方不同,以本 PR 的 sweep 为准。AI 模型使用说明:Claude Opus 5.5(Cursor;运行环境没有提供精确的模型标识,无法确认)负责分析、改动和撰写本说明;Hyperloom 优化器配置的
claude-sonnet-5.5在来源运行中提出并测量了该开关。改动类型:配置改动。