Skip to content

Primus v26.6 - #239

Open
coketaste wants to merge 3 commits into
ROCm:developfrom
coketaste:primus-v26.6
Open

Primus v26.6#239
coketaste wants to merge 3 commits into
ROCm:developfrom
coketaste:primus-v26.6

Conversation

@coketaste

Copy link
Copy Markdown
Contributor

Summary

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 since
    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 silently
    skipped, hiding all four nemo_automodel configs. Discovery goes 414 -> 438.

benchmark/primus/README.md:

  • Correct the BASE_DOCKER example (still showed 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 backends that are discovered but not
    tabulated.
  • Restore the v26.5 two-column | Model | Tag | table shape (fold precision
    into the Model cell) and capitalize the Model column's leading letter to
    match prior formatting.

Verification

  • 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.

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.6 will fail
until AMD-AGI pushes it.

coketaste and others added 3 commits August 28, 2026 15:46
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>
Copilot AI lite review requested due to automatic review settings August 28, 2026 21:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 BACKEND from 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

@GeneDer GeneDer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@coketaste coketaste self-assigned this Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants