Skip to content

build(hipblas): require CMake 3.17 (March 2020) for finding util - #11988

Open
newling wants to merge 1 commit into
developfrom
users/newling/LCOMPILER-876-hipblas-cmake-3.17
Open

newling wants to merge 1 commit into
developfrom
users/newling/LCOMPILER-876-hipblas-cmake-3.17

Conversation

@newling

@newling newling commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

JIRA ID : LCOMPILER-876

Related PRs: #7235, #11808

Motivation

A planned hipBLAS CUDA-backend change replaces legacy CUDA package discovery with CMake's FindCUDAToolkit. This module and its imported CUDA targets were added in CMake 3.17. CMake 3.17.0 was released on March 20, 2020.

hipBLAS currently declares CMake 3.5 as its minimum while its installer and documentation specify 3.16.8. A later CUDA-backend change cannot use FindCUDAToolkit while those versions remain supported. This PR establishes the required CMake floor separately so the compatibility change can be reviewed before the backend migration.

Technical Details

The top-level hipBLAS project and its client project now require CMake 3.17. The dependency installer detects versions older than 3.17.0 and can download the 3.17.0 source release. The Linux and Windows installation guides report the same minimum. This PR does not change backend selection, CUDA package discovery, library sources, or device behavior.

Validation confirmed that hipBLAS configures with CMake 3.17.0, CMake 3.16.8 is rejected by the declared minimum, and FindCUDAToolkit is available only in the newer version.

@therock-pr-bot

therock-pr-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass
Forbidden Files ✅ Pass
🧪 Unit Test ✅ Pass PR does not contain code files — Unit Test auto-passed
🔎 pre-commit ✅ Pass
🚫 Draft PR 🔜 To Be Enabled
🚩 Feature Flag 🔜 To Be Enabled
📊 Code Coverage 🔜 To Be Enabled
🤖 therock-pr-bot ✅ Pass

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

@newling newling changed the title build(hipblas): require CMake 3.17 for FindCUDAToolkit build(hipblas): require CMake 3.17 (March 2020) for finding util Sep 11, 2026

@evedovelli evedovelli 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.

LGTM

@TorreZuk TorreZuk 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.

Looks like default Ubuntu 20.04 LTS + Debian 10 and earlier, are the common OS default which will now fail and require the cmake build and install. If you test build from source on that let us know.

Is 3.17 the new standard for rocm-libraries? Fine if you don't know.

One could require different versions for this custom build type (USE_CUDA is a non standard build) but probably best to keep it simple like you have done here.

rocBLAS should get the same bump as these are usually built as a set, and look at rocSOLVER too.

@TorreZuk
TorreZuk requested a review from a team September 11, 2026 17:28
@newling

newling commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Looks like default Ubuntu 20.04 LTS + Debian 10 and earlier, are the common OS default which will now fail and require the cmake build and install. If you test build from source on that let us know.

Ubuntu 20.04 ships CMake 3.16.3, so currently rmake.py -d (without --cmake_install) already fails on 20.04 (installer requires 3.16.8). So I'm not sure how big a concern this is.

Is 3.17 the new standard for rocm-libraries? Fine if you don't know.

Standard in rocm-libraries, there isn't really one. There are currently 13 different minimum versions, ranging from CMake 3.5 in rocALUTION to CMake 3.25.2 in hipBLASLt, hipDNN, and others.

rocBLAS should get the same bump as these are usually built as a set, and look at rocSOLVER too.

They're not currently in lockstep, rocBLAS already requires 3.24.4 (i.e. already ahead of hipblas). I don't think it should be a requirement on this PR to put them in lockstep, we can make a follow-up PR if that is a stated goal I think? LMKWYT

@newling
newling requested a review from TorreZuk September 11, 2026 18:03
@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop   #11988   +/-   ##
========================================
  Coverage    70.55%   70.55%           
========================================
  Files         2810     2810           
  Lines       462508   462508           
  Branches     68099    68099           
========================================
  Hits        326292   326292           
  Misses      112675   112675           
  Partials     23541    23541           
Flag Coverage Δ *Carryforward flag
TensileLite-CPP 46.40% <ø> (ø) Carriedforward from e5eebb6
TensileLite-Unit 76.07% <ø> (ø) Carriedforward from e5eebb6
hipBLAS 90.62% <ø> (ø)
hipBLASLt 35.27% <ø> (ø) Carriedforward from e5eebb6
hipCUB 82.68% <ø> (ø) Carriedforward from e5eebb6
hipDNN 87.02% <ø> (ø) Carriedforward from e5eebb6
hipFFT 42.66% <ø> (ø) Carriedforward from e5eebb6
hipRAND 76.12% <ø> (ø) Carriedforward from e5eebb6
hipSOLVER 68.92% <ø> (ø) Carriedforward from e5eebb6
hipSPARSE 86.99% <ø> (ø) Carriedforward from e5eebb6
rocBLAS 48.31% <ø> (ø) Carriedforward from e5eebb6
rocFFT 51.72% <ø> (ø) Carriedforward from e5eebb6
rocRAND 56.90% <ø> (ø) Carriedforward from e5eebb6
rocSOLVER 76.83% <ø> (ø) Carriedforward from e5eebb6
rocSPARSE 74.61% <ø> (ø) Carriedforward from e5eebb6
rocThrust 91.60% <ø> (ø) Carriedforward from e5eebb6

*This pull request uses carry forward flags. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@newling

newling commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

@TorreZuk ping

@TorreZuk TorreZuk 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.

Recommend fixed version for download and build otherwise okay.
Will ask around on latest standardization efforts

install_packages

if [ -z "$CMAKE_VERSION" ] || $(dpkg --compare-versions $CMAKE_VERSION lt 3.16.8); then
if [ -z "$CMAKE_VERSION" ] || $(dpkg --compare-versions $CMAKE_VERSION lt 3.17.0); then

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.

Did you test build yet? Could you go with 3.17.5 here that has fixes

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.

3 participants