Primus v26.6 - #239
Open
coketaste wants to merge 3 commits into
Open
Conversation
Bump the Primus integration from v26.5 to v26.6.
- docker/primus.ubuntu.amd.Dockerfile: BASE_DOCKER rocm/primus:v26.5 -> v26.6.
Note the v26.6 image is not on Docker Hub yet (latest published is v26.5.1),
so builds will fail with 'manifest unknown' until it is pushed.
- scripts/Primus: pin 30cf451 -> 2aa05ea, the head of release/v26.6. Record
branch = release/v26.6 in .gitmodules so the pin no longer drifts onto main.
Two fixes the bump makes user-visible:
- scripts/primus_train/run.sh: derive BACKEND from the config's
modules.{pre,post}_trainer.framework instead of the launcher directory.
prepare_experiment.py compares BACKEND against that field and aborts on
mismatch, and the directory name is not always the framework: v26.6 adds
maxdiffusion and nemo_automodel (which fell through to megatron), while
diffusion and moe_package were already wrong at v26.5. Path inference is
kept as a fallback, and MaxText/MaxDiffusion keep their exact casing because
run_pretrain.sh string-matches those literals.
- scripts/primus_train/get_models_json.py: pass recursive=True so ** spans
directories. Without it, configs nested one level deeper were skipped,
hiding all four nemo_automodel configs. Discovery goes 414 -> 438.
- benchmark/primus/README.md: correct the BASE_DOCKER example (still v26.4) and
the submodule-init snippet (git submodule update only runs at the worktree
toplevel); drop the eight tags that no longer resolve (Zebra-Llama removed
upstream, TorchTitan deepseek_v3_16b split into BF16/FP8); regenerate the
Megatron and TorchTitan tables from the pinned checkout and add MI325X; add a
summary table for the backends that are discovered but not tabulated.
Verified: BACKEND resolution matches the declared framework for all 444 configs
in the checkout; madengine discover reports 439 entries; all 355 README tags
resolve to discovered models; the Dockerfile builds and bakes the v26.6 tree.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The v26.6 table regeneration added a separate Precision column; the v26.5 README instead folded precision into a single Model column. Restore that two-column shape (`| Model | Tag |`) across all 6 tables: underscores in the model name become spaces and the precision (when present) is appended to the end of the Model cell. Tag values are untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
v26.5 capitalized display names (Llama, DeepSeek, Mixtral, ...); apply the same first-letter capitalization mechanically across all 355 v26.6 rows so the Model column isn't all-lowercase. Tag values are untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
coketaste
requested review from
Cemberk,
amathews-amd,
gargrahul,
itej89,
lcskrishna and
leconcio
as code owners
August 28, 2026 21:40
Contributor
There was a problem hiding this comment.
Pull request overview
This PR bumps the Primus integration from v26.5 to v26.6, updating the base image reference, the Primus submodule tracking metadata, and the MAD-side Primus training/discovery utilities so they work correctly with the newer Primus launcher/config layout.
Changes:
- Update Primus training launcher selection by deriving
BACKENDfrom the config’s declared framework (with a path-based fallback). - Fix Primus config discovery to actually recurse through
**config directories. - Bump the Primus base Docker image tag to v26.6 and refresh the benchmark README to match the pinned Primus release content.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| scripts/primus_train/run.sh | Derives BACKEND from YAML framework fields (with fallback) to avoid mismatches as Primus adds/changes launchers. |
| scripts/primus_train/get_models_json.py | Enables recursive globbing so nested configs are discovered. |
| docker/primus.ubuntu.amd.Dockerfile | Updates the default Primus base image tag to v26.6. |
| benchmark/primus/README.md | Updates submodule init instructions, base image example, and regenerates supported-model tables for v26.6. |
| .gitmodules | Records the intended submodule branch (release/v26.6) to avoid drift when using --remote. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| ```dockerfile | ||
| ARG BASE_DOCKER=docker.io/rocm/primus:v26.4 | ||
| ARG BASE_DOCKER=rocm/primus:v26.6 |
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.
Summary
Bump the Primus integration from v26.5 to v26.6.
docker/primus.ubuntu.amd.Dockerfile:BASE_DOCKERrocm/primus:v26.5 -> v26.6.Note the v26.6 image is not on Docker Hub yet (latest published is v26.5.1), so
builds will fail with "manifest unknown" until it is pushed.
scripts/Primus: pin30cf451->2aa05ea, the head ofrelease/v26.6. Recordbranch = release/v26.6in.gitmodulesso the pin no longer drifts ontomain.Two fixes the bump makes user-visible:
scripts/primus_train/run.sh: deriveBACKENDfrom the config'smodules.{pre,post}_trainer.frameworkinstead of the launcher directory.prepare_experiment.pycomparesBACKENDagainst that field and aborts onmismatch, and the directory name is not always the framework — v26.6 adds
maxdiffusionandnemo_automodel(which fell through tomegatron), whilediffusionandmoe_packagewere already wrong at v26.5. Path inference iskept as a fallback, and MaxText/MaxDiffusion keep their exact casing since
run_pretrain.shstring-matches those literals.scripts/primus_train/get_models_json.py: passrecursive=Trueso**spansdirectories. Without it, configs nested one level deeper were silently
skipped, hiding all four
nemo_automodelconfigs. Discovery goes 414 -> 438.benchmark/primus/README.md:BASE_DOCKERexample (still showed v26.4) and the submodule-initsnippet (
git submodule updateonly runs at the worktree toplevel).TorchTitan
deepseek_v3_16bsplit into BF16/FP8).add MI325X; add a summary table for backends that are discovered but not
tabulated.
| Model | Tag |table shape (fold precisioninto the Model cell) and capitalize the Model column's leading letter to
match prior formatting.
Verification
checkout.
madengine discoverreports 439 entries; all 355 README tags resolve todiscovered models.
Caveat
The v26.6 Primus image isn't published to Docker Hub yet (only v26.5.1 is
live), so image builds referencing
BASE_DOCKER=rocm/primus:v26.6will failuntil AMD-AGI pushes it.