diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e1a056fbd..e0b2c834b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -446,34 +446,36 @@ endif() option(EIGEN_TEST_HIP "Add HIP support." OFF) if (EIGEN_TEST_HIP) - set(HIP_PATH "/opt/rocm/hip" CACHE STRING "Path to the HIP installation.") + set(ROCM_PATH "/opt/rocm" CACHE STRING "Path to the ROCm installation.") - if (EXISTS ${HIP_PATH}) - - list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/cmake) - - find_package(HIP REQUIRED) - if (HIP_FOUND) - - execute_process(COMMAND ${HIP_PATH}/bin/hipconfig --platform OUTPUT_VARIABLE HIP_PLATFORM) - - if ((${HIP_PLATFORM} STREQUAL "hcc") OR (${HIP_PLATFORM} STREQUAL "amd")) - - include_directories(${HIP_PATH}/include) - - set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") - ei_add_test(gpu_basic) - ei_add_test(gpu_example) - unset(EIGEN_ADD_TEST_FILENAME_EXTENSION) - - elseif ((${HIP_PLATFORM} STREQUAL "nvcc") OR (${HIP_PLATFORM} STREQUAL "nvidia")) - message(FATAL_ERROR "HIP_PLATFORM = nvcc is not supported within Eigen") - else () - message(FATAL_ERROR "Unknown HIP_PLATFORM = ${HIP_PLATFORM}") - endif() - endif() + if (EXISTS ${ROCM_PATH}/hip) + set(HIP_PATH ${ROCM_PATH}/hip) + list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/cmake) + elseif (EXISTS ${ROCM_PATH}/lib/cmake/hip) + set(HIP_PATH ${ROCM_PATH}) + list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/lib/cmake/hip) else () - message(FATAL_ERROR "EIGEN_TEST_HIP is ON, but the specified HIP_PATH (${HIP_PATH}) does not exist") + message(FATAL_ERROR "EIGEN_TEST_HIP is ON, but could not find the ROCm installation under ${ROCM_PATH}") + endif() + + find_package(HIP REQUIRED) + if (HIP_FOUND) + execute_process(COMMAND ${HIP_PATH}/bin/hipconfig --platform OUTPUT_VARIABLE HIP_PLATFORM) + + if ((${HIP_PLATFORM} STREQUAL "hcc") OR (${HIP_PLATFORM} STREQUAL "amd")) + + include_directories(${HIP_PATH}/include) + + set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") + ei_add_test(gpu_basic) + ei_add_test(gpu_example) + unset(EIGEN_ADD_TEST_FILENAME_EXTENSION) + + elseif ((${HIP_PLATFORM} STREQUAL "nvcc") OR (${HIP_PLATFORM} STREQUAL "nvidia")) + message(FATAL_ERROR "HIP_PLATFORM = nvcc is not supported within Eigen") + else () + message(FATAL_ERROR "Unknown HIP_PLATFORM = ${HIP_PLATFORM}") + endif() endif() endif() diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt index d41baf2ea..3a985cf5b 100644 --- a/unsupported/test/CMakeLists.txt +++ b/unsupported/test/CMakeLists.txt @@ -287,49 +287,52 @@ endif() # Add HIP specific tests if (EIGEN_TEST_HIP) - set(HIP_PATH "/opt/rocm/hip" CACHE STRING "Path to the HIP installation.") + set(ROCM_PATH "/opt/rocm" CACHE STRING "Path to the ROCm installation.") - if (EXISTS ${HIP_PATH}) + if (EXISTS ${ROCM_PATH}/hip) + set(HIP_PATH ${ROCM_PATH}/hip) list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/cmake) - - find_package(HIP REQUIRED) - if (HIP_FOUND) - execute_process(COMMAND ${HIP_PATH}/bin/hipconfig --platform OUTPUT_VARIABLE HIP_PLATFORM) - - if ((${HIP_PLATFORM} STREQUAL "hcc") OR (${HIP_PLATFORM} STREQUAL "amd")) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) - include_directories(${HIP_PATH}/include) - - set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") - # - # complex datatype is not yet supported by HIP - # so leaving out those tests for now - # - # ei_add_test(cxx11_tensor_complex_gpu) - # ei_add_test(cxx11_tensor_complex_cwise_ops_gpu) - # - ei_add_test(cxx11_tensor_reduction_gpu) - ei_add_test(cxx11_tensor_argmax_gpu) - ei_add_test(cxx11_tensor_cast_float16_gpu) - ei_add_test(cxx11_tensor_scan_gpu) - ei_add_test(cxx11_tensor_device) - - ei_add_test(cxx11_tensor_gpu) - ei_add_test(cxx11_tensor_contract_gpu) - ei_add_test(cxx11_tensor_of_float16_gpu) - ei_add_test(cxx11_tensor_of_bfloat16_gpu) - ei_add_test(cxx11_tensor_random_gpu) - - unset(EIGEN_ADD_TEST_FILENAME_EXTENSION) - - elseif ((${HIP_PLATFORM} STREQUAL "nvcc") OR (${HIP_PLATFORM} STREQUAL "nvidia")) - message(FATAL_ERROR "HIP_PLATFORM = nvcc is not supported within Eigen") - else () - message(FATAL_ERROR "Unknown HIP_PLATFORM = ${HIP_PLATFORM}") - endif() - endif() + elseif (EXISTS ${ROCM_PATH}/lib/cmake/hip) + set(HIP_PATH ${ROCM_PATH}) + list(APPEND CMAKE_MODULE_PATH ${HIP_PATH}/lib/cmake/hip) else () - message(FATAL_ERROR "EIGEN_TEST_HIP is ON, but the specified HIP_PATH (${HIP_PATH}) does not exist") + message(FATAL_ERROR "EIGEN_TEST_HIP is ON, but could not find the ROCm installation under ${ROCM_PATH}") endif() + find_package(HIP REQUIRED) + if (HIP_FOUND) + execute_process(COMMAND ${HIP_PATH}/bin/hipconfig --platform OUTPUT_VARIABLE HIP_PLATFORM) + + if ((${HIP_PLATFORM} STREQUAL "hcc") OR (${HIP_PLATFORM} STREQUAL "amd")) + include_directories(${CMAKE_CURRENT_BINARY_DIR}) + include_directories(${HIP_PATH}/include) + + set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu") + # + # complex datatype is not yet supported by HIP + # so leaving out those tests for now + # + # ei_add_test(cxx11_tensor_complex_gpu) + # ei_add_test(cxx11_tensor_complex_cwise_ops_gpu) + # + ei_add_test(cxx11_tensor_reduction_gpu) + ei_add_test(cxx11_tensor_argmax_gpu) + ei_add_test(cxx11_tensor_cast_float16_gpu) + ei_add_test(cxx11_tensor_scan_gpu) + ei_add_test(cxx11_tensor_device) + + ei_add_test(cxx11_tensor_gpu) + ei_add_test(cxx11_tensor_contract_gpu) + ei_add_test(cxx11_tensor_of_float16_gpu) + ei_add_test(cxx11_tensor_of_bfloat16_gpu) + ei_add_test(cxx11_tensor_random_gpu) + + unset(EIGEN_ADD_TEST_FILENAME_EXTENSION) + + elseif ((${HIP_PLATFORM} STREQUAL "nvcc") OR (${HIP_PLATFORM} STREQUAL "nvidia")) + message(FATAL_ERROR "HIP_PLATFORM = nvcc is not supported within Eigen") + else () + message(FATAL_ERROR "Unknown HIP_PLATFORM = ${HIP_PLATFORM}") + endif() + endif() endif()