Skip to content

Commit b0f5b71

Browse files
authored
support cuda11. test=develop (#6545)
1 parent ba5c243 commit b0f5b71

File tree

1 file changed

+19
-27
lines changed

1 file changed

+19
-27
lines changed

cmake/cuda.cmake

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@ if(WITH_CUDA_FP16)
66
add_definitions("-DCUDA_WITH_FP16")
77
endif()
88

9-
set(paddle_known_gpu_archs "30 35 50 52 60 61 70")
10-
set(paddle_known_gpu_archs7 "30 35 50 52")
11-
set(paddle_known_gpu_archs8 "30 35 50 52 53 60 61 62")
12-
set(paddle_known_gpu_archs9 "30 35 50 52 53 60 61 62 70")
13-
set(paddle_known_gpu_archs10 "30 35 50 52 53 60 61 62 70 72 75")
9+
set(paddle_known_gpu_archs "35 50 52 60 61 70 75 80")
10+
set(paddle_known_gpu_archs10 "35 50 52 60 61 70 75")
11+
set(paddle_known_gpu_archs11 "52 60 61 70 75 80")
1412

1513
######################################################################################
1614
# A function for automatic detection of GPUs installed (if autodetection is enabled)
@@ -65,8 +63,8 @@ endfunction()
6563
# select_nvcc_arch_flags(out_variable)
6664
function(select_nvcc_arch_flags out_variable)
6765
# List of arch names
68-
set(archs_names "Kepler" "Maxwell" "Pascal" "Volta" "Turing" "All" "Manual")
69-
set(archs_name_default "All")
66+
set(archs_names "Kepler" "Maxwell" "Pascal" "Volta" "Turing" "Ampere" "All" "Manual")
67+
set(archs_name_default "Auto")
7068
list(APPEND archs_names "Auto")
7169

7270
# set CUDA_ARCH_NAME strings (so it will be seen as dropbox in CMake-Gui)
@@ -82,7 +80,7 @@ function(select_nvcc_arch_flags out_variable)
8280

8381
if(${CUDA_ARCH_NAME} STREQUAL "Manual")
8482
set(CUDA_ARCH_BIN ${paddle_known_gpu_archs} CACHE STRING "Specify 'real' GPU architectures to build binaries for, BIN(PTX) format is supported")
85-
set(CUDA_ARCH_PTX "50" CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for")
83+
set(CUDA_ARCH_PTX "" CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for")
8684
mark_as_advanced(CUDA_ARCH_BIN CUDA_ARCH_PTX)
8785
else()
8886
unset(CUDA_ARCH_BIN CACHE)
@@ -99,6 +97,8 @@ function(select_nvcc_arch_flags out_variable)
9997
set(cuda_arch_bin "70")
10098
elseif(${CUDA_ARCH_NAME} STREQUAL "Turing")
10199
set(cuda_arch_bin "75")
100+
elseif(${CUDA_ARCH_NAME} STREQUAL "Ampere")
101+
set(cuda_arch_bin "80")
102102
elseif(${CUDA_ARCH_NAME} STREQUAL "All")
103103
set(cuda_arch_bin ${paddle_known_gpu_archs})
104104
elseif(${CUDA_ARCH_NAME} STREQUAL "Auto")
@@ -143,32 +143,24 @@ function(select_nvcc_arch_flags out_variable)
143143
endfunction()
144144

145145
message(STATUS "CUDA detected: " ${CUDA_VERSION})
146-
if (${CUDA_VERSION} LESS 7.0)
147-
set(paddle_known_gpu_archs ${paddle_known_gpu_archs})
148-
add_definitions("-DPADDLE_CUDA_BINVER=\"60\"")
149-
elseif (${CUDA_VERSION} LESS 8.0) # CUDA 7.x
150-
set(paddle_known_gpu_archs ${paddle_known_gpu_archs7})
151-
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
152-
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
153-
add_definitions("-DPADDLE_CUDA_BINVER=\"70\"")
154-
elseif (${CUDA_VERSION} LESS 9.0) # CUDA 8.x
155-
set(paddle_known_gpu_archs ${paddle_known_gpu_archs8})
146+
if (${CUDA_VERSION} LESS 11.0) # CUDA 10.x
147+
set(paddle_known_gpu_archs ${paddle_known_gpu_archs10})
156148
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
157149
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
158-
# CUDA 8 may complain that sm_20 is no longer supported. Suppress the
159-
# warning for now.
160150
list(APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets")
161-
add_definitions("-DPADDLE_CUDA_BINVER=\"80\"")
162-
elseif (${CUDA_VERSION} LESS 10.0) # CUDA 9.x
163-
set(paddle_known_gpu_archs ${paddle_known_gpu_archs9})
151+
add_definitions("-DPADDLE_CUDA_BINVER=\"100\"")
152+
elseif (${CUDA_VERSION} LESS 11.2) # CUDA 11.0/11.1
153+
set(paddle_known_gpu_archs ${paddle_known_gpu_archs11})
164154
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
165155
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
166-
add_definitions("-DPADDLE_CUDA_BINVER=\"90\"")
167-
elseif (${CUDA_VERSION} LESS 11.0) # CUDA 10.x
168-
set(paddle_known_gpu_archs ${paddle_known_gpu_archs10})
156+
list(APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets")
157+
add_definitions("-DPADDLE_CUDA_BINVER=\"110\"")
158+
elseif (${CUDA_VERSION} LESS 12.0) # CUDA 11.2+
159+
set(paddle_known_gpu_archs "${paddle_known_gpu_archs11} 86")
169160
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
170161
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
171-
add_definitions("-DPADDLE_CUDA_BINVER=\"100\"")
162+
list(APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets")
163+
add_definitions("-DPADDLE_CUDA_BINVER=\"110\"")
172164
endif()
173165

174166
if (CUDA_WITH_FP16)

0 commit comments

Comments
 (0)