Set CMAKE_CUDA_ARCHITECTURES depending on CUDAToolkit_VERSION Compilation fails if the CUDA architecture is not supported by the installed version of the CUDA toolkit. This commit sets the CMAKE_CUDA_ARCHITECTURES depending on the the installed CUDA toolkit version. Change-Id: I4765512279ee56897388e6ea22b961aebeb0fbca
diff --git a/CMakeLists.txt b/CMakeLists.txt index aa27929..6cbc942 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -234,8 +234,29 @@ "find_dependency(CUDAToolkit ${CUDAToolkit_VERSION})") enable_language(CUDA) if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18") - # Support Maxwell, Pascal, Volta, Turing, and Ampere GPUs. - set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80") + # Support Maxwell GPUs (Default). + set(CMAKE_CUDA_ARCHITECTURES "50") + # Support other architectures depending on CUDA toolkit version. + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") + # Support Pascal GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "60") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + # Support Volta GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "70") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0") + # Support Turing GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "75") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.0") + # Support Ampere GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "80") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8") + # Support Hopper GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "90") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8") message("-- Setting CUDA Architecture to ${CMAKE_CUDA_ARCHITECTURES}") endif()