diff --git a/CMakeLists.txt b/CMakeLists.txt index 91639493fb87f4256008d2af9011853dc6bc9278..8f62a3c9327dd5b06c3631930451d0cdbc54aaa2 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,13 @@ include(init) # TODO(Shibo Tao): remove find_package(CUDA) completely. find_package(CUDA QUIET) option(WITH_GPU "Compile PaddlePaddle with NVIDIA GPU" ${CUDA_FOUND}) + +# cmake 3.12, 3.13, 3.14 will append gcc link options to nvcc, and nvcc doesn't recognize them. +if(WITH_GPU AND (${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.12) AND (${CMAKE_VERSION} VERSION_LESS 3.15)) + message(FATAL_ERROR "cmake ${CMAKE_VERSION} is not supported when WITH_GPU=ON because of bug https://tinyurl.com/ydbb9m7n. " + "You can use cmake 3.16 (recommended), 3.10, 3.11, 3.15 or 3.17. Please refer to the install document: https://cmake.org/install/") +endif() + if(WITH_GPU AND NOT APPLE) enable_language(CUDA) message(STATUS "CUDA compiler: ${CMAKE_CUDA_COMPILER}, version: " diff --git a/cmake/cuda.cmake b/cmake/cuda.cmake index ac6dab86fd3eb6a980616f2929df5310e98b04e4..6dcdb0f853f609fe61f6bc28055f53e9071d9075 100644 --- a/cmake/cuda.cmake +++ b/cmake/cuda.cmake @@ -205,7 +205,7 @@ set(CUDA_PROPAGATE_HOST_FLAGS OFF) # So, don't set these flags here. if (NOT WIN32) # windows msvc2015 support c++11 natively. # -std=c++11 -fPIC not recoginize by msvc, -Xcompiler will be added by cmake. - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -std=c++11") + set(CMAKE_CUDA_STANDARD 11) endif(NOT WIN32) # in cuda9, suppress cuda warning on eigen