Skip to content

Commit

Permalink
[HIPIFY][cmake][tests] Refactor CUDA-related things in cmake and unit…
Browse files Browse the repository at this point in the history
…-testing - Step 3

+ Fix setting of `CUDAToolkit_ROOT` and `CUDA_TOOLKIT_ROOT_DIR` if one of them is set
+ [cmake > 3.27.0] Fix setting of `CUDA_TOOLKIT_ROOT_DIR` to `CUDAToolkit_LIBRARY_ROOT` instead of erroneous `CUDAToolkit_ROOT`, which points to `include` subfolder
+ Introduced `Initial CUDA to configure` and `Found CUDA config` after the corresponding CUDA's `find_package`
  • Loading branch information
emankov committed Jul 29, 2023
1 parent a05640f commit 0d7ef19
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,8 @@ endif() # if (NOT HIPIFY_CLANG_TESTS_ONLY)

if(HIPIFY_CLANG_TESTS OR HIPIFY_CLANG_TESTS_ONLY)

message(STATUS "---- The below configuring for hipify-clang testing only ----")

if(${CMAKE_VERSION} VERSION_LESS "3.27.0")
find_package(PythonInterp 2.7 REQUIRED)
else()
Expand All @@ -253,17 +255,17 @@ if(HIPIFY_CLANG_TESTS OR HIPIFY_CLANG_TESTS_ONLY)
set(CUDA_DNN_ROOT_DIR OFF CACHE PATH "Path to cuDNN")
set(CUDA_CUB_ROOT_DIR OFF CACHE PATH "Path to CUB")

if(DEFINED CUDA_TOOLKIT_ROOT_DIR)
if(NOT DEFINED CUDAToolkit_ROOT)
if(DEFINED CUDA_TOOLKIT_ROOT_DIR AND NOT CUDA_TOOLKIT_ROOT_DIR MATCHES "OFF")
if(NOT DEFINED CUDAToolkit_ROOT OR CUDAToolkit_ROOT MATCHES "OFF")
set(CUDAToolkit_ROOT "${CUDA_TOOLKIT_ROOT_DIR}")
endif()
else()
if(DEFINED CUDAToolkit_ROOT)
if(DEFINED CUDAToolkit_ROOT AND NOT CUDAToolkit_ROOT MATCHES "OFF")
set(CUDA_TOOLKIT_ROOT_DIR "${CUDAToolkit_ROOT}")
endif()
endif()

message(STATUS "CUDA config for testing:")
message(STATUS "Initial CUDA to configure:")
message(STATUS " - CUDA Toolkit path : ${CUDA_TOOLKIT_ROOT_DIR}")
message(STATUS " - CUDA Samples path : ${CUDA_SDK_ROOT_DIR}")
message(STATUS " - cuDNN path : ${CUDA_DNN_ROOT_DIR}")
Expand All @@ -279,18 +281,23 @@ if(HIPIFY_CLANG_TESTS OR HIPIFY_CLANG_TESTS_ONLY)
set(CUDA_VERSION_PATCH "${CUDAToolkit_VERSION_PATCH}")
set(CUDA_VERSION_FULL "${CUDAToolkit_VERSION}")
set(CUDA_VERSION "${CUDAToolkit_VERSION_MAJOR}.${CUDAToolkit_VERSION_MINOR}")
set(CUDA_TOOLKIT_ROOT_DIR "${CUDAToolkit_ROOT}")
set(CUDA_TOOLKIT_ROOT_DIR "${CUDAToolkit_LIBRARY_ROOT}")
endif()

if(WIN32 AND CUDA_VERSION VERSION_LESS "11.6" AND CUDA_SDK_ROOT_DIR STREQUAL "OFF" AND NOT CUDA_TOOLKIT_ROOT_DIR MATCHES "OFF")
set(NVCUDASAMPLES "NVCUDASAMPLES${CUDA_VERSION_MAJOR}_${CUDA_VERSION_MINOR}_ROOT")
if(DEFINED ENV{${NVCUDASAMPLES}})
set(CUDA_SDK_ROOT_DIR "$ENV{${NVCUDASAMPLES}}")
string(REPLACE "\\" "/" CUDA_SDK_ROOT_DIR ${CUDA_SDK_ROOT_DIR})
message(STATUS " - CUDA Samples path : ${CUDA_SDK_ROOT_DIR}")
endif()
endif()

message(STATUS "Found CUDA config:")
message(STATUS " - CUDA Toolkit path : ${CUDA_TOOLKIT_ROOT_DIR}")
message(STATUS " - CUDA Samples path : ${CUDA_SDK_ROOT_DIR}")
message(STATUS " - cuDNN path : ${CUDA_DNN_ROOT_DIR}")
message(STATUS " - CUB path : ${CUDA_CUB_ROOT_DIR}")

if((CUDA_VERSION VERSION_LESS "7.0") OR (LLVM_PACKAGE_VERSION VERSION_LESS "3.8") OR
(CUDA_VERSION VERSION_GREATER "7.5" AND LLVM_PACKAGE_VERSION VERSION_LESS "4.0") OR
(CUDA_VERSION VERSION_GREATER "8.0" AND LLVM_PACKAGE_VERSION VERSION_LESS "6.0") OR
Expand Down

0 comments on commit 0d7ef19

Please sign in to comment.