[ROCm] update hip library name (#41813)
Summary:
With transition to hipclang, the HIP runtime library name was changed. A symlink was added to ease the transition, but is going to be removed. Conditionally set library name based on HIP compiler used. Patch gloo submodule as part of build_amd.py script until its associated fix is available.
CC ezyang xw285cornell sunway513
Pull Request resolved: https://github.com/pytorch/pytorch/pull/41813
Reviewed By: zhangguanheng66
Differential Revision: D22660077
Pulled By: xw285cornell
fbshipit-source-id: c538129268d9947535b34523201f655b13c9e0a3
diff --git a/cmake/public/LoadHIP.cmake b/cmake/public/LoadHIP.cmake
index 34902db..c6d644e 100644
--- a/cmake/public/LoadHIP.cmake
+++ b/cmake/public/LoadHIP.cmake
@@ -175,11 +175,18 @@
find_package_and_print_version(hipcub REQUIRED)
find_package_and_print_version(rocthrust REQUIRED)
+ if(HIP_COMPILER STREQUAL clang)
+ set(hip_library_name amdhip64)
+ else()
+ set(hip_library_name hip_hcc)
+ endif()
+ message("HIP library name: ${hip_library_name}")
+
# TODO: hip_hcc has an interface include flag "-hc" which is only
# recognizable by hcc, but not gcc and clang. Right now in our
# setup, hcc is only used for linking, but it should be used to
# compile the *_hip.cc files as well.
- find_library(PYTORCH_HIP_HCC_LIBRARIES hip_hcc HINTS ${HIP_PATH}/lib)
+ find_library(PYTORCH_HIP_HCC_LIBRARIES ${hip_library_name} HINTS ${HIP_PATH}/lib)
# TODO: miopen_LIBRARIES should return fullpath to the library file,
# however currently it's just the lib name
find_library(PYTORCH_MIOPEN_LIBRARIES ${miopen_LIBRARIES} HINTS ${MIOPEN_PATH}/lib)
@@ -187,7 +194,7 @@
# however currently it's just the lib name
find_library(PYTORCH_RCCL_LIBRARIES ${rccl_LIBRARIES} HINTS ${RCCL_PATH}/lib)
# hiprtc is part of HIP
- find_library(ROCM_HIPRTC_LIB hiprtc HINTS ${HIP_PATH}/lib)
+ find_library(ROCM_HIPRTC_LIB ${hip_library_name} HINTS ${HIP_PATH}/lib)
# roctx is part of roctracer
find_library(ROCM_ROCTX_LIB roctx64 HINTS ${ROCTRACER_PATH}/lib)
set(roctracer_INCLUDE_DIRS ${ROCTRACER_PATH}/include)
diff --git a/tools/amd_build/build_amd.py b/tools/amd_build/build_amd.py
index a975cc0..acecbe7 100755
--- a/tools/amd_build/build_amd.py
+++ b/tools/amd_build/build_amd.py
@@ -116,6 +116,21 @@
except IOError:
return False
+# TODO Remove once gloo submodule is recent enough to contain upstream fix.
+if is_hip_clang():
+ gloo_cmake_file = "third_party/gloo/cmake/Hip.cmake"
+ do_write = False
+ with open(gloo_cmake_file, "r") as sources:
+ lines = sources.readlines()
+ newlines = [line.replace(' hip_hcc ', ' amdhip64 ') for line in lines]
+ if lines == newlines:
+ print("%s skipped" % gloo_cmake_file)
+ else:
+ with open(gloo_cmake_file, "w") as sources:
+ for line in newlines:
+ sources.write(line)
+ print("%s updated" % gloo_cmake_file)
+
hipify_python.hipify(
project_directory=proj_dir,
output_directory=out_dir,