From 578d1c0fba16413b5eea2c59d5cd6c44597490a6 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Mon, 20 May 2019 15:17:14 +0200 Subject: [PATCH] [cmake+cuda] improve friendliness of architecture selection --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 319d9fe9388..e41a5f77632 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,20 +38,22 @@ set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support") set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") set(ENABLE_CUDNN_HALF "FALSE" CACHE BOOL "Enable CUDNN Half precision") -if(${CMAKE_VERSION} VERSION_LESS "3.8.0") +if(${CMAKE_VERSION} VERSION_LESS "3.9.0") set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support" FORCE) - message(WARNING "To build with CUDA support you need CMake 3.8.0+") + message(WARNING "To build with CUDA support you need CMake 3.9.0+") else() include(CheckLanguage) check_language(CUDA) if(CMAKE_CUDA_COMPILER) + set(CUDA_ARCHITECTURES "Auto" CACHE STRING "\"Auto\" detects local machine GPU compute arch at runtime, \"Common\" and \"All\" cover common and entire subsets of architectures, \"Names\" is a list of architectures to enable by name, \"Numbers\" is a list of compute capabilities (version number) to enable") + set_property(CACHE CUDA_ARCHITECTURES PROPERTY STRINGS "Auto" "Common" "All" "Kepler Maxwell Kepler+Tegra Maxwell+Tegra Pascal" "3.0 7.5") enable_language(CUDA) find_package(CUDA REQUIRED) if(CUDA_VERSION VERSION_LESS "9.0") message(STATUS "Unsupported CUDA version, please upgrade to CUDA 9+. Disabling CUDA support") else() set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA support" FORCE) - cuda_select_nvcc_arch_flags(CUDA_ARCH_FLAGS "Auto") + cuda_select_nvcc_arch_flags(CUDA_ARCH_FLAGS ${CUDA_ARCHITECTURES}) message(STATUS "Building with CUDA flags: " "${CUDA_ARCH_FLAGS}") if ("arch=compute_75,code=sm_75" IN_LIST CUDA_ARCH_FLAGS) set(ENABLE_CUDNN_HALF "TRUE" CACHE BOOL "Enable CUDNN Half precision" FORCE)