Skip to content

Commit 74be470

Browse files
committed
GPU: Improve ROCm path auto-detection, if not set but /opt/rocm exists, just use it
1 parent 00b49dd commit 74be470

1 file changed

Lines changed: 37 additions & 45 deletions

File tree

dependencies/FindO2GPU.cmake

Lines changed: 37 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -174,54 +174,46 @@ endif()
174174

175175
# Detect and enable HIP
176176
if(ENABLE_HIP)
177-
if(NOT DEFINED HIP_PATH)
178-
if(NOT DEFINED ENV{HIP_PATH})
179-
set(HIP_PATH
180-
"/opt/rocm/hip"
181-
CACHE PATH "Path to which HIP has been installed")
182-
else()
183-
set(HIP_PATH
184-
$ENV{HIP_PATH}
185-
CACHE PATH "Path to which HIP has been installed")
186-
endif()
177+
if(HIP_AMDGPUTARGET)
178+
set(AMDGPU_TARGETS "${HIP_AMDGPUTARGET}" CACHE STRING "AMD GPU targets to compile for" FORCE)
179+
set(GPU_TARGETS "${HIP_AMDGPUTARGET}" CACHE STRING "AMD GPU targets to compile for" FORCE)
187180
endif()
188-
189-
if(EXISTS "${HIP_PATH}")
190-
get_filename_component(hip_ROOT "${HIP_PATH}" ABSOLUTE)
181+
if(EXISTS "/opt/rocm/lib/cmake" AND (NOT DEFINED CMAKE_PREFIX_PATH OR NOT ${CMAKE_PREFIX_PATH} MATCHES "rocm") AND NOT $ENV{CMAKE_PREFIX_PATH} MATCHES "rocm")
182+
set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};/opt/rocm/lib/cmake")
183+
message(STATUS "FOO ${CMAKE_PREFIX_PATH} aa $ENV{CMAKE_PREFIX_PATH}")
184+
endif()
185+
find_package(hip)
186+
find_package(hipcub)
187+
find_package(rocprim)
188+
find_package(rocthrust)
189+
find_program(hip_HIPIFY_PERL_EXECUTABLE "hipify-perl")
190+
if(NOT hip_HIPIFY_PERL_EXECUTABLE)
191+
find_program(hip_HIPIFY_PERL_EXECUTABLE "hipify-perl" HINTS "/opt/rocm/hip/bin")
192+
endif()
193+
if(ENABLE_HIP STREQUAL "AUTO")
194+
set_package_properties(hip PROPERTIES TYPE OPTIONAL)
195+
set_package_properties(hipcub PROPERTIES TYPE OPTIONAL)
196+
set_package_properties(rocprim PROPERTIES TYPE OPTIONAL)
197+
set_package_properties(rocthrust PROPERTIES TYPE OPTIONAL)
198+
else()
199+
set_package_properties(hip PROPERTIES TYPE REQUIRED)
200+
set_package_properties(hipcub PROPERTIES TYPE REQUIRED)
201+
set_package_properties(rocprim PROPERTIES TYPE REQUIRED)
202+
set_package_properties(rocthrust PROPERTIES TYPE REQUIRED)
203+
endif()
204+
if(hip_FOUND AND hipcub_FOUND AND rocthrust_FOUND AND rocprim_FOUND AND hip_HIPCC_EXECUTABLE AND hip_HIPIFY_PERL_EXECUTABLE)
205+
set(HIP_ENABLED ON)
206+
set_target_properties(roc::rocthrust PROPERTIES IMPORTED_GLOBAL TRUE)
207+
message(STATUS "HIP Found (${hip_HIPCC_EXECUTABLE})")
208+
set(O2_HIP_CMAKE_CXX_FLAGS "-fgpu-defer-diag -mllvm -amdgpu-enable-lower-module-lds=false -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -Wno-invalid-constexpr -Wno-ignored-optimization-argument -Wno-unused-private-field")
191209
if(HIP_AMDGPUTARGET)
192-
set(AMDGPU_TARGETS "${HIP_AMDGPUTARGET}" CACHE STRING "AMD GPU targets to compile for" FORCE)
193-
set(GPU_TARGETS "${HIP_AMDGPUTARGET}" CACHE STRING "AMD GPU targets to compile for" FORCE)
194-
endif()
195-
find_package(hip)
196-
find_package(hipcub)
197-
find_package(rocprim)
198-
find_package(rocthrust)
199-
find_program(hip_HIPIFY_PERL_EXECUTABLE "hipify-perl" HINTS "${HIP_PATH}/bin")
200-
if(ENABLE_HIP STREQUAL "AUTO")
201-
set_package_properties(hip PROPERTIES TYPE OPTIONAL)
202-
set_package_properties(hipcub PROPERTIES TYPE OPTIONAL)
203-
set_package_properties(rocprim PROPERTIES TYPE OPTIONAL)
204-
set_package_properties(rocthrust PROPERTIES TYPE OPTIONAL)
205-
else()
206-
set_package_properties(hip PROPERTIES TYPE REQUIRED)
207-
set_package_properties(hipcub PROPERTIES TYPE REQUIRED)
208-
set_package_properties(rocprim PROPERTIES TYPE REQUIRED)
209-
set_package_properties(rocthrust PROPERTIES TYPE REQUIRED)
210-
endif()
211-
if(hip_FOUND AND hipcub_FOUND AND rocthrust_FOUND AND rocprim_FOUND AND hip_HIPCC_EXECUTABLE AND hip_HIPIFY_PERL_EXECUTABLE)
212-
set(HIP_ENABLED ON)
213-
set_target_properties(roc::rocthrust PROPERTIES IMPORTED_GLOBAL TRUE)
214-
message(STATUS "HIP Found (${hip_HIPCC_EXECUTABLE})")
215-
set(O2_HIP_CMAKE_CXX_FLAGS "-fgpu-defer-diag -mllvm -amdgpu-enable-lower-module-lds=false -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -Wno-invalid-constexpr -Wno-ignored-optimization-argument -Wno-unused-private-field")
216-
if(HIP_AMDGPUTARGET)
217-
set(O2_HIP_CMAKE_CXX_FLAGS "${O2_HIP_CMAKE_CXX_FLAGS} --amdgpu-target=${HIP_AMDGPUTARGET}")
218-
endif()
219-
if(NOT DEFINED GPUCA_NO_FAST_MATH OR NOT ${GPUCA_NO_FAST_MATH})
220-
set(O2_HIP_CMAKE_CXX_FLAGS "${O2_HIP_CMAKE_CXX_FLAGS} -fgpu-flush-denormals-to-zero -ffast-math")
221-
endif()
222-
else()
223-
set(HIP_ENABLED OFF)
210+
set(O2_HIP_CMAKE_CXX_FLAGS "${O2_HIP_CMAKE_CXX_FLAGS} --amdgpu-target=${HIP_AMDGPUTARGET}")
211+
endif()
212+
if(NOT DEFINED GPUCA_NO_FAST_MATH OR NOT ${GPUCA_NO_FAST_MATH})
213+
set(O2_HIP_CMAKE_CXX_FLAGS "${O2_HIP_CMAKE_CXX_FLAGS} -fgpu-flush-denormals-to-zero -ffast-math")
224214
endif()
215+
else()
216+
set(HIP_ENABLED OFF)
225217
endif()
226218
if(NOT HIP_ENABLED AND NOT ENABLE_HIP STREQUAL "AUTO")
227219
if (NOT hip_FOUND)

0 commit comments

Comments
 (0)