This commit introduces proper handling of ROCm 5 and ROCm 6 runtimes on Linux, based on the version of the ROCm compiler used at build time. Previously, HIPEW (the HIP equivalent of Cuda Wrangler) defaulted to loading the ROCm 5 runtime. If ROCm 5 was unavailable, it would attempt to load ROCm 6. However, ROCm 6 introduces changes in certain structures and functions that are not backward compatible, leading to potential issues when kernels compiled with the ROCm 6 compiler are executed on the ROCm 5 runtime. ### Summary of Changes: **Separation of Structures and Functions:** Structures and functions are now separated into hipew5 and hipew6 to accommodate the differences between ROCm versions. **Build-Time Version Detection:** The ROCm version is determined during build time, and the corresponding hipew5 or hipew6 is included accordingly. **Runtime Default to ROCm 6:** By default, HIPEW now loads the ROCm 6 runtime and includes hipew6 (Linux only). **JIT Compilation Behavior:** Since ROCm 6 is the default version, JIT compilation is supported only when the ROCm 6 compiler is detected at runtime. **HIP-RT Update:** HIP-RT has been updated to load the ROCm 6 runtime by default. These changes ensure compatibility and stability when switching between ROCm versions, avoiding issues caused by runtime and compiler mismatches. Co-authored-by: Alaska <alaskayou01@gmail.com> Co-authored-by: Sergey Sharybin <sergey@blender.org> Pull Request: https://projects.blender.org/blender/blender/pulls/130153
The HIP Extension Wrangler Library (HIPEW) is a cross-platform open-source C/C++ library to dynamically load the HIP library. HIP (Heterogeneous-Compute Interface for Portability) is an API for C++ programming on AMD GPUs. It is maintained as part of the Blender project, but included in extern/ for consistency with CUEW and CLEW libraries. LICENSE HIPEW is released under the Apache 2.0 license.