Release notes#
AMD publishes two families of Primus training Docker image:
Image |
Backends |
Documented in |
|---|---|---|
|
Megatron-LM, TorchTitan, Megatron Bridge |
|
|
MaxText (JAX) |
The two families share a version number but are not built in lockstep — the same vNN.N tag can be weeks apart between families, and the MaxText family also ships patch releases (v26.3.1, v26.3.2) with no rocm/primus counterpart. Always read the section for the exact tag you are running.
This page is the single source of truth for image contents. Other pages link here instead of repeating version tables, so there is exactly one place to update per release. If you add a page that names an image tag, link to the relevant section below rather than restating the stack.
Every version below was read out of the published image itself. For v26.4 and v26.5 the values were additionally cross-checked against the release Dockerfiles in .github/workflows/docker-release/; earlier releases predate those files and are image-derived only. See Verifying the stack in an image to reproduce any table.
v26.5 (current)#
rocm/primus:v26.5#
Megatron-LM, TorchTitan, and Megatron Bridge backends.
Image ID |
|
Built |
2026-07-22 |
Size |
54.7 GB |
Manifest |
|
Dockerfile |
Software component |
Version |
|---|---|
ROCm |
7.15.0 ( |
Python |
3.12.3 |
PyTorch |
2.12.0+rocm7.15.0a20260720 |
Transformer Engine |
2.15.0.dev0+rocm7.15.0a20260716.a07e607 |
Flash Attention |
2.8.3 |
hipBLASLt |
1.4.1-1aa46415 |
Triton |
3.7.1+git0263a6a6.rocm7.15.0a20260720 |
RCCL |
2.30.4 |
torchvision |
0.27.0+rocm7.15.0a20260720 |
torchaudio |
2.11.0+rocm7.15.0a20260721 |
APEX |
1.14.0a0+rocm7.15.0a20260721 |
AITER |
0.1.14.post1 |
Primus-Turbo |
0.3.2.dev48 |
torchao |
0.15.0+gite9c7bead9 |
FBGEMM |
2026.7.22 |
mamba-ssm / causal-conv1d / grouped_gemm |
2.3.1 / 1.5.0.post8 / 1.1.4 |
transformers / datasets |
4.55.0 / 3.6.0 |
NumPy |
2.5.1 |
rocm/jax-training:maxtext-v26.5#
MaxText (JAX) backend.
Image ID |
|
Built |
2026-07-17 |
Size |
45.7 GB |
Manifest |
|
Dockerfile |
Software component |
Version |
|---|---|
ROCm |
7.14.0 |
Python |
3.12.3 |
JAX / jaxlib |
0.10.0 |
jax-rocm7-pjrt / jax-rocm7-plugin |
0.10.0+rocm7.14.0 |
Transformer Engine |
2.15.0.dev0+rocm7.15.0a20260707.72d01a0 |
hipBLASLt |
1.4.1-cd957402 |
RCCL |
2.30.4 (built from rocm-systems |
Flax |
0.12.2 |
TensorFlow |
2.21.0 (CPU-only, rebuilt from the ROCm fork) |
Optax / Orbax / Grain / tensorstore |
0.2.8 / 0.11.39 / 0.2.16 / 0.1.82 |
MaxText |
|
transformers / datasets |
5.9.0 / 4.8.5 |
NumPy |
2.0.2 |
amdsmi |
7.0.2 |
Note: The Transformer Engine wheel is tagged
rocm7.15.0a…even though the image ships ROCm 7.14.0. This is intentional and matches the Dockerfile.
Primus source for v26.5#
Use the release/v26.5 branch for both images:
git clone --recurse-submodules https://github.com/AMD-AGI/Primus.git
cd Primus
git checkout release/v26.5
git submodule update --init --recursive
Branch tip |
|
Megatron-LM |
|
TorchTitan |
|
Megatron Bridge |
|
MaxText |
|
Emerging-Optimizers |
|
HummingbirdXT |
|
Do not use the Primus checkout baked into the images. Both images contain a
/workspace/Primus, but neither tracksrelease/v26.5:
rocm/primus:v26.5was built fromb511d1b6(2026-07-22). Three commits have landed onrelease/v26.5since, which bumped the MaxText submodule from80f431d0toa7c6c7e5and added support for the v26.5 MaxText API.
rocm/jax-training:maxtext-v26.5was built frommainat8b5e8091(2026-07-17), because its Dockerfile pinsPRIMUS_BRANCH=mainrather than a commit. Its bundledthird_party/maxtextis80f431d0, which does not match the/workspace/maxtextcheckout (a7c6c7e5) the image was validated against.Cloning
release/v26.5yourself avoids both problems and gives you the MaxText the image was built around.
Changes since v26.4#
rocm/primus:
Component |
v26.4 |
v26.5 |
|---|---|---|
ROCm |
7.14.0 |
7.15.0 |
PyTorch |
2.12.0+rocm7.14.0a20260608 |
2.12.0+rocm7.15.0a20260720 |
Transformer Engine |
2.14.0.dev0+e6ede467 |
2.15.0.dev0+rocm7.15.0a20260716.a07e607 |
Triton |
3.7.0+gitb4e20bbe |
3.7.1+git0263a6a6 |
RCCL |
2.29.7 |
2.30.4 |
hipBLASLt |
1.4.1-be5adb9b |
1.4.1-1aa46415 |
AITER |
0.1.12.post2.dev214+gb5e03ed19 |
0.1.14.post1 |
Primus-Turbo |
0.3.0+3c39ef2 |
0.3.2.dev48 |
APEX |
1.11.0+rocm7.14.0a20260618 |
1.14.0a0+rocm7.15.0a20260721 |
NumPy |
2.4.6 |
2.5.1 |
Image size |
75.9 GB |
54.7 GB |
rocm/jax-training:maxtext:
Component |
v26.4 |
v26.5 |
|---|---|---|
JAX / jaxlib |
0.9.1 |
0.10.0 |
jax-rocm7-pjrt / jax-rocm7-plugin |
0.9.1+rocm7.14.0a20260526 |
0.10.0+rocm7.14.0 |
Transformer Engine |
2.12.0.dev0+635d7c08 |
2.15.0.dev0+rocm7.15.0a20260707.72d01a0 |
hipBLASLt |
1.4.0-807283e5 |
1.4.1-cd957402 |
RCCL |
2.28.9 |
2.30.4 |
TensorFlow |
2.20.0 |
2.21.0 |
MaxText |
|
|
transformers |
5.8.1 |
5.9.0 |
Image size |
63.6 GB |
45.7 GB |
JAX 0.10.0 requires Shardy. Set
shardy=Trueduring the training run on v26.5. See the Shardy migration guide.
v26.4#
rocm/primus:v26.4#
Image ID |
|
Built |
2026-06-18 |
Size |
75.9 GB |
Manifest |
|
Also published as |
|
Dockerfile |
Software component |
Version |
|---|---|
ROCm |
7.14.0 ( |
Python |
3.12.3 |
PyTorch |
2.12.0+rocm7.14.0a20260608 |
Transformer Engine |
2.14.0.dev0+e6ede467 |
Flash Attention |
2.8.3 |
hipBLASLt |
1.4.1-be5adb9b |
Triton |
3.7.0+gitb4e20bbe.rocm7.14.0a20260608 |
RCCL |
2.29.7 |
torchvision |
0.27.0+rocm7.14.0a20260608 |
torchaudio |
2.11.0+rocm7.14.0a20260617 |
APEX |
1.11.0+rocm7.14.0a20260618 |
AITER |
0.1.12.post2.dev214+gb5e03ed19 |
Primus-Turbo |
0.3.0+3c39ef2 |
torchao |
0.15.0+gite9c7bead9 |
FBGEMM |
2026.6.18 |
mamba-ssm / causal-conv1d / grouped_gemm |
2.3.1 / 1.5.0.post8 / 1.1.4 |
transformers / datasets |
4.55.0 / 3.6.0 |
NumPy |
2.4.6 |
rocm/jax-training:maxtext-v26.4#
Image ID |
|
Built |
2026-05-27 |
Size |
63.6 GB |
Manifest |
|
Also published as |
|
Dockerfile |
Software component |
Version |
|---|---|
ROCm |
7.14.0 |
Python |
3.12.3 |
JAX / jaxlib |
0.9.1 |
jax-rocm7-pjrt / jax-rocm7-plugin |
0.9.1+rocm7.14.0a20260526 |
Transformer Engine |
2.12.0.dev0+635d7c08 |
hipBLASLt |
1.4.0-807283e5 |
RCCL |
2.28.9 |
Flax |
0.12.2 |
TensorFlow |
2.20.0 (CPU-only) |
Optax / Orbax / Grain / tensorstore |
0.2.8 / 0.11.39 / 0.2.16 / 0.1.82 |
MaxText |
|
transformers / datasets |
5.8.1 / 4.8.5 |
NumPy |
2.0.2 |
amdsmi |
7.0.2 |
Primus source for v26.4#
rocm/primus:v26.4 bakes Primus at 236cfa9d, which is the commit the published v26.4 benchmark recipes pin:
git clone --recurse-submodules https://github.com/AMD-AGI/Primus.git
cd Primus
git checkout 236cfa9d
git submodule update --init --recursive
Earlier releases#
Headline versions only. Read the in-image manifest for the full stack of any image below — except v26.2 and v26.1, which predate the manifest (use pip list there).
The three MaxText v26.3.x images ship an identical software stack; they differ only in MaxText and Primus content.
Image |
Python |
ROCm |
Framework |
Transformer Engine |
RCCL |
|---|---|---|---|---|---|
|
3.12.3 |
7.2.1 |
PyTorch 2.10.0+git94c6e04 |
2.12.0.dev0+40434cf6 |
2.27.7 |
|
3.12.3 |
7.2.0 |
PyTorch 2.10.0a0+git449b176 |
2.8.0.dev0+51f74fa7 |
2.27.7 |
|
3.10.12 |
7.1.0 |
PyTorch 2.10.0.dev20251112+rocm7.1 |
2.6.0.dev0+f141f34b |
2.27.7 |
|
3.12.3 |
7.2.1 |
JAX 0.8.2 |
2.8.0.dev0+9b312832 |
2.27.7 |
|
3.12.3 |
7.2.1 |
JAX 0.8.2 |
2.8.0.dev0+9b312832 |
2.27.7 |
|
3.12.3 |
7.2.1 |
JAX 0.8.2 |
2.8.0.dev0+9b312832 |
2.27.7 |
|
3.12.3 |
7.1.1 |
JAX 0.8.2 |
2.8.0.dev0+aec00a7f |
2.27.7 |
Verifying the stack in an image#
Images from v26.3 onward ship a manifest at /workspace/.manifest/ recording exactly what was installed at build time:
File |
Contents |
|---|---|
|
full |
|
full |
|
every environment variable baked into the image |
|
the build’s commit tag |
|
the Dockerfile the image was built from |
docker run --rm --entrypoint bash rocm/primus:v26.5 -c 'cat /workspace/.manifest/requirements.txt'
Native library versions are not pip packages; read them from the ROCm headers:
docker run --rm --entrypoint bash rocm/primus:v26.5 -c '
grep -E "HIPBLASLT_VERSION_(MAJOR|MINOR|PATCH|TWEAK)" $(find $ROCM_PATH /opt/rocm -name hipblaslt-version.h 2>/dev/null | head -1)
grep -E "define NCCL_(MAJOR|MINOR|PATCH)" $(find $ROCM_PATH /opt/rocm -name rccl.h 2>/dev/null | head -1)'
Images older than v26.3 predate the manifest; query them with pip list directly.