@@ -174,54 +174,46 @@ endif()
174174
175175# Detect and enable HIP
176176if (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