Repository navigation
Conversation
mkuznet1
marked this pull request as ready for review
October 19, 2026 11:25
1 task done
mkuznet1
added this pull request to stack #13181
October 19, 2026 11:27
Contributor
There was a problem hiding this comment.
ARGUS
Findings
5 more finding(s), not posted inline
projects/rccl/ci/scripts/test_madengine.py:318(Low) check_mad_knobs passes if a knob name appears anywhere in the script text, including a commentprojects/rccl/ci/scripts/test_madengine.py:590(Low) squash_log_spam drops the whole physical line on an unanchored match, losing any output glued to the warningprojects/rccl/ci/scripts/test_madengine.py:572(Low) squash_log_spam, Step 5a and test_log_squash.py are not mentioned in the PR descriptionprojects/rccl/ci/scripts/tests/test_workload_configs.py:3(Low) No CI workflow runs projects/rccl/ci/scripts/tests, so the new workflow/config consistency checks guard nothing on PRsprojects/rccl/ci/scripts/tests/test_workload_configs.py:79(Low) test_job_budget_covers_time_limit accepts 1 minute of queue slack, so 405b at job_timeout_minutes '390' still passes
Bottom line: Looks approval ready.
Comment @argus review to re-run, or @argus re-review after pushing.
| # at WARN, so NCCL_DEBUG=WARN keeps it. GPT-OSS-120B's MoE all-to-all made it | ||
| # 777600 lines per node per phase -- 97% of a 180 MB node log, which madengine | ||
| # keeps three copies of -- and run 38238634668 alone left 2.1 GB on /apps, under | ||
| # the runner account's quota. |
Contributor
There was a problem hiding this comment.
Low
A few new comments retell history (run ids, MB counts, throughput) that the workflow comments or MAD PR already record. Other sites: test_madengine.py:135-140, therock-rccl-ci-linux.yml:266-269. For example:
Suggested change
| # the runner account's quota. | |
| # RCCL prints this at WARN on every call of a deprecated API name | |
| # (src/misc/api_trace.cc), so MoE all-to-all fills the node logs with it. |
mkuznet1
force-pushed
the
ci/madengine-llama-70b-pp4
branch
from
October 19, 2026 15:29
9030070 to
9cd0f3d
Compare
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
i-kosarev
added a commit
that referenced
this pull request
Oct 19, 2026
#13728 is stacked on this branch and already folds this job into the weekly matrix, with the same nodes '4' / job_timeout_minutes '450' and a third workload besides. Doing it here too just hands that PR a conflict to resolve against itself. Restores therock-test-madengine-405b as its own job and takes the per-entry job_timeout_minutes back out of the matrix, so the fold lands once, where it was planned.
mkuznet1
force-pushed
the
ci/madengine-llama-70b-pp4
branch
from
October 20, 2026 10:49
9cd0f3d to
72a3884
Compare
New workload llama-3.1-70b-pp4-training: the 70B Primus/Megatron model on the same image, with FSDP2 swapped for TP1 x PP4 x DP4 via PRIMUS_EXTRA_ARGS, so pipeline point-to-point traffic is what RCCL carries. Fixed at 2 nodes, where the layout was validated (ROCm/MAD#284). - MAD_REF -> 36339bd8 (mad-rccl with MAD#284, which reads PRIMUS_EXTRA_ARGS). check_mad_knobs() fails the run before any allocation when the pinned Megatron script never mentions a PRIMUS_* knob the workload sets; otherwise the knob is ignored and the PP=4 key would score the FSDP layout. - The weekly matrix gains the PP=4 entry and absorbs the separate 405B job: every entry carries its own nodes and job_timeout_minutes, so one matrix with max-parallel: 1 serialises every weekly workload, 405B included. The nightly job states its 390 minutes too instead of inheriting the default. - tests/test_workload_configs.py: dispatch choices equal WORKLOAD_CONFIGS, every scheduled leg names a config, uses its required_nodes, and leaves the script more than its SLURM time_limit. Co-authored-by: Cursor <cursoragent@cursor.com>
mkuznet1
force-pushed
the
ci/madengine-llama-70b-pp4
branch
from
October 20, 2026 16:02
72a3884 to
2f98664
Compare
…ama-70b-pp4 Co-authored-by: Cursor <cursoragent@cursor.com> # Conflicts: # .github/workflows/therock-rccl-ci-linux.yml
This branch has not been deployed
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.
Motivation
The madengine gate trains Llama-3.1-70B with FSDP2, where RCCL carries
all-gather / reduce-scatter. This adds the same model and image with the
parallel layout switched to TP1 x PP4 x DP4, so pipeline send/recv between
nodes is what RCCL carries. It runs on the weekly schedule only.
Stacked on #13182, which is stacked on #13180 and #12899.
Changes
llama-3.1-70b-pp4-training. It reuses the 70B model, image,precisions (BF16, FP8) and 4 h
time_limit, and adds oneenv_varsentry:PRIMUS_EXTRA_ARGS="--pipeline_model_parallel_size 4 --use_torch_fsdp2 false --use_distributed_optimizer true".Megatron rejects FSDP2 together with PP > 1, so all three overrides go
together.
required_nodes: 2, because PP4 on 16 GPUs is DP4 and anotherscale would be another layout.
MAD_REFmoves to36339bd8, the Add PRIMUS_EXTRA_ARGS and MOE_A2A_BACKEND for Llama-3.1-70B PP=4 and DeepSeek-R1 a2a none MAD#284 merge onmad-rccl. That isthe only MAD change since
7a9a25e, and it is where the Megatron scriptstarts reading
PRIMUS_EXTRA_ARGS.check_mad_knobs()runs right after madengine install. It fails the run ifthe pinned Megatron script never mentions a
PRIMUS_*knob the workloadsets. Without it, an older pin would silently ignore the knob, and the PP=4
key would record FSDP numbers.
nodesand
job_timeout_minutes. That holds for the nightly job and for each entry ofthe weekly matrix:
therock-test-madengine-405bfrom feat(rccl): add JAX/MaxText Llama-3.1-405B on 4 nodes to the madengine gate #13182 becomes amatrix entry (4 nodes, 450 minutes, rationale kept as a comment).
max-parallel: 1now serialises every weekly workload, 405B included.Before, 405B could queue for 4 exclusive nodes alongside a 2-node leg.
job_timeout_minutes: '390'instead of inheritingthe default.
therock-rccl-test-madengine.yml.tests/test_workload_configs.pychecks that:WORKLOAD_CONFIGS;required_nodes;time_limit;check_mad_knobsbehaves correctly against a script with and without theknob.
Nightly vs weekly after this stack
llama-3.1-70b-training(FSDP2, 2N)test_scope=all), serialgpt-oss-120b-training(2N),llama-3.1-70b-pp4-training(2N),llama-3.1-405b-maxtext(4N)Validation
python3 -m unittest discover -s testsfromprojects/rccl/ci/scripts:19 tests pass.
check_mad_knobsagainst the real MAD scripts: the PP=4 workload passes on36339bd8and fails on7a9a25e;gpt-oss-120b-trainingpasses on both.Same layout, image and MAD change run by hand on ruby (SLURM job 74493,
2 x 8 MI355X, one phase in 62 min, all SUCCESS):
CI dispatch of the new key: TODO. The dispatch from this branch,
run 39238797725,
failed with
[Errno 122] Disk quota exceededin "Create Python environment",before any allocation: the runner account's home was full. feat(rccl): score the madengine gate against a same-node baseline #12899 now keeps
conda and pip out of that home.