Repository navigation
Conversation
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 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
*This pull request uses carry forward flags. Click here to find out more. 🚀 New features to boost your workflow:
|
newling
force-pushed
the
users/dsalinas/deprecate-hipcc
branch
from
September 8, 2026 15:29
0c0f262 to
579494a
Compare
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>
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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