From 2dc9a754b539bb215ad2360a27327a629ad26627 Mon Sep 17 00:00:00 2001 From: Boris Fomitchev Date: Thu, 18 Aug 2016 12:00:42 -0700 Subject: [PATCH] FindCUDA: Support `2.1(2.0)` architecture notation Also tweak some messages and comments. --- Modules/FindCUDA/select_compute_arch.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/FindCUDA/select_compute_arch.cmake b/Modules/FindCUDA/select_compute_arch.cmake index d51683193..5ce71a910 100644 --- a/Modules/FindCUDA/select_compute_arch.cmake +++ b/Modules/FindCUDA/select_compute_arch.cmake @@ -102,7 +102,7 @@ function(CUDA_SELECT_NVCC_ARCH_FLAGS out_variable) set(CUDA_ARCH_LIST ${CUDA_COMMON_GPU_ARCHITECTURES}) elseif("${CUDA_ARCH_LIST}" STREQUAL "Auto") CUDA_DETECT_INSTALLED_GPUS(CUDA_ARCH_LIST) - message(STATUS "Autodetected CUDA architecture(s): ${cuda_arch_bin}") + message(STATUS "Autodetected CUDA architecture(s): ${CUDA_ARCH_LIST}") endif() # Now process the list and look for names @@ -116,7 +116,7 @@ function(CUDA_SELECT_NVCC_ARCH_FLAGS out_variable) set(add_ptx TRUE) set(arch_name ${CMAKE_MATCH_1}) endif() - if(arch_name MATCHES "([0-9]\\.[0-9])$") + if(arch_name MATCHES "^([0-9]\\.[0-9](\\([0-9]\\.[0-9]\\))?)$") set(arch_bin ${CMAKE_MATCH_1}) set(arch_ptx ${arch_bin}) else() @@ -173,11 +173,11 @@ function(CUDA_SELECT_NVCC_ARCH_FLAGS out_variable) # Tell NVCC to add binaries for the specified GPUs foreach(arch ${cuda_arch_bin}) if(arch MATCHES "([0-9]+)\\(([0-9]+)\\)") - # User explicitly specified PTX for the concrete BIN + # User explicitly specified ARCH for the concrete CODE list(APPEND nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1}) list(APPEND nvcc_archs_readable sm_${CMAKE_MATCH_1}) else() - # User didn't explicitly specify PTX for the concrete BIN, we assume PTX=BIN + # User didn't explicitly specify ARCH for the concrete CODE, we assume ARCH=CODE list(APPEND nvcc_flags -gencode arch=compute_${arch},code=sm_${arch}) list(APPEND nvcc_archs_readable sm_${arch}) endif()