Skip to content

Commit

Permalink
Merge pull request #968 from emankov/HIPIFY
Browse files Browse the repository at this point in the history
[HIPIFY][cmake][tests] Refactor CUDA-related things in cmake and unit-testing - Step 1
  • Loading branch information
emankov authored Jul 25, 2023
2 parents 4b80baf + e532b4d commit 118d5cb
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 19 deletions.
43 changes: 29 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ else()
find_package(LLVM REQUIRED CONFIG PATHS ${CMAKE_PREFIX_PATH})

message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}:")
message(STATUS " - CMake module path: ${LLVM_CMAKE_DIR}")
message(STATUS " - CMake module path : ${LLVM_CMAKE_DIR}")
message(STATUS " - Clang include path: ${CLANG_INCLUDE_DIRS}")
message(STATUS " - LLVM Include path: ${LLVM_INCLUDE_DIRS}")
message(STATUS " - Binary path : ${LLVM_TOOLS_BINARY_DIR}")
message(STATUS " - LLVM Include path : ${LLVM_INCLUDE_DIRS}")
message(STATUS " - Binary path : ${LLVM_TOOLS_BINARY_DIR}")
endif()

option(HIPIFY_CLANG_TESTS "Build HIPIFY tests, if lit is installed" OFF)
Expand Down Expand Up @@ -233,22 +233,37 @@ if(HIPIFY_CLANG_TESTS OR HIPIFY_CLANG_TESTS_ONLY)
require_program(FileCheck)

set(CUDA_TOOLKIT_ROOT_DIR OFF CACHE PATH "Path to CUDA Toolkit to use in hipify-clang unit testing")
set(CUDA_SDK_ROOT_DIR OFF CACHE PATH "Path to CUDA Toolkit Samples")
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)
set(CUDAToolkit_ROOT "${CUDA_TOOLKIT_ROOT_DIR}")
endif()
else()
if(DEFINED CUDAToolkit_ROOT)
set(CUDA_TOOLKIT_ROOT_DIR "${CUDAToolkit_ROOT}")
endif()
endif()

message(STATUS "CUDA config for testing:")
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(${CMAKE_VERSION} VERSION_LESS "3.27.0")
find_package(CUDA REQUIRED)
set(CUDA_VERSION_FULL "${CUDA_VERSION}")
else()
if(DEFINED CUDA_TOOLKIT_ROOT_DIR)
if(NOT DEFINED CUDAToolkit_ROOT)
set(CUDAToolkit_ROOT "${CUDA_TOOLKIT_ROOT_DIR}")
endif()
endif()
find_package(CUDAToolkit REQUIRED)
set(CUDA_VERSION_MAJOR "${CUDAToolkit_VERSION_MAJOR}")
set(CUDA_VERSION_MINOR "${CUDAToolkit_VERSION_MINOR}")
set(CUDA_VERSION "${CUDAToolkit_VERSION_MAJOR}.${CUDAToolkit_VERSION_MINOR}")
if(NOT DEFINED CUDA_TOOLKIT_ROOT_DIR)
set(CUDA_TOOLKIT_ROOT_DIR "${CUDAToolkit_ROOT}")
endif()
set(CUDA_VERSION_MAJOR "${CUDAToolkit_VERSION_MAJOR}")
set(CUDA_VERSION_MINOR "${CUDAToolkit_VERSION_MINOR}")
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}")
endif()

if((CUDA_VERSION VERSION_LESS "7.0") OR (LLVM_PACKAGE_VERSION VERSION_LESS "3.8") OR
Expand Down
11 changes: 6 additions & 5 deletions tests/lit.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,25 @@ config.excludes.append('inc.h')

delimiter = "===============================================================";
print(delimiter)
print("CUDA " + config.cuda_version + " - will be used for testing")
print("CUDA " + config.cuda_version_full + " - will be used for testing")
print("LLVM " + config.llvm_version + " - will be used for testing")
print(platform.machine() + " - Platform architecture")
print(platform.system() + " " + platform.release() + " - Platform OS")
print(str(config.pointer_size * 8) + " - hipify-clang binary bitness")
print(str(struct.calcsize("P") * 8) + " - python " + str(platform.python_version()) + " binary bitness")
print(delimiter)
warns = None
if not config.cuda_dnn_root:
if not config.cuda_dnn_root or config.cuda_dnn_root == "OFF":
config.excludes.append('cudnn_convolution_forward.cu')
config.excludes.append('cudnn_softmax.cu')
print("WARN: cuDNN tests are excluded due to unset CUDA_DNN_ROOT_DIR")
config.excludes.append('cudnn2miopen.cu')
print("WARN: cuDNN tests are excluded because CUDA_DNN_ROOT_DIR is not specified")
warns = True
if not config.cuda_cub_root:
if not config.cuda_cub_root or config.cuda_cub_root == "OFF":
config.excludes.append('cub_01.cu')
config.excludes.append('cub_02.cu')
config.excludes.append('cub_03.cu')
print("WARN: CUB tests are excluded due to unset CUDA_CUB_ROOT_DIR")
print("WARN: CUB tests are excluded because CUDA_CUB_ROOT_DIR is not specified")
warns = True
if warns:
print(delimiter)
Expand Down
1 change: 1 addition & 0 deletions tests/lit.site.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ config.cuda_dnn_root = "@CUDA_DNN_ROOT_DIR@"
config.cuda_cub_root = "@CUDA_CUB_ROOT_DIR@"
config.cuda_version_major = int("@CUDA_VERSION_MAJOR@")
config.cuda_version_minor = int("@CUDA_VERSION_MINOR@")
config.cuda_version_full = "@CUDA_VERSION_FULL@"
config.cuda_version = "@CUDA_VERSION@"
if sys.platform in ['win32']:
config.cuda_sdk_root = "@CUDA_SDK_ROOT_DIR@"
Expand Down

0 comments on commit 118d5cb

Please sign in to comment.