Skip to content

rocmPackages_10: add MIGraphX, RPP, MIVisionX - #579525

Draft
randomizedcoder wants to merge 66 commits into
NixOS:masterfrom
randomizedcoder:rocm10/12-migraphx-rpp
Draft

randomizedcoder wants to merge 66 commits into
NixOS:masterfrom
randomizedcoder:rocm10/12-migraphx-rpp

Conversation

@randomizedcoder

@randomizedcoder randomizedcoder commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Part 12/14. Part of splitting #573885 (rocmPackages: 7.2.4 -> 10.1) into smaller PRs, as asked in its review.

  • Adds to rocmPackages_10: migraphx, rpp; shared unchanged: mivisionx
  • Target: master. No existing derivation changes: rocmPackages_10 is not recursed into
  • Depends on rocmPackages_10: add MIOpen #579524. GitHub also shows the earlier parts' commits; only the last 4 commits (after 8e7e6e825ebc) are new here

How to review

  • First commit: copies the 7.2.4 expressions unchanged into rocm-modules/10/
  • Then one commit per package: the 10.1 changes, with the reasons in the commit message

Notes

  • MIGraphX stubs rocm_add_version_resource, a Windows-only macro missing from the therock-10.1 rocm-cmake
  • MIVisionX has no 10.x tag, so it stays shared at 7.2.4

Testing

  • rocmPackages_10 evaluates: 68 derivations, 0 failures
  • Built on x86_64-linux with the default GPU targets
  • nixpkgs-review: no rebuilds in the default package set
  • Hardware smoke tests: see rocmPackages: 7.2.4 -> 10.1 #579527

Series

Preparatory PRs, each against master: #579509, #579510, #579511, #579512, #579513.

Part PR Contents Base
1 #579514 rocmPackages_10: init master
2 #579515 llvm (LLVM 24) #579514
3 #579516 runtime #579515
4 #579517 profiling and debugging tools, RCCL #579516
5 #579518 rocPRIM, rocRAND, rocFFT #579517
6 #579519 hipBLASLt #579518
7 #579520 Tensile and rocBLAS #579519
8 #579521 sparse, solvers, rocALUTION, rocWMMA, hipfort #579520
9 #579522 composable_kernel #579521
10 #579523 rocMLIR #579522
11 #579524 MIOpen #579523
▶ 12 #579525 MIGraphX, RPP, MIVisionX (this PR) #579524
13 #579526 remaining packages #579525
14 #579527 rocmPackages: 7.2.4 -> 10.1 (the switch) #579526

🤖 Generated with Claude Code

randomizedcoder and others added 30 commits October 24, 2026 07:57
Prepare the update script for a rocmPackages_10 set built from the
TheRock monorepos, whose sources are tagged therock-X.Y[.Z]:

- maxMajor (default 7) replaces the hard-coded major cap, so a second
  set can call it with its own cap.
- tagPrefixes (default [ "rocm" ]) selects which tag families count as
  releases. The current set keeps rocm- only, so the therock-7.x
  preview tags are not picked up.
- setName (default "rocmPackages") is the attribute path passed to
  update-source-version.
- Pick the highest matching version instead of the first release
  listed: releases are not ordered by version (a rocm-7.2.x maintenance
  release can be published after a newer series).
- Follow GitHub's pagination (100 per page) so the highest version is
  found even when it is not on the first page, and fail on fetch
  errors instead of reporting "no valid version".

No change to any derivation; passthru.updateScript only.

Assisted-by: Claude Code (claude-opus-5-5)
Add an empty rocmPackages_10 scope next to rocmPackages, sharing its
structure (rocm-modules/10/default.nix is derived from
rocm-modules/default.nix). The following PRs add the ROCm 10.1 packages
to it tier by tier; a final PR on staging switches rocmPackages over.
Following the rocmPackages_5/_6 layout.

It is deliberately not wrapped in recurseIntoAttrs, so Hydra and the CI
rebuild count are unaffected until the switch.

The update script runs with maxMajor = 10, the therock- tag prefix, and
setName = "rocmPackages_10".

Assisted-by: Claude Code (claude-opus-5-5)
Verbatim copies of the rocmPackages (ROCm 7.2.4) expressions for llvm,
rocm-device-libs, not yet part of the rocmPackages_10 scope. The
following commits update each one to ROCm 10.1, so their diffs read
against 7.2.4.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.llvm copy from the previous commit to ROCm 10.1
and add it to the rocmPackages_10 scope.

From "rocmPackages.llvm: 7.2.4 -> 10.1.0, build LLVM 24 on the
llvmPackages_23 base":

ROCm 10.1's llvm-project fork is LLVM 24 (LLVMVersion.cmake:
LLVM_VERSION_MAJOR 24), sourced from the therock-10.1 tag. nixpkgs has
no released llvmPackages_24, and the 24.0.0-git snapshot
(llvmPackages_git) is an alias reserved for testing whose package-set
splice resolves through that alias, so it cannot be evaluated with
allowAliases = false (as CI does). Keep the released llvmPackages_23 as
the base: it only supplies the shared compilers/llvm/common packaging
and the bootstrap clang/bintools, while rocmLlvmVersion = "24.0.0-rocm"
selects the LLVM 24 patch set for ROCm's own source. LTO is off, so the
base's bitcode version is moot.

Toolchain changes for the LLVM 22 -> 24 jump:
- Drop the LLVM 22 backports (select-ptr-combine, arm64e_x1 bridge,
  v64i8 VBMI shuffle, scan-build-py option): all upstream in LLVM 24.
- Drop the CompressedOffloadBundle::decompress postPatch and the
  EmissaryIds postUnpack symlink: ROCm 10.1 uses the raw_ostream*
  decompress form and removed CGEmitEmissaryExec.cpp/EmissaryIds.h
  (llvm#175265).
- Replace the GZGavinZhao GetBundleIDsInFile fetchpatch (no longer
  applies) with a locally rebased clang-add-getbundleidsinfile.diff; it
  adds the set-returning OffloadBundler::GetBundleIDsInFile the comgr
  ISA-compat patch calls.
- Drop clang-log-jobs.diff: LLVM 24 rewrote Compilation::ExecuteJobs
  around parallel offload job groups, so the patched loop no longer
  exists; it was cosmetic CI-progress logging.
- Put zstd's lib dir on the toolchain default link path: LLVM 24's
  clang-linker-wrapper links libzstd when combining compressed offload
  images (--offload-compress defaults on).
- Rebase rocm-device-libs' cmake.patch and guard rocm-comgr's
  EnvLLVMPath substitution against a null default.

Revised during the split review:

Set LIBOMP_COPY_EXPORTS to FALSE for openmp: ROCm's llvm-project
defaults it to TRUE (upstream LLVM: FALSE), which copies libomp and its
generated headers into the source tree. The generic LLVM >= 23 runtimes
build of openmp (upstream PR 575569, carried at the bottom of this
stack) then needs no writable copy of the source.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocm-device-libs copy from the previous commit
to ROCm 10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.llvm: 7.2.4 -> 10.1.0, build LLVM 24 on the
llvmPackages_23 base":

ROCm 10.1's llvm-project fork is LLVM 24 (LLVMVersion.cmake:
LLVM_VERSION_MAJOR 24), sourced from the therock-10.1 tag. nixpkgs has
no released llvmPackages_24, and the 24.0.0-git snapshot
(llvmPackages_git) is an alias reserved for testing whose package-set
splice resolves through that alias, so it cannot be evaluated with
allowAliases = false (as CI does). Keep the released llvmPackages_23 as
the base: it only supplies the shared compilers/llvm/common packaging
and the bootstrap clang/bintools, while rocmLlvmVersion = "24.0.0-rocm"
selects the LLVM 24 patch set for ROCm's own source. LTO is off, so the
base's bitcode version is moot.

Toolchain changes for the LLVM 22 -> 24 jump:
- Drop the LLVM 22 backports (select-ptr-combine, arm64e_x1 bridge,
  v64i8 VBMI shuffle, scan-build-py option): all upstream in LLVM 24.
- Drop the CompressedOffloadBundle::decompress postPatch and the
  EmissaryIds postUnpack symlink: ROCm 10.1 uses the raw_ostream*
  decompress form and removed CGEmitEmissaryExec.cpp/EmissaryIds.h
  (llvm#175265).
- Replace the GZGavinZhao GetBundleIDsInFile fetchpatch (no longer
  applies) with a locally rebased clang-add-getbundleidsinfile.diff; it
  adds the set-returning OffloadBundler::GetBundleIDsInFile the comgr
  ISA-compat patch calls.
- Drop clang-log-jobs.diff: LLVM 24 rewrote Compilation::ExecuteJobs
  around parallel offload job groups, so the patched loop no longer
  exists; it was cosmetic CI-progress logging.
- Put zstd's lib dir on the toolchain default link path: LLVM 24's
  clang-linker-wrapper links libzstd when combining compressed offload
  images (--offload-compress defaults on).
- Rebase rocm-device-libs' cmake.patch and guard rocm-comgr's
  EnvLLVMPath substitution against a null default.

Assisted-by: Claude Code (claude-opus-5-5)
Verbatim copies of the rocmPackages (ROCm 7.2.4) expressions for
rocm-core, rocm-cmake, rocprofiler-register, rocm-runtime, rocm-comgr,
rocminfo, amdsmi, rocm-smi, hip-common, roctracer, clr, hipify, half,
not yet part of the rocmPackages_10 scope. The following commits update
each one to ROCm 10.1, so their diffs read against 7.2.4.

Assisted-by: Claude Code (claude-opus-5-5)
hipcc, rocm-docs-core are unchanged between ROCm 7.2.4 and 10.1 (no 10.x
upstream release, or versioned independently of ROCm), so the
rocmPackages_10 scope calls the existing expression instead of copying
it.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocm-core copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

Revised during the split review:

Report the padded version (10.1.0) in the setup hook as well, the
three-part form 7.2.4 exported; ROCM_VERSION is only read from the
environment as a CPack fallback in comgr and hipcc. Keep the version
helper in the outer let.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocm-cmake copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocprofiler-register copy from the previous
commit to ROCm 10.1 and add it to the rocmPackages_10 scope.

From the mass bump:
- rocprofiler-register: drop 3 fetchpatches now upstream.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocm-runtime copy from the previous commit to
ROCm 10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.rocm-runtime: drop patches upstreamed in ROCr 1.21":

ROCm 10 ships ROCr 1.21, which carries the queue-failure fix (PR NixOS#2850),
the kfd_ioctl 1<<31 UB fix, and refactors aqlprofile to a runtime dlopen
(removing the build-time circular dependency). Drop the three
now-obsolete patches and add python3 for the new trap_handler
find_package(Python3).

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocm-comgr copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.rocm-comgr: rebase ISA-compat CCOB patch for LLVM
24":

The "[Comgr] Extend ISA compatibility for CCOB" change (GZGavinZhao
2c1e44fc) no longer applies as a fetchpatch: LLVM 24's comgr inserted
comgr-unpackage-command.h into comgr-compiler.cpp's include block
(shifting the comgr-metadata.h include past patch's default fuzz) and
moved the unbundle() body ~477 lines down. Rebase it locally as
comgr-isa-compat-ccob.patch against therock-10.1. The
OffloadBundler::GetBundleIDsInFile it calls is provided clang-side by
clang-add-getbundleidsinfile.diff in the llvm module.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocminfo copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.amdsmi copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.amdsmi: adapt to 27.0.0 ABI":

amdsmi 27.0.0 (SONAME libamd_smi.so.27) requires libnl-3/libnl-genl-3
and libmnl; add them.

py-interface/CMakeLists.txt now FATAL_ERRORs at configure time if it
cannot locate a system python3 (it probes /usr/bin/python3 and
/usr/libexec/platform-python, neither in the sandbox) unless
AMDSMI_SYSTEM_PYTHON_SITELIB is set. The install it guards is
DESTDIR-gated (nix uses CMAKE_INSTALL_PREFIX) and thus skipped anyway,
so pass nix's sitePackages to satisfy the guard.

Revised during the split review:

Drop the drm_color_ctm_3x4 patch: amdsmi 10.1 builds without it against
libdrm 2.4.134, whose drm_mode.h shares the bundled copy's include
guard. Pin esmi_ib_library by the commit amdsmi pins. Link libamd_smi.so
with -Bsymbolic-functions: with librocm_smi64 loaded (as after import
torch) its exported rsmi_init was interposed and amdsmi enumerated no
GPUs, so torch.cuda.device_count() was 0.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocm-smi copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.hip-common copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.roctracer copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.clr copy from the previous commit to ROCm 10.1
and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.hipify copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.half copy from the previous commit to ROCm 10.1
and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Verbatim copies of the rocmPackages (ROCm 7.2.4) expressions for
aqlprofile, rocprof-trace-decoder, rocdbgapi, rocgdb, rocr-debug-agent,
rocprofiler, rdc, rccl, rocprofiler-sdk, rocshmem, not yet part of the
rocmPackages_10 scope. The following commits update each one to ROCm
10.1, so their diffs read against 7.2.4.

Assisted-by: Claude Code (claude-opus-5-5)
rocprof-compute-viewer, mscclpp are unchanged between ROCm 7.2.4 and
10.1 (no 10.x upstream release, or versioned independently of ROCm), so
the rocmPackages_10 scope calls the existing expression instead of
copying it.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.aqlprofile copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope. Source/version bump only.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocprof-trace-decoder copy from the previous
commit to ROCm 10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.rocprof-trace-decoder: 0.1.7 -> 0.2.2":

Track the rocm-systems monorepo at the therock-10.1 tag (the project
keeps its own 0.x version, so the tag cannot derive from
finalAttrs.version). Drop both local patches:
use-system-dependencies.patch is obsolete (upstream removed the json
FetchContent and prefers system gtest) and fix-test-dependency.patch (PR
NixOS#3800) is merged upstream. Disable the ATT integration tests, which need
pyelftools and bundled fixtures.

From "rocmPackages.rocprof-trace-decoder: take comgr and runtime from
the scope":

It took the top-level rocmPackages and used rocmPackages.rocm-comgr and
rocmPackages.rocm-runtime, so the per-arch scopes (rocmPackages.gfx906,
...) and any other instance of the scope built it against the default
set's libraries. Take them as scope arguments like every other package.
The default rocmPackages.rocprof-trace-decoder derivation is unchanged.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocdbgapi copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.{rocdbgapi,rocr-debug-agent}: move to rocm-systems
monorepo":

ROCdbgapi and rocr_debug_agent moved into the rocm-systems monorepo in
ROCm 10. Switch both to the sparse-checkout source (projects/<name> +
shared) at the therock-10.1 tag.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocgdb copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.rocgdb: 7.2.4 -> 10.1.0".

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocr-debug-agent copy from the previous commit
to ROCm 10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.{rocdbgapi,rocr-debug-agent}: move to rocm-systems
monorepo":

ROCdbgapi and rocr_debug_agent moved into the rocm-systems monorepo in
ROCm 10. Switch both to the sparse-checkout source (projects/<name> +
shared) at the therock-10.1 tag.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocprofiler copy from the previous commit to
ROCm 10.1 and add it to the rocmPackages_10 scope.

From the mass bump:
- rocprofiler-register: drop 3 fetchpatches now upstream.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rdc copy from the previous commit to ROCm 10.1
and add it to the rocmPackages_10 scope.

From "rocmPackages.rdc: drop CXXFLAGS patch fixed upstream in
therock-10.1":

ROCm/rocm-systems#2423 was closed without merging, but therock-10.1
fixes the same problem: projects/rdc/CMakeLists.txt now appends to
CMAKE_CXX_FLAGS instead of overwriting it. fix-cmake-cxxflags.patch no
longer applies. The libcap pkg-config patch (NixOS#2424) is still needed and
applies with offsets.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.composable_kernel copy from the previous commit
to ROCm 10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.composable_kernel: adapt to ROCm 10 conv targets and
clang 24":

ROCm 10 restructured CK's per-op conv instance libraries into OBJECT
libraries aggregated under a single STATIC target
device_conv_operations.

clang 24 forwards NIX_LDFLAGS to the HIP device linker, so every split
"parts" instance's device object is stamped with DT_RUNPATH=$out/lib.
That RUNPATH is baked into the --offload-compress'd .hip_fatbin (a CCOB
integrity-checked blob that cannot be scrubbed post-hoc without
corrupting the device code), and since those .o are copied into the
final CK derivation it becomes a disallowed cross-reference. The parts
only emit relocatable .o, so the self-rpath is useless here; strip
"-rpath $out/lib" from NIX_LDFLAGS (and any role-suffixed copies) in
preConfigure, keeping offload compression.

Also give fix-empty-offload-targets.diff a gfx90a fallback for an empty
offload-target list.

Revised during the split review:

Restore memory-bounded per-group parts for the convolution instances,
using ROCm 10's layout-specific OBJECT targets; the final build only
archives their objects into device_conv_operations. Parts skip targets
CMake did not generate for the configuration and fail on names the CK
source no longer defines. Drop the streamk targets, removed upstream.

Assisted-by: Claude Code (claude-opus-5-5)
rocmlirTriton is the fork of rocMLIR that AMDMIGraphX 10.1 pins
(requirements.txt: ROCm/rocmlirTriton@release/rocm-rel-10.1, a branch;
the repository has no tags). ROCm/rocMLIR has no ROCm 10 release, so
rocmPackages_10 has no rocmlir; with aliases enabled, rocmlir and
rocmlir-rock throw with that explanation. The expression starts from
rocmPackages.rocmlir.

From "rocmPackages.rocmlir: track rocmlirTriton for therock-10.1":

ROCm 10.1's AMDMIGraphX (rocm-10.1) moved its rocMLIR pin to a new
upstream repo: requirements.txt pins
ROCm/rocmlirTriton@release/rocm-rel-10.1. It has no ROCm 10.x tag, so
track the branch-head commit directly, as the old ROCm/rocMLIR pin did.

Build fixes for the new source:
- pybind11 for the Rock Python bindings' find_package(pybind11).
- LLVM_TARGETS_TO_BUILD: append the native target unconditionally.
  Triton's librockcompiler_deps.cmake bundles host codegen
  (LLVMX86AsmParser/CodeGen/ Desc/Disassembler/Info) into the
  librockCompiler fat archive, which failed to link with AMDGPU-only.
- MLIR_INCLUDE_TESTS=false: the check-rocmlir lit suite DEPENDS on
  ci-performance-scripts, a target only created when
  MLIR_ENABLE_ROCM_RUNNER is on (off for the rock-compiler build), so
  Generate failed.
- preConfigure: give the build a writable HOME and TRITON_CACHE_PATH.
  Triton's build_helpers.py symlinks the in-tree LLVM into $HOME/.triton
  at configure time, which failed against the read-only
  /homeless-shelter.
- postPatch: patchShebangs the whole external/llvm-project/mlir subtree
  and drop the BufferDependencyAnalysis.cpp enum-class fix (file no
  longer ships).

Revised during the split review:

Package it as rocmlir-triton instead of replacing rocmlir. Point the
homepage at rocmlirTriton and remove the generic tag updater: the
revision must move together with MIGraphX's pin.

Assisted-by: Claude Code (claude-opus-5-5)
Verbatim copies of the rocmPackages (ROCm 7.2.4) expressions for miopen,
not yet part of the rocmPackages_10 scope. The following commits update
each one to ROCm 10.1, so their diffs read against 7.2.4.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.miopen copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.miopen: 3.6.0 (standalone build off, ISA compat,
hipconv off)":

MIOpen 3.6.0 defaults MIOPEN_STANDALONE_BUILD ON (FetchContents its
deps) and dropped Boost/OpenCL for C++20. Build with
STANDALONE_BUILD=OFF and supplied deps, neutralise -Werror, and add
extend-miopen-isa-compatibility.patch (rebased from GZGavinZhao
02f0fedf) to keep the ISA-compat behaviour.

Disable the new hipconv convolution subsystem. It serves only
cdna3/cdna4/ cdna5 (gfx942/gfx950 and newer), its CMake unconditionally
compiles every arch dir, and the cdna4 direct_wgrad kernels do not
compile with clang 24, which rejects their `static constexpr` members
and namespace-scope constexpr variable templates as references to
__host__ variables in __device__ code. conv_hipconv.cpp self-guards on
MIOPEN_USE_HIPCONV, so other targets are unaffected. Re-enable once the
kernels build with clang 24.

Revised during the split review:

Drop rocMLIR: MIOpen 10.1 defaults MIOPEN_USE_MLIR to OFF
(rocm-libraries 73eb90e3021c, the superbuild integration), which is also
how TheRock builds it, so the MLIR solvers 7.2.4 had are not built.
ROCm/rocMLIR has no 10.x release; rocmlir-triton, the fork MIGraphX
pins, is not used by MIOpen.

Assisted-by: Claude Code (claude-opus-5-5)
Verbatim copies of the rocmPackages (ROCm 7.2.4) expressions for
migraphx, rpp, not yet part of the rocmPackages_10 scope. The following
commits update each one to ROCm 10.1, so their diffs read against 7.2.4.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.migraphx copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From "rocmPackages.migraphx: 7.2.4 -> 10.1.0, stub
rocm_add_version_resource":

Its rocm-10.1 tag calls rocm_add_version_resource() in
src/CMakeLists.txt, but that rocm-cmake macro is not present in the
therock-10.1 tag the rest of the set builds against (it currently only
lives on rocm-cmake's develop branch), so configure fails with 'Unknown
CMake command "rocm_add_version_resource"'.

Upstream the macro's entire body is guarded by if(WIN32) -- it only
emits a Windows .rc VERSIONINFO resource and is a no-op on Linux.
Provide a guarded no-op stub after find_package(ROCmCMakeBuildTools) so
it stays inert once rocm-cmake ships the macro on a release tag.

This unblocks onnxruntime's MIGraphX execution provider and, through it,
obs-backgroundremoval on ROCm 10.

Revised during the split review:

Take rocmlir-triton, the rocMLIR fork MIGraphX 10.1 pins.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rpp copy from the previous commit to ROCm 10.1
and add it to the rocmPackages_10 scope.

From the mass bump:
- rocalution, rpp: moved into the rocm-libraries monorepo (sparse

From "rocmPackages.rpp: fix the 10.1.0 build for both backends":

Two failures surfaced by building the full rocmPackages set at 10.1.0:

- The new in-tree test (test_rpp_backend_macro) builds against the rpp
  target, whose public header api/rppdefs.h includes <half.hpp>, but
  HALF::half is linked PRIVATE, so the test cannot find it. Export it as
  a PUBLIC dependency.

- CPU backend only: with -fopenmp the clang driver adds `<clang
  prefix>/../include` as a plain -I to locate omp.h. In the merged
  rocm-toolchain that directory also holds the glibc headers, so
  stdlib.h stops being a system header and clang 24 rejects
  mm_malloc.h's redeclaration of posix_memalign ("missing exception
  specification 'noexcept(true)'" with glibc 2.44). Passing the same
  directory as -isystem makes clang treat it as a system directory
  again. The HIP backend compiles through hipcc, whose prefix has no
  libc headers.

Revised during the split review:

Use a checked substituteInPlace for the public half dependency.

Assisted-by: Claude Code (claude-opus-5-5)
mivisionx is unchanged between ROCm 7.2.4 and 10.1 (no 10.x upstream
release, or versioned independently of ROCm), so the rocmPackages_10
scope calls the existing expression instead of copying it.

Also add rpp-hip, rpp-cpu, mivisionx-hip, mivisionx-cpu.

Assisted-by: Claude Code (claude-opus-5-5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: llvm/clang Issues related to llvmPackages, clangStdenv and related 6.topic: rocm ROCm is an Advanced Micro Devices software stack for graphics processing unit programming. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. llm-assisted Contributions that include code generation with LLMs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants