Skip to content

fix: address hipconfig removal review findings - #11634

Closed
newling wants to merge 18 commits into
ROCm:users/dsalinas/deprecate-hipccfrom
newling:fix/pr7235-review-followups
Closed

newling wants to merge 18 commits into
ROCm:users/dsalinas/deprecate-hipccfrom
newling:fix/pr7235-review-followups

Conversation

@newling

@newling newling commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

This draft targets the head branch of #7235 and addresses the concrete review findings while preserving that PR's intended behavior.

The hipBLAS changes pass backend selection directly through the Python driver, define the HIP platform before package discovery so the HIP package does not invoke hipconfig, and complete the CUDAToolkit migration with imported targets and transitive public-header requirements. The shared Tensile change passes the package version through the correctly cased HIP_VERSION variable. The TensileLite tests now exercise environment and path precedence, fallback behavior, missing version sources, and alpha/RC version strings, allowing the prior Component.py coverage floor to be restored.

Test plan

  • TensileLite ToolchainComponent characterization tests: 29 passed.
  • hipBLAS AMD and CUDA rmake command-construction probes.
  • hipBLAS AMD CMake configure with amdclang++ and Ninja.
  • git diff --check.
  • CUDA configure/build: this development host has no CUDA toolkit.
  • hipBLAS AMD library build: configuration succeeds, but the local ROCm 7.1 rocBLAS headers lack APIs already required by the parent branch, including rocblas_set_batch_alpha_stride and rocblas_syrk_ex.
  • TensileLite coverage ratchet: the task environment has pytest but not coverage/pytest-cov, so CI must confirm the restored per-file floor.

david-salinas and others added 18 commits August 31, 2026 18:22
Replace hipconfig dependency in tensilelite with alternatives:

- hipblaslt_python.cmake: pass ROCM_VERSION=${hip_VERSION} (from
  find_package(hip CONFIG)) into the Python env at configure time
- Component.py: read ROCM_VERSION env var first, then fall back to
  $ROCM_PATH/.info/version, $HIP_PATH/.info/version, /opt/rocm/.info/version
- TensileCreateLibrary/Run.py: remove hipconfig from validateToolchain
  call; its result was already discarded and it is no longer needed

hipconfig is deprecated in favor of amdclang++ directly.

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

Replace hipconfig dependency in shared Tensile with alternatives:

- TensileConfig.cmake: pass ROCM_VERSION=${hip_VERSION} (from
  find_package(hip CONFIG)) into the Python env at build time
- Common.py: read ROCM_VERSION env var first, then fall back to
  $ROCM_PATH/.info/version, $HIP_PATH/.info/version, /opt/rocm/.info/version;
  keep HipConfig path as final fallback for compatibility
- ParseArguments.py: remove hipconfig from validateToolchain call;
  HipClangVersion is now set from ROCM_VERSION in Common.py
- Tensile.py: remove hipconfig from validateToolchain call

hipconfig is deprecated in favor of amdclang++ directly.

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
* Removed references to hipconfig
* Removed HipConfig as part of ToolChain validation
* Removed HipConfig from tests
* Made the `version_str` definition in `Common.py` consistent with
  the `get_rocm_version` definition in `Component.py`
* Fixed a function annotation in Component.py
* Removed the `supportedHip` function and the calls to it from
  `Validators.py`
* Bug from Path not being defined
* `getVersion` no longer needed
* formatting issue
supportedHip was removed from Tensile.Toolchain.Validators as part of
the hipconfig deprecation. Update the characterization tests that imported
and called it to match the new Validators.py interface.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
…etection

When ROCm is installed via TheRock's pip releases, ROCM_PATH and HIP_PATH
are not set and /opt/rocm does not exist. The version detection in both
Common.py and Toolchain/Component.py would fail with an error.

Add a fallback that imports rocm_sdk and reads __version__ directly. This
works for pip installs since rocm_sdk.__version__ is already the ROCm
version string (e.g. "7.13.0"). The import is guarded by a try/except so
it silently skips to the error if rocm_sdk is not installed.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
…ROCm

The previous commit added rocm_sdk as a fallback after system path checks.
Invert the order so the pip-installed rocm_sdk takes precedence over the
system-wide /opt/rocm installation:

  1. ROCM_VERSION env var (explicit override)
  2. rocm_sdk.__version__ (pip install — preferred if installed)
  3. $ROCM_PATH / $HIP_PATH / /opt/rocm .info/version (system fallback)

This ensures that when using TheRock pip releases, the version reflects
the actual installed pip package rather than a potentially stale system
ROCm installation.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
… validateToolchain

Our PR removed HIP_CONFIG as the 5th argument to validateToolchain, reducing
its return tuple from 5 to 4 values. Update test mocks that still returned
5 values to match the new 4-value interface.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
…avior tests

get_rocm_version() no longer calls hipconfig. Replace the two tests that
verified hipconfig invocation with tests for the new behavior:

- test_get_rocm_version_uses_rocm_version_env: verifies ROCM_VERSION env
  var is read and takes priority
- test_get_rocm_version_reads_info_version_file: verifies .info/version
  file is read from ROCM_PATH, covering both simple (7.1.0) and
  build-suffix (7.1.25424-abc) version string formats

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
hipconfig --platform reads HIP_PLATFORM if set, otherwise auto-detects
by checking if clang++ is runnable — always returning 'amd' for AMD-only
ROCm builds. Since NVIDIA support has been removed, replace all calls
to hipconfig --platform with the literal value 'amd'.

- hipblas/rmake.py: remove 7-line hipconfig detection block, replace
  with single assignment; update --cuda help text
- hipblas/install.sh: replace hipconfig call with 'amd'; update help text
- hipsolver/install.sh: replace hipconfig call with 'amd'

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
get_rocm_version() no longer calls hipconfig so the hipconfig code path
is no longer exercised by the replacement tests. Update the coverage
baseline from 99.19% to 94.63% to reflect the new test coverage.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
The previous change unconditionally set HIP_PLATFORM='amd', which
overwrote the 'nvidia' value set by the --cuda flag handler above it.
Use else branch so --cuda builds correctly set HIP_PLATFORM='nvidia'.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
- Component.py, Common.py: remove rocm_sdk (pip) version detection per
  Alex-Vasile's suggestion to leave Python ROCm support to PR ROCm#11023,
  which will add it with proper feature-gating infrastructure

- Component.py, Common.py: fix nightly/alpha version string parsing;
  version strings like "10.1.0a20260813" previously caused ValueError
  when int() was called on "0a20260813"; strip pre-release suffix with
  re.match(r'\d+', ...) before converting to int

- install.sh: correct --cuda help text to accurately reflect that the
  flag unconditionally sets HIP_PLATFORM=nvidia (previously the text
  implied HIP_PLATFORM could still be overridden via env var)

- Linux_Install_Guide.rst: remove stale "hipconfig --platform" reference;
  replace with accurate description of the --cuda flag and HIP_PLATFORM
  defaulting to amd

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
When HIP_PLATFORM=nvidia, rmake.py previously set CUDA_BIN_PATH and
relied on hipcc to wrap nvcc. Replace with direct nvcc detection:

- Locate nvcc from --cudapath/bin/nvcc or PATH
- Pass CMAKE_CUDA_COMPILER and CUDA_TOOLKIT_ROOT_DIR to CMake so
  find_package(CUDA) and find_package(CUDAToolkit) resolve without
  any hipcc involvement
- Skip the implicit g++ default for the CXX compiler when targeting
  CUDA (nvcc drives device compilation; letting CMake pick the host
  compiler is more appropriate than forcing g++)

Update install.sh help text and Linux_Install_Guide.rst to reflect
that nvcc is now invoked directly and must be on PATH or reachable
via --cudapath.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
Remove the HIP_PLATFORM environment variable from the hipBLAS build
entirely and replace it with a first-class CMake boolean option USE_CUDA.
This decouples the CUDA backend selection from hipcc's internal env var
and invokes nvcc directly.

Changes:
- CMakeLists.txt: promote USE_CUDA from deprecated alias to the primary
  CMake option; use find_package(CUDAToolkit) instead of find_package(CUDA)
  for modern imported targets; remove all ENV{HIP_PLATFORM} reads/writes
- library/src/CMakeLists.txt: replace HIP_PLATFORM checks with USE_CUDA;
  link CUDA::cublas (modern CUDAToolkit target) instead of ${CUDA_CUBLAS_LIBRARIES}
- clients/*/CMakeLists.txt, build-options.cmake: replace HIP_PLATFORM
  checks with USE_CUDA / NOT USE_CUDA
- rmake.py: remove os.environ['HIP_PLATFORM'] entirely; use local
  use_cuda_backend flag; pass -DUSE_CUDA=ON to CMake when --cuda given;
  update --cuda help text to remove HIP_PLATFORM reference
- install.sh: replace HIP_PLATFORM env var checks with build_cuda flag;
  remove export HIP_PLATFORM lines; update --cuda help text
- Linux_Install_Guide.rst: remove HIP_PLATFORM references; describe
  USE_CUDA and nvcc-direct approach

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 2, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

❌ Your project check has failed because the head coverage (38.33%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@                        Coverage Diff                         @@
##           users/dsalinas/deprecate-hipcc   #11634      +/-   ##
==================================================================
+ Coverage                           69.27%   69.33%   +0.06%     
==================================================================
  Files                                2817     2811       -6     
  Lines                              467525   465649    -1876     
  Branches                            68981    68702     -279     
==================================================================
- Hits                               323864   322836    -1028     
+ Misses                             120070   119254     -816     
+ Partials                            23591    23559      -32     
Flag Coverage Δ *Carryforward flag
TensileLite-CPP 38.33% <ø> (-0.60%) ⬇️
TensileLite-Unit 76.14% <ø> (+0.62%) ⬆️
hipBLAS 90.62% <ø> (ø) Carriedforward from 793d9cf
hipBLASLt 35.22% <ø> (+0.01%) ⬆️
hipCUB 82.68% <ø> (ø) Carriedforward from 793d9cf
hipDNN 86.89% <ø> (ø) Carriedforward from 793d9cf
hipFFT 43.78% <ø> (ø) Carriedforward from 793d9cf
hipRAND 76.12% <ø> (ø) Carriedforward from 793d9cf
hipSOLVER 68.92% <ø> (ø) Carriedforward from 793d9cf
hipSPARSE 86.99% <ø> (ø) Carriedforward from 793d9cf
rocBLAS 48.29% <ø> (-0.03%) ⬇️
rocFFT 46.60% <ø> (ø) Carriedforward from 793d9cf
rocRAND 56.91% <ø> (ø) Carriedforward from 793d9cf
rocSOLVER 76.83% <ø> (ø) Carriedforward from 793d9cf
rocSPARSE 74.60% <ø> (ø) Carriedforward from 793d9cf
rocThrust 91.60% <ø> (ø) Carriedforward from 793d9cf

*This pull request uses carry forward flags. Click here to find out more.
see 40 files with indirect coverage changes

🚀 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 force-pushed the users/dsalinas/deprecate-hipcc branch from 0c0f262 to 579494a Compare September 8, 2026 15:29
david-salinas added a commit that referenced this pull request Sep 8, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
@newling newling closed this Sep 8, 2026
david-salinas added a commit that referenced this pull request Sep 14, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Sep 16, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Sep 18, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Sep 22, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 1, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 1, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 2, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 2, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 9, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 9, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 10, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
david-salinas added a commit that referenced this pull request Oct 13, 2026
Two corrections aligned with #11634:

library/src/CMakeLists.txt:
- Move hip::host to unconditional linkage (PUBLIC on hipblas). The public
  hipBLAS headers expose HIP types so consumers need hip::host regardless
  of which backend was built, not just on the AMD path.
- Change CUDA::cublas from PRIVATE to PUBLIC and add CUDA::cudart PUBLIC.
  The public API exposes cuBLAS and CUDA runtime declarations on the CUDA
  backend, so those usage requirements must propagate to consumers.

clients/{benchmarks,gtest,samples}/CMakeLists.txt:
- Replace CUDA::cublas with hip::host + CUDA::cudart in client targets.
  Clients call the hipBLAS API (which wraps cuBLAS) but don't call cuBLAS
  directly; they need CUDA::cudart for device management and hip::host
  for HIP allocation/device calls, not the full cuBLAS link.

Co-Authored-By: Claude Sonnet 4 (1M context) <noreply@anthropic.com>
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