Skip to content

rocmPackages_10: add sparse, solvers, rocALUTION, rocWMMA, hipfort - #25

Closed
randomizedcoder wants to merge 10 commits into
rocm10/07-tensile-rocblasfrom
rocm10/08-sparse-solvers
Closed

randomizedcoder wants to merge 10 commits into
rocm10/07-tensile-rocblasfrom
rocm10/08-sparse-solvers

Conversation

@randomizedcoder

@randomizedcoder randomizedcoder commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

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

  • Adds to rocmPackages_10: rocsparse, hipsparse, rocsolver, hipblas, hipsolver, rocalution, rocwmma, hipfort, hipsparselt
  • Target: master. No existing derivation changes: rocmPackages_10 is not recursed into

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

  • hipsolver and rocsolver link an openblas-backed LAPACK
  • rocwmma moves from rocm_smi to amd_smi and uses the system googletest

Testing

  • rocmPackages_10 evaluates: 56 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 #31

Series

Preparatory PRs, each against master: #10, #11, #15, #16, #17.

Part PR Contents Base
1 #18 rocmPackages_10: init master
2 #19 llvm (LLVM 24) #18
3 #20 runtime #19
4 #21 profiling and debugging tools, RCCL #20
5 #22 rocPRIM, rocRAND, rocFFT #21
6 #23 hipBLASLt #22
7 #24 Tensile and rocBLAS #23
▶ 8 #25 sparse, solvers, rocALUTION, rocWMMA, hipfort (this PR) #24
9 #26 composable_kernel #25
10 #27 rocMLIR #26
11 #28 MIOpen #27
12 #29 MIGraphX, RPP, MIVisionX #28
13 #30 remaining packages #29
14 #31 rocmPackages: 7.2.4 -> 10.1 (the switch) #30

🤖 Generated with Claude Code

@randomizedcoder
randomizedcoder force-pushed the rocm10/07-tensile-rocblas branch from 0f84a57 to 6b000b8 Compare October 15, 2026 23:02
@randomizedcoder
randomizedcoder force-pushed the rocm10/08-sparse-solvers branch from 0b53be7 to 44f8a64 Compare October 15, 2026 23:02
@randomizedcoder
randomizedcoder force-pushed the rocm10/07-tensile-rocblas branch from 6b000b8 to 6b95357 Compare October 17, 2026 02:50
@randomizedcoder
randomizedcoder force-pushed the rocm10/08-sparse-solvers branch from 44f8a64 to 235026f Compare October 17, 2026 02:50
@randomizedcoder
randomizedcoder force-pushed the rocm10/07-tensile-rocblas branch from 6b95357 to c37927f Compare October 17, 2026 16:20
@randomizedcoder
randomizedcoder force-pushed the rocm10/08-sparse-solvers branch from 235026f to 0914857 Compare October 17, 2026 16:20
@randomizedcoder
randomizedcoder force-pushed the rocm10/07-tensile-rocblas branch from c37927f to e278b88 Compare October 20, 2026 06:44
@randomizedcoder
randomizedcoder force-pushed the rocm10/08-sparse-solvers branch 2 times, most recently from 970adf2 to d05854b Compare October 21, 2026 07:15
@randomizedcoder
randomizedcoder force-pushed the rocm10/07-tensile-rocblas branch 2 times, most recently from c13eb13 to e268c5f Compare October 22, 2026 14:51
@randomizedcoder
randomizedcoder force-pushed the rocm10/08-sparse-solvers branch from d05854b to 6a96f46 Compare October 22, 2026 14:51
Verbatim copies of the rocmPackages (ROCm 7.2.4) expressions for
rocsparse, hipsparse, rocsolver, hipblas, hipsolver, rocalution,
rocwmma, hipfort, hipsparselt, 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.rocsparse 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.hipsparse copy from the previous commit to ROCm
10.1 and add it to the rocmPackages_10 scope.

From the mass bump:
- hipblas, hipsparse: new find_package(Python3 REQUIRED) -> add python3.

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

From "rocmPackages.{hipsolver,rocsolver}: link openblas-backed LAPACK":

ROCm 10 hipSOLVER/rocSOLVER link a CPU-side BLAS/LAPACK. Upstream
defaults to git-clone+build a static OpenBLAS at configure (blocked in
the sandbox), so set HIPSOLVER_INTERNAL_LAPACK_BUILD=OFF and provide the
openblas-backed 'blas'/'lapack' wrappers (LP64). Deliberately NOT
lapack-reference: its libblas.so.3 carries ILP64 (_64_) symbols that
collide with numpy's openblas in one process (e.g. 'import torch' ->
undefined symbol cherk_64_). Discover LAPACK in CMake MODULE mode, since
the openblas wrappers ship no LAPACKConfig.cmake.

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

From the mass bump:
- hipblas, hipsparse: new find_package(Python3 REQUIRED) -> add python3.

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

From "rocmPackages.{hipsolver,rocsolver}: link openblas-backed LAPACK":

ROCm 10 hipSOLVER/rocSOLVER link a CPU-side BLAS/LAPACK. Upstream
defaults to git-clone+build a static OpenBLAS at configure (blocked in
the sandbox), so set HIPSOLVER_INTERNAL_LAPACK_BUILD=OFF and provide the
openblas-backed 'blas'/'lapack' wrappers (LP64). Deliberately NOT
lapack-reference: its libblas.so.3 carries ILP64 (_64_) symbols that
collide with numpy's openblas in one process (e.g. 'import torch' ->
undefined symbol cherk_64_). Discover LAPACK in CMake MODULE mode, since
the openblas wrappers ship no LAPACKConfig.cmake.

Assisted-by: Claude Code (claude-opus-5-5)
Update the rocmPackages.rocalution 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

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

From "rocmPackages.rocwmma: rocm_smi -> amd_smi, system googletest":

ROCm 10 rocWMMA's benchmark tests find_package(amd_smi) (was rocm_smi)
and replaced the hardcoded FetchContent(googletest) with a
ROCWMMA_USE_SYSTEM_GOOGLETEST option. Switch to amdsmi, enable the
system-gtest option, and drop the obsolete
0000-dont-fetch-googletest.patch.

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

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

hipfort keeps the three-component rocm-X.Y.Z tag scheme (rocm-10.1.0),
so it is not derived from the therock-X.Y monorepo tags like the rest of
the set.

hipfort 10.x dropped the bin/ wrapper scripts (hipfc, mymcpu) entirely
and is now a pure Fortran interface library, so the obsolete bin/
postPatch and meta.mainProgram are removed.

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

From "rocmPackages.hipsparselt: add hipblaslt device-library/stinkytofu
sources":

ROCm 10 hipsparselt configures hipBLASLt's CMakeLists (for rocisa),
which needs library/include/hipblaslt-version.h.in and
add_subdirectory's shared/stinkytofu. Extend the sparse checkout.

Revised during the split review:

Drop the stinkytofu clang-tidy workaround: therock-10.1 guards its
include(ClangTidy) with ENABLE_CLANG_TIDY. Drop the HOME override;
disabling the helper cache is enough, as hipBLASLt shows.

Assisted-by: Claude Code (claude-opus-5-5)
@randomizedcoder

Copy link
Copy Markdown
Owner Author

Opened upstream as NixOS#579521.

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