Skip to content

Bump CI to TheRock 7.14#4952

Open
causten wants to merge 27 commits into
developfrom
bumpci7_13
Open

Bump CI to TheRock 7.14#4952
causten wants to merge 27 commits into
developfrom
bumpci7_13

Conversation

@causten

@causten causten commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Move CI to TheRock 7.14

Technical Details

Changes were significant enough to just rename original files to legacy and add the 7.13 to the default files

Changelog Category

Add a CHANGELOG.md entry for any option other than Not Applicable

    • Added: New functionality.
    • Changed: Changes to existing functionality.
    • Removed: Functionality or support that has been removed. (Compared to a previous release)
    • Optimized: Component performance that has been optimized or improved.
    • Resolved Issues: Known issues from a previous version that have been resolved.
    • Not Applicable: This PR is not to be included in the changelog.

@causten
causten requested a review from a team as a code owner June 10, 2026 16:46
Copilot AI review requested due to automatic review settings June 10, 2026 16:46

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 moves MIGraphX’s CI and default Docker build environment to ROCm “TheRock” multi-arch (amdrocm-*) packages targeting ROCm 7.13, while preserving older ROCm (7.2.x and earlier) flows via “legacy” Dockerfiles.

Changes:

  • Added a cross-distro tools/install_build_prereqs.sh to install build prerequisites + TheRock ROCm components (optionally via wheels).
  • Updated CI image Dockerfile (hip-clang.docker) and the default Dockerfile to use Ubuntu 24.04 + ROCm 7.13 TheRock packages.
  • Introduced legacy Dockerfiles and updated docs/changelog to reflect the new default and legacy paths.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
tools/install_build_prereqs.sh New shared installer script for build prerequisites and ROCm TheRock components.
tools/docker/therock_deb.docker Removed older TheRock deb-based Dockerfile (replaced by new defaults/legacy split).
tools/docker/legacy.dockerfile Added legacy dev Dockerfile for ROCm 7.2.x and older.
README.md Updated Docker build instructions and documented legacy Dockerfile usage.
hip-clang.docker Updated CI image to Ubuntu 24.04 + ROCm 7.13 TheRock, and prebuilds deps via rbuild.
hip-clang-legacy.docker Added legacy CI image Dockerfile (older ROCm packaging).
Dockerfile Updated default dev Dockerfile to Ubuntu 24.04 + ROCm 7.13 TheRock using the shared prereqs script.
CHANGELOG.md Added entry for ROCm 7.13/TheRock build support.
.github/workflows/ci.yaml Updated CI image tag hashing inputs to reflect the new prereqs script.

Comment thread tools/install_build_prereqs.sh Outdated
Comment thread tools/install_build_prereqs.sh Outdated
Comment thread Dockerfile Outdated
Comment thread Dockerfile Outdated
Comment thread hip-clang.docker
Comment thread CHANGELOG.md
Comment thread README.md Outdated
Comment thread tools/docker/hip-clang-legacy.docker
Comment thread hip-clang.docker Outdated
Comment thread hip-clang.docker Outdated
Comment thread hip-clang.docker Outdated
Comment thread hip-clang.docker Outdated
Comment thread hip-clang.docker Outdated

@pfultz2 pfultz2 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The AI generated dockers are really awful and should be simplified and made more readable like the original dockers. Too many commands put into the same line.

Also, this is missing the update to the SLES docker.

Comment thread hip-clang.docker Outdated
Comment thread tools/install_build_prereqs.sh Outdated
Comment thread tools/install_build_prereqs.sh Outdated
Comment thread Dockerfile
hipsparselt \
half \
libssl-dev \
zlib1g-dev && \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We are missing packages here, like clang-17.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

While checking the ASAN issue I'm going to go with a suggested workaround using the clang version provided by TheRock since clang-17 didn't have a fix. runtime ASAN_OPTIONS=detect_odr_violation=0, or compile-time -mllvm -asan-use-private-alias=1 + use_odr_indicator=1.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

runtime ASAN_OPTIONS=detect_odr_violation=0, or compile-time -mllvm -asan-use-private-alias=1 + use_odr_indicator=1.

That workaround never fixed the issue in the past.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Also, this is just making more unnecessary changes in this PR. This PR should only focus on updating to rocm 7.13, it shouldn't be making these change. The docker file should have a minimal amount of changes with most of the changes in install_preqs.sh file.

Comment thread Dockerfile
Comment thread Dockerfile
Comment thread Dockerfile
@causten causten changed the title Bumpci7 13 Bump CI to TheRock 7.13 Jun 11, 2026
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #4952   +/-   ##
========================================
  Coverage    92.90%   92.90%           
========================================
  Files          603      603           
  Lines        32526    32526           
========================================
  Hits         30217    30217           
  Misses        2309     2309           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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

Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.

Comment thread .github/workflows/ci.yaml Outdated
Comment thread tools/install_prereqs.sh
Comment thread hip-clang.docker
Comment thread tools/install_prereqs.sh Outdated
Comment thread Dockerfile
@CharlieL7
CharlieL7 self-requested a review June 29, 2026 15:31
Comment thread CMakeLists.txt

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Why are the clang_tidy flags being changed?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I assume these are new warnings from newer cland tidy version. We should address these in a seperate PR.

Comment thread Dockerfile
RUN /install_prereqs.sh /usr/local / && rm /install_prereqs.sh && rm /requirements-py.txt
RUN test -f /usr/local/hash || exit 1
COPY tools/install_prereqs.sh /tmp/install_prereqs.sh
RUN chmod +x /tmp/install_prereqs.sh && \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Add install_preqs.sh like we did in the other dockerfile.

Comment thread Dockerfile
"torchaudio==2.11.0+rocm${ROCM_VERSION}.0"

ADD tools/requirements-py.txt /requirements-py.txt
RUN CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" pip3 install -r /requirements-py.txt && \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This should be done in the install_preqs.sh file.

Comment thread Jenkinsfile Outdated
mkdir build
cd build
cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DBUILD_DEV=On -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DMIGRAPHX_DISABLE_VIRTUAL_ENV=ON ${flags} ..
cmake -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DBUILD_DEV=On -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DMIGRAPHX_DISABLE_VIRTUAL_ENV=ON ${flags} ..

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

/usr/local is already part of the prefix path in cmake. This should not be needed.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

it wasn't working without it. See the build logs

Comment thread hip-clang.docker
Comment thread hip-clang.docker
@causten causten changed the title Bump CI to TheRock 7.13 Bump CI to TheRock 7.14 Jul 16, 2026
@causten
causten requested a review from Copilot July 16, 2026 16:33
causten and others added 18 commits July 17, 2026 10:22
Mirrors the same fix applied to Jenkinsfile in 667c6fe. The rbuild
prepare step installs rocm-cmake into /usr/local inside the SLES Docker
image, but without this prefix path cmake falls back to the older
system-installed package which lacks rocm_add_version_resource, causing
the configure step to fail with "Unknown CMake command".

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>

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

Copilot reviewed 15 out of 15 changed files in this pull request and generated 7 comments.

Comment thread tools/install_prereqs.sh
Comment thread tools/docker/ort.dockerfile Outdated
Comment thread tools/docker/ort.dockerfile Outdated
Comment thread tools/docker/ort.dockerfile Outdated
Comment thread hip-clang.docker
Comment thread tools/docker/sles.docker Outdated
Comment thread Dockerfile

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

Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.

Comment on lines +112 to +126
# Arch-suffixed blas package: amdrocm-blas<ver>-<arch>
if(_name MATCHES "^amdrocm-blas([0-9][0-9.]*)-(gfx[0-9a-z]+)$")
if(NOT _version)
set(_version "${CMAKE_MATCH_1}")
endif()
if(NOT _first_arch)
set(_first_arch "${CMAKE_MATCH_2}")
endif()
list(APPEND _all_archs "${CMAKE_MATCH_2}")
# Non-arch blas package: amdrocm-blas<ver> (version fallback only)
elseif(_name MATCHES "^amdrocm-blas([0-9][0-9.]*)$")
if(NOT _version_no_arch)
set(_version_no_arch "${CMAKE_MATCH_1}")
endif()
endif()
Comment thread tools/install_prereqs.sh
Comment thread test/gpu/gemm_tune.cpp
Comment on lines +189 to +196
// TODO: JIRA Ticket TBD - rocBLAS solution-index validation
// (rocblas_gemm_flags_check_solution_index) does not report invalid indices on
// gfx1201; it returns rocblas_status_success for any index, so an invalid index
// is never reset to the default. Skip on gfx1201 until rocBLAS is fixed.
if(migraphx::gpu::get_gfx_name(migraphx::gpu::get_device_name()) == "gfx1201")
{
test::skip("rocBLAS solution-index validation is broken on gfx1201 (JIRA Ticket TBD)");
}
Comment on lines +46 to +57
# TheRock installs into a versioned root (/opt/rocm/core-<ver>). Expose the
# conventional /opt/rocm/{bin,lib,llvm,...} layout expected by MIGraphX tooling.
RUN mkdir -p /opt/rocm && \
for d in bin lib libexec include share llvm amdgcn; do \
ln -snf core-${ROCM_VERSION}/$d /opt/rocm/$d; \
done && \
echo "/opt/rocm/lib" > /etc/ld.so.conf.d/rocm.conf && \
echo "/opt/rocm/llvm/lib" > /etc/ld.so.conf.d/rocm-llvm.conf && \
ldconfig

ENV ROCM_PATH=/opt/rocm
ENV PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH
Comment thread Dockerfile
Comment on lines +80 to +90
# TheRock installs into a versioned root (/opt/rocm/core-<ver>). Expose the
# conventional /opt/rocm/{bin,lib,llvm,...} layout expected by MIGraphX tooling.
RUN mkdir -p /opt/rocm && \
for d in bin lib libexec include share llvm amdgcn; do \
ln -snf core-${ROCM_VERSION}/$d /opt/rocm/$d; \
done && \
echo "/opt/rocm/lib" > /etc/ld.so.conf.d/rocm.conf && \
echo "/opt/rocm/llvm/lib" > /etc/ld.so.conf.d/rocm-llvm.conf && \
ldconfig
ENV ROCM_PATH=/opt/rocm
ENV PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants