Skip to content

ci: bump base image/runner to v26.4 and drop v26.3-only workarounds#896

Draft
WangLingxun wants to merge 2 commits into
mainfrom
chore/ci-bump-primus-v26.4
Draft

ci: bump base image/runner to v26.4 and drop v26.3-only workarounds#896
WangLingxun wants to merge 2 commits into
mainfrom
chore/ci-bump-primus-v26.4

Conversation

@WangLingxun

@WangLingxun WangLingxun commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Upgrade the Primus runtime image from rocm/primus:v26.3 to v26.4 across CI Dockerfile/workflow, runner config, example launch scripts, benchmark scripts and docs (14 files). JAX/MaxText base image not upgraded this round.

Image bump

  • .github/workflows/ci.yaml & docker/Dockerfile: BASE_IMAGE -> v26.4, sync descriptive v26.3 comments
  • ci.yaml: point torch unittest job to the v26.4 self-hosted runner label primus-lm-cicd-v26.4-tas8n-a16-40
  • README/examples/docs/benchmark & runner scripts: bump documented image tag to v26.4, release branch to release/v26.4, and pip pin to primus==26.4.0

Workaround cleanup

  • Drop the v26.3-only "Purge stale TorchTitan install" step: v26.4 no longer bundles a torchtitan that shadows the submodule, so the conftest sys.path injection alone resolves the v0.2.2 (PEP-420 namespace) package.
  • Drop the origami (rocm-libraries@223648a) install from both the Dockerfile and CI: this base image already ships no origami, so primus_turbo falls back to heuristic kernel selection for MoE grouped-gemm (benchmarked: no measurable gain on gfx942). Left the pip install one-liner in a comment so it's easy to add back if ever needed (e.g. gfx950 tuning).
  • aiter_deepbind_patches.py now self-detects whether it's still needed: _can_install_aiter_deepbind also checks transformer_engine.__version__ and skips installing the RTLD_DEEPBIND hook once TE >= 2.14 (confirmed fixed in v26.4 — the vendored lib was renamed and no longer exports the colliding aiter::mha_bwd symbol). Unknown/unparseable versions fail safe towards "still install it". This keeps the patch a no-op on v26.4+ while remaining the required fix for anyone still on rocm/primus:v26.3 or older, without needing separate per-arch hardware validation (the same TE wheel serves gfx942/gfx950). Added unit tests for the new gating logic.

@WangLingxun
WangLingxun marked this pull request as draft July 21, 2026 06:21
- ci.yaml: BASE_IMAGE + runs-on v26.3 -> v26.4; drop the v26.3-only
  'Purge stale TorchTitan' step (v26.4 ships no torchtitan to shadow).
  Keep 'Install fixed origami' (v26.4 still ships no origami).
- Dockerfile: default BASE_IMAGE + comments v26.3 -> v26.4.
- docs/scripts: bump default image refs to v26.4, release branch to
  release/v26.4, and pip pin to primus==26.4.0.
@WangLingxun
WangLingxun force-pushed the chore/ci-bump-primus-v26.4 branch from 5b61b49 to c6d16f3 Compare July 21, 2026 06:46
- Dockerfile/ci.yaml: drop the origami (rocm-libraries@223648a) install.
  This base image already ships no origami, so primus_turbo falls back
  to heuristic kernel selection for MoE grouped-gemm (benchmarked: no
  measurable gain on gfx942). Comments show the pip install one-liner
  to add it back if ever needed (e.g. gfx950 tuning).

- aiter_deepbind_patches.py: _can_install_aiter_deepbind now also checks
  transformer_engine.__version__ and skips installing the RTLD_DEEPBIND
  hook once TE >= 2.14 (confirmed fixed in rocm/primus:v26.4: vendored
  lib renamed, no longer exports the colliding aiter::mha_bwd symbol).
  Unknown/unparseable versions fail safe towards 'still install it'.
  This keeps the patch a no-op on new images while remaining the
  required fix for anyone still on rocm/primus:v26.3 or older, without
  needing separate per-arch hardware validation (same TE wheel serves
  gfx942/gfx950).

- Add unit tests for the new gating logic (no GPU required).
@WangLingxun
WangLingxun force-pushed the chore/ci-bump-primus-v26.4 branch from a6e9036 to 90e0389 Compare July 21, 2026 09:24
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.

1 participant