Skip to content

fix: recover PR 1865 ingest via sweep reuse#1927

Merged
Oseltamivir merged 36 commits into
mainfrom
recovery/reuse-pr-1865
Jun 25, 2026
Merged

fix: recover PR 1865 ingest via sweep reuse#1927
Oseltamivir merged 36 commits into
mainfrom
recovery/reuse-pr-1865

Conversation

@Oseltamivir

Copy link
Copy Markdown
Collaborator

Recover the missing official ingest for PR #1865 (minimaxm3-fp8-mi355x-atom-disagg) by reusing validated artifacts from its pull_request sweep.

Root cause: the push-to-main Run Sweep run (28138987642) setup job failed — PR #1865 had /reuse-sweep-run authorization but no successful run-sweep.yml pull_request run was found among its 34 current commits, so no ingest landed. The successful sweep ran on an earlier branch commit (fa89765a) that was orphaned when the branch was rebased/force-pushed and squash-merged.

Remedy: pin source run 27996171132 (head fa89765a, attempt 1, conclusion success) and attach its SHA as the recovery carrier so the push workflow can reuse it.

Semantics check: the resolved master-config object for minimaxm3-fp8-mi355x-atom-disagg is byte-identical between the source SHA and the merged commit 4c021b13 (same image rocm/atom-dev:MiniMax-M3-20260622, model amd/MiniMax-M3-MXFP8, runner mi355x-disagg, framework atom-disagg, ISL 8k1k + 1k1k, TP4, conc 1-512). The atom recipe scripts (server_atom.sh, env_atom.sh, models_atom.yaml, server.sh), the launcher, and benchmark_lib.sh are unchanged; the submit.sh / job.slurm / setup_deps.sh deltas are all vllm-disagg-gated or comments and do not touch the atom-disagg execution path. Source coverage is authoritative.

seungrokj and others added 30 commits June 23, 2026 10:36
- Replace individual echo lines with cat <<INFO heredoc showing
  EP/DP flags, KV cache settings alongside TP/port info
- Minor cleanup in parallel args setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…disagg

- Export DECODE_MTP_SIZE and SPEC_DECODING in dsv4_fp4_mi355x_atom-disagg.sh
  so they reach server_atom.sh via submit.sh → job.slurm
- Add DECODE_MTP_SIZE to check_env_vars in dsv4_fp4_mi355x_atom-disagg.sh
- Pass BENCH_REQUEST_RATE into Docker container in job.slurm DOCKER_ENV_COMMON

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DECODE_MTP_SIZE comes from additional-settings and has a default of 0,
so it should not be required.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…h.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove spaces from JSON value so it doesn't get word-split when
expanded inside the eval'd command string.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
OPT_ARGS array expansion inside eval'd string caused bash word-splitting,
breaking the --hf-overrides JSON argument. Inline the flag directly in all
three server commands and remove the now-unused OPT_ARGS definition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Define once near SPEC_ARGS and reference in all three server commands
(prefill node 0, additional prefill nodes, decode nodes).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
"${ARRAY[@]}" inside a double-quoted assignment breaks bash -n's quote
parser. Since all three CMD strings are passed to eval, ${ARRAY[*]}
is equivalent — eval handles word splitting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- benchmarks/multi_node/minimaxm3_fp4_mi355x_atom-disagg.sh: new CI entry
  point for MiniMax-M3-MXFP4, mirroring dsv4_fp4_mi355x_atom-disagg.sh.
  No MTP (SPEC_DECODING=none), KV_CACHE_DTYPE=auto (no fp8),
  MAX_MODEL_LEN/MAX_NUM_BATCHED_TOKENS=32768.

- server_atom.sh: make --kv_cache_dtype conditional (skipped when
  KV_CACHE_DTYPE is empty or "auto"); add MAX_MODEL_LEN,
  MAX_NUM_BATCHED_TOKENS, CUDAGRAPH_OPT support (prefill+decode for
  model-len args; decode-only for cudagraph).

- job.slurm: pass MAX_MODEL_LEN, MAX_NUM_BATCHED_TOKENS, CUDAGRAPH_OPT
  through Docker env for atom-disagg engine.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…UCE_QUANTIZATION=INT4

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Also remove CUDAGRAPH_OPT from job.slurm (linter cleanup).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…isagg.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r default)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e --enable-tbo for non-DSv4 models

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…YPE default to empty for minimaxm3 disagg

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ode node

- Change runner from mi355x to mi355x-disagg in amd-master.yaml for minimaxm3-fp4 disagg
- Add dynamic CUDAGRAPH_SIZES selection in server_atom.sh based on max concurrency thresholds (512/1024/2048)
- Pass --cudagraph-capture-sizes to decode node server args

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…4-Pro only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use ${KV_CACHE_DTYPE-fp8} so empty string (set by minimaxm3 script) is
left as-is, avoiding unintended --kv-cache-dtype pass-through.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dtype flag

Set KV_CACHE_DTYPE to auto in minimaxm3_fp4_mi355x_atom-disagg.sh and
revert server_atom.sh to use :- expansion (auto is explicitly excluded
from KV_CACHE_ARG in server_atom.sh, so the flag is not passed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- disagg.sh: export MEM_FRAC_STATIC=0.8 and MAX_NUM_SEQS=128
- server_atom.sh: fix missing _MAX_CONC assignment before cudagraph size check
- amd-master.yaml: trim ISL=8192 to 1P1D only, cap conc at 512 for both ISLs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ove stale perf-changelog entry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
seungrokj and others added 4 commits June 23, 2026 10:36
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- amd-master.yaml: bump image to rocm/atom-dev:MiniMax-M3-20260622
- minimaxm3_fp8_mi355x_atom-disagg.sh: unconditionally set MAX_MODEL_LEN=32768
- server_atom.sh: minor comment cleanup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Oseltamivir

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run 27996171132

@Oseltamivir Oseltamivir requested a review from a team June 25, 2026 00:59
@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.


感谢你的贡献!对于 vLLM 与 SGLang,请确保你的 recipe 与官方 vLLM recipes 和/或 SGLang cookbook 保持一致

如果不一致,请先创建一个 PR,之后我们才能将你的单节点 PR 合并到 master 分支。让我们确保文档保持一流水准,使整个 ML 社区都能从你的辛勤工作中受益!谢谢

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。如果选择重新运行失败的任务,PR 作者有责任确保其最终通过。参见 GitHub 关于重新运行失败任务的文档:https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

一般而言,PR 作者应先向相应公司的 CODEOWNERS 请求审阅并获得 PR 批准,然后再请求核心维护者审阅。

如需更多帮助,PR 作者可通过 Slack 联系核心维护者。

@Oseltamivir Oseltamivir merged commit 02ec884 into main Jun 25, 2026
26 checks passed
@Oseltamivir Oseltamivir deleted the recovery/reuse-pr-1865 branch June 25, 2026 01:01
@Oseltamivir

Copy link
Copy Markdown
Collaborator Author

Ingest recovery complete ✅

Official database ingest for PR #1865 (minimaxm3-fp8-mi355x-atom-disagg) has been recovered via sweep artifact reuse — no GPU benchmarks were rerun.

Original failure

  • Target push-to-main run: 28138987642, setup job 83331972221failed (conclusion failure).
  • Root cause: PR [AMD] Add MiniMax-M3-FP8 MI355X ATOMESH #1865 had /reuse-sweep-run authorization but its branch was rebased/force-pushed and squash-merged, so no successful run-sweep.yml pull_request run remained among its 34 commits; the setup job demanded an explicit pin. No bogus ingest landed (setup failed before trigger-ingest).

Reused source

  • Source run: 27996171132, attempt 1, head SHA fa89765aa9c838c6143e1b2d16dd71bccac40cbc, conclusion success (branch amd/atom_mesh_0619_m3_fp8).
  • Semantics check vs the merged commit 4c021b13: the resolved master-config object for minimaxm3-fp8-mi355x-atom-disagg is byte-identical, and server_atom.sh/env_atom.sh/models_atom.yaml/server.sh/launcher/benchmark_lib.sh are unchanged. The submit.sh/job.slurm/setup_deps.sh deltas are all vllm-disagg-gated or comments and do not touch the atom-disagg execution path. Source coverage is authoritative.

Recovery carrier

  • Recovery PR head 51a7034a3fd2984fa91068ca1b75bebdff592caf: parent¹ = recovery commit 9f819db29d93141a28c783b97d15620b37a4c097, parent² = source SHA fa89765a; tree unchanged (only the perf-changelog.yaml append).
  • Squash-merge commit on main: 02ec884a36cd3d9c4dbd0d879f7560131708d2fd (admin merge — all checks green, base-branch policy was the sole blocker since required sweep checks are skipped on the reuse path).

Recovery push run 28139803392success

  • setup ran, reuse-enabled=true, reuse-source-run-id=27996171132; reuse-ingest-artifacts ✅, upload-changelog-metadata ✅, trigger-ingest ✅ (collect-results/collect-evals skipped).

Downstream ingest (InferenceX-app) 28139834993success

  • Keyed to RUN_ID: 28139803392; reused source 27996171132 attempt 1.
  • Steps all green: source-wait, artifact download (no failures), flatten, DB ingest, run overrides, database verify, Vercel cache invalidation, unmapped-entity check (no unmapped entities; Slack notifications skipped).

Recovered coverage: 20 fixed-sequence bmk rows (minimaxm3 1k1k + 8k1k atom-disagg, TP4, conc 1–512) + 10 eval rows (8k1k gsm8k). Validated locally with validate_reusable_sweep_artifacts.py before merge.

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.

2 participants