Skip to content

Commit 9b0d3b9

Browse files
committed
GPU CMake: Multiple updates
1 parent 4f61a66 commit 9b0d3b9

1 file changed

Lines changed: 27 additions & 10 deletions

File tree

dependencies/FindO2GPU.cmake

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
# or submit itself to any jurisdiction.
1111

1212
# NOTE!!!! - Whenever this file is changed, move it over to alidist/resources
13-
# FindO2GPU.cmake Version 18
13+
# FindO2GPU.cmake Version 19
1414

15-
set(CUDA_COMPUTETARGET_DEFAULT_FULL 80-real 86-real 89-real 120-real 75-virtual)
15+
set(CUDA_COMPUTETARGET_DEFAULT_FULL 80-real;86-real;89-real;120-real;75-virtual)
1616
set(HIP_AMDGPUTARGET_DEFAULT_FULL gfx906;gfx908)
1717
set(CUDA_COMPUTETARGET_DEFAULT_MINIMAL 75-virtual)
1818
set(HIP_AMDGPUTARGET_DEFAULT_MINIMAL gfx906)
@@ -179,6 +179,11 @@ if(ENABLE_CUDA)
179179
endif()
180180
set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD})
181181
set(CMAKE_CUDA_STANDARD_REQUIRED TRUE)
182+
if (DEFINED ENV{O2_GPU_CUDA_HOME})
183+
set(CMAKE_CUDA_COMPILER "$ENV{O2_GPU_CUDA_HOME}/bin/nvcc")
184+
elseif (DEFINED ENV{CUDA_PATH})
185+
set(CMAKE_CUDA_COMPILER "$ENV{CUDA_PATH}/bin/nvcc")
186+
endif()
182187
include(CheckLanguage)
183188
check_language(CUDA)
184189
if (NOT ENABLE_CUDA STREQUAL "AUTO")
@@ -310,18 +315,30 @@ if(ENABLE_HIP)
310315
set(CMAKE_HIP_ARCHITECTURES "${HIP_AMDGPUTARGET}")
311316
set(GPU_TARGETS "${HIP_AMDGPUTARGET}")
312317
endif()
313-
if(NOT "$ENV{CMAKE_PREFIX_PATH}" MATCHES "rocm" AND NOT CMAKE_PREFIX_PATH MATCHES "rocm" AND EXISTS "/opt/rocm/lib/cmake/")
318+
if (DEFINED ENV{O2_GPU_ROCM_HOME})
319+
list(PREPEND CMAKE_PREFIX_PATH "$ENV{O2_GPU_ROCM_HOME}/lib/cmake")
320+
elseif (DEFINED ENV{ROCM_PATH})
321+
list(PREPEND CMAKE_PREFIX_PATH "$ENV{ROCM_PATH}/lib/cmake")
322+
elseif(NOT "$ENV{CMAKE_PREFIX_PATH}" MATCHES "rocm|ROCm" AND NOT CMAKE_PREFIX_PATH MATCHES "rocm|ROCm" AND EXISTS "/opt/rocm/lib/cmake/")
314323
list(APPEND CMAKE_PREFIX_PATH "/opt/rocm/lib/cmake")
315324
endif()
316325
# TODO: Use ROCm folder as provided by alidist-gpu recipe
317-
if("$ENV{CMAKE_PREFIX_PATH}" MATCHES "rocm" OR CMAKE_PREFIX_PATH MATCHES "rocm")
326+
if("$ENV{CMAKE_PREFIX_PATH}" MATCHES "rocm|ROCm" OR CMAKE_PREFIX_PATH MATCHES "rocm|ROCm")
327+
if (DEFINED ENV{O2_GPU_ROCM_HOME})
328+
set(CMAKE_HIP_COMPILER "$ENV{O2_GPU_ROCM_HOME}/llvm/bin/clang++")
329+
set(TMP_ROCM_DIR "$ENV{O2_GPU_ROCM_HOME}")
330+
elseif (DEFINED ENV{ROCM_PATH})
331+
set(CMAKE_HIP_COMPILER "$ENV{ROCM_PATH}/llvm/bin/clang++")
332+
set(TMP_ROCM_DIR "$ENV{ROCM_PATH}")
333+
else()
334+
set(TMP_ROCM_DIR_LIST "${CMAKE_PREFIX_PATH}:$ENV{CMAKE_PREFIX_PATH}")
335+
string(REPLACE ":" ";" TMP_ROCM_DIR_LIST "${TMP_ROCM_DIR_LIST}")
336+
list(FILTER TMP_ROCM_DIR_LIST INCLUDE REGEX /rocm/lib/cmake|/ROCm/lib/cmake)
337+
list(POP_FRONT TMP_ROCM_DIR_LIST TMP_ROCM_DIR)
338+
get_filename_component(TMP_ROCM_DIR ${TMP_ROCM_DIR}/../../ ABSOLUTE)
339+
endif()
318340
set(CMAKE_HIP_STANDARD ${CMAKE_CXX_STANDARD})
319341
set(CMAKE_HIP_STANDARD_REQUIRED TRUE)
320-
set(TMP_ROCM_DIR_LIST "${CMAKE_PREFIX_PATH}:$ENV{CMAKE_PREFIX_PATH}")
321-
string(REPLACE ":" ";" TMP_ROCM_DIR_LIST "${TMP_ROCM_DIR_LIST}")
322-
list(FILTER TMP_ROCM_DIR_LIST INCLUDE REGEX /rocm/lib/cmake)
323-
list(POP_FRONT TMP_ROCM_DIR_LIST TMP_ROCM_DIR)
324-
get_filename_component(TMP_ROCM_DIR ${TMP_ROCM_DIR}/../../ ABSOLUTE)
325342
if (NOT DEFINED CMAKE_HIP_COMPILER)
326343
set(CMAKE_HIP_COMPILER "${TMP_ROCM_DIR}/llvm/bin/clang++")
327344
if(NOT EXISTS ${CMAKE_HIP_COMPILER})
@@ -362,7 +379,7 @@ if(ENABLE_HIP)
362379
enable_language(HIP)
363380
endif()
364381
elseif(NOT ENABLE_HIP STREQUAL "AUTO")
365-
message(FATAL_ERROR "HIP requested, but CMAKE_PREFIX_PATH env variable does not contain rocm folder!")
382+
message(FATAL_ERROR "HIP requested, but CMAKE_PREFIX_PATH (${CMAKE_PREFIX_PATH} env variable does not contain rocm folder!")
366383
endif()
367384
if(hip_FOUND AND NOT hip_VERSION VERSION_GREATER_EQUAL "6.3")
368385
set(hip_FOUND 0)

0 commit comments

Comments
 (0)