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
This commit is contained in:
Markus Hess
2024-06-06 12:44:55 +00:00
parent 6a74af202d
commit 7f9cc571b0
+23 -2
View File
@@ -234,8 +234,29 @@ if (USE_CUDA)
"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()