Validate the HIP backend on Instinct MI300X/MI350X and native Windows - #77
Merged
Conversation
Two fixes found while validating the HIP backend on a Windows machine with the AMD HIP SDK 7.1 (Radeon 8060S, gfx1151): 1. JitHelper: hiprtc on Windows has no implicit ROCm include path, so every runtime kernel compilation failed with 'hip/hip_runtime.h file not found'. The include-path lookup now accepts HIP_PATH (the Windows HIP SDK convention) in addition to ROCM_PATH, and the clang builtin header scan also covers the Windows SDK layout (lib/clang/<version>) in addition to the Linux one (lib/llvm/lib/clang/<version>). 2. kT/dT worker threads: an exception escaping a std::thread calls std::terminate, which on Windows prints nothing, so JIT compilation errors were silently swallowed (exit 0xC0000409 with no message). The worker-thread entry points now catch, report to stderr, and rethrow. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Validation performed on the AMD University Program AI & HPC Cluster (this work used computing resources made available through the AMD University Program (AUP) AI & HPC Cluster) and on a Windows 11 machine: - MI300X (gfx942) and MI350X (gfx950), ROCm 7.2.0, Linux: build with -DUSE_HIP=ON and a multi-arch CMAKE_HIP_ARCHITECTURES list; the SingleSphereCollide and Mixer demos run to completion on both, with output files free of NaN/Inf and physically sensible. - Radeon 8060S (gfx1151), HIP SDK 7.1, native Windows: builds with the SDK's clang++ for both CXX and HIP under the Ninja generator (CMake rejects mixing MSVC cl for CXX with clang for HIP); smoke demos pass. Co-Authored-By: Claude Fable 5 <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.
Summary
Validation of the ROCm/HIP backend (#69) on GPUs it had not been tested on, plus two small Windows fixes.
gfx942) and MI350X (gfx950), ROCm 7.2.0, Linux: builds with-DUSE_HIP=ONandCMAKE_HIP_ARCHITECTURES="gfx90a;gfx942;gfx950";DEMdemo_SingleSphereCollideandDEMdemo_Mixerrun to completion on both architectures, with output files free of NaN/Inf.DEMdemo_GameOfLifeandDEMdemo_BallDropalso ran correctly (time-boxed, not to completion).gfx1151): builds with the SDK'sclang++for both CXX and HIP under the Ninja generator (CMake rejects mixing MSVC for CXX with clang for HIP); smoke demos pass.Two fixes were needed for Windows (details in the commit messages):
'hip/hip_runtime.h' file not found. The JIT include lookup now also honorsHIP_PATH(the Windows HIP SDK convention) and the Windows clang builtin-header layout.The README gained the validated architectures and the native Windows build recipe. CUDA builds are unaffected.
This work used computing resources made available through the AMD University Program (AUP) AI & HPC Cluster.