Skip to content

fix(docker): build the ROCm image on ROCm 7.2.4 - #838

Merged
davide221 merged 1 commit into
mainfrom
fix/docker-rocm-72
Oct 12, 2026
Merged

davide221 merged 1 commit into
mainfrom
fix/docker-rocm-72

Conversation

@davide221

@davide221 davide221 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

What

The :rocm Docker image builds on ROCm 7.2.4 instead of 6.4.1, and one DS4 indexer call moves inside its rocWMMA guard.

Why

  • The image was the only build left on ROCm 6.4.1. The self-hosted AMD CI runner compiles with /opt/rocm-7.2.4, the Lucebox boxes run 7.2.4, and the README lists ROCm 7.2 for both supported AMD GPUs (R9700 and Strix Halo).
  • Every main push since 10-07 failed the ROCm image build. The last green one was 48f49bb1. Two changes compile on 7.2 but not on 6.4.1:
  • PR checks never saw it. The Docker workflow runs on PRs only when Docker files change, and the AMD runner already builds with 7.2.4.
  • A ROCm 7.x host already needed 7.x userspace. The Dockerfile notes that a 6.4.x userspace segfaults at model load against a 7.x host driver.

Changes

  • Dockerfile.rocm, docker-bake.hcl: ROCM_VERSION 6.4.1 → 7.2.4, on Ubuntu 24.04 (base rocm/dev-ubuntu-24.04:7.2.4). ROCm 7.2's CMake package files use block(), which needs CMake 3.25; Ubuntu 22.04 ships 3.22, and the 22.04 image stopped at configure. 24.04 has a Python 3.12 of its own, so UV_PYTHON_PREFERENCE=only-managed keeps uv's managed build under /opt/uv, as in the CUDA image (without it the final chmod of /opt/uv failed). The notes say 7.2.4 is the tested stack and that the engine no longer builds on 6.x.
  • ds4-indexer.cu: the tokenwise call is inside the existing rocWMMA 2.x guard, so a source build without rocWMMA 2.x compiles again. Every score then takes the scalar kernel, one token each, as the rest of that build already does.
  • hip_compat/cuda_runtime.h: a comment said the CI runner was on ROCm 6.4.x.

Tested

  • Full main-config image: LUCE_HIP_ARCHES="gfx1151;gfx1100;gfx1200;gfx1201" docker buildx bake rocm-local on a Strix Halo + R9700 box. Configure, all 424 build steps and the runtime stage pass; the image is 26.6 GB.
  • Image smoke test on that box (host ROCm 7.2 driver):
    • /opt/rocm/.info/version in the image is 7.2.4;
    • test_server_unit: 658 passed, 2 skipped;
    • luce_server --list-devices sees the R9700 (gfx1201) and the Strix Halo iGPU (gfx1151);
    • Qwen3-0.6B (BF16), served on each GPU, answers a chat request: "Three prime numbers are 2, 3, and 5."
  • CI: this PR touches Dockerfile.rocm, so the Docker workflow builds the ROCm image (gfx1201) here, and the AMD GPU jobs build the indexer change.

Not tested

  • A host still on a ROCm 6.x kernel driver running the 7.2.4 image.
  • gfx1100 and gfx1200 cards: their code objects build, but there's no such card to run them on.

🤖 Generated with Claude Code

View guided diff

The :rocm image was the only build still on ROCm 6.4.1; the Lucebox boxes
and the AMD CI runner build and test on 7.2.4, and the README lists ROCm
7.2 for both supported AMD GPUs. Every main push since 10-07 failed it:

- mmid.cu calls __syncwarp() (#774), which ROCm 6 declares only on opt-in.
- The DS4 indexer's tokenwise path (#827) called the WMMA decode kernel
  outside the rocWMMA 2.x guard, and ROCm 6.4 ships rocWMMA 1.x.

The image now uses ROCm 7.2.4 on Ubuntu 24.04: ROCm 7.2's CMake package
files need CMake 3.25 or newer, and 22.04 ships 3.22. 24.04 has a Python
3.12 of its own, so uv is told to keep its managed build under /opt/uv,
as in the CUDA image. The tokenwise call moves inside the guard, so a
source build without rocWMMA 2.x compiles again; every score then takes
the scalar kernel, one token each.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@davide221 davide221 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Code review

No issues found. Checked for bugs and logic errors in the changed code.

Reviewed ac5477ca · 0 candidate issues checked, kept at ≥70% confidence · add the code-review label to review again

@davide221
davide221 merged commit 55a2dd0 into main Oct 12, 2026
13 checks passed
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