Merge branch release-2018
[alexxy/gromacs.git] / cmake / gmxManageGPU.cmake
index 2a7dee35b0754867e921b7d08ca00da7bca354f1..5a315c40fe46cd23f6a046b9c1bc63df7a49add9 100644 (file)
@@ -45,10 +45,6 @@ endif()
 option(GMX_GPU "Enable GPU acceleration" OFF)
 
 option(GMX_CLANG_CUDA "Use clang for CUDA" OFF)
-if (GMX_CLANG_CUDA)
-    # CUDA 7.0 or later required, override req. version
-    set(REQUIRED_CUDA_VERSION 7.0)
-endif()
 
 if(GMX_GPU AND GMX_DOUBLE)
     message(FATAL_ERROR "GPU acceleration is not available in double precision!")
@@ -273,34 +269,7 @@ macro(gmx_gpu_setup)
         endif()
     endif() # GMX_GPU
 
-    if (GMX_CLANG_CUDA)
-        set (_GMX_CUDA_NB_SINGLE_COMPILATION_UNIT_DEFAULT FALSE)
-    else()
-        set (_GMX_CUDA_NB_SINGLE_COMPILATION_UNIT_DEFAULT TRUE)
-    endif()
-    cmake_dependent_option(GMX_CUDA_NB_SINGLE_COMPILATION_UNIT
-        "Whether to compile the CUDA non-bonded module using a single compilation unit." ${_GMX_CUDA_NB_SINGLE_COMPILATION_UNIT_DEFAULT}
-        "GMX_GPU" ON)
+    option(GMX_CUDA_NB_SINGLE_COMPILATION_UNIT "Whether to compile the CUDA non-bonded module using a single compilation unit." OFF)
     mark_as_advanced(GMX_CUDA_NB_SINGLE_COMPILATION_UNIT)
 
-    if (GMX_GPU AND NOT GMX_CLANG_CUDA)
-        # We need to use single compilation unit for kernels:
-        # when compiling with nvcc for CC 2.x devices where buggy kernel code is generated
-        gmx_check_if_changed(_gmx_cuda_target_changed GMX_CUDA_TARGET_SM GMX_CUDA_TARGET_COMPUTE CUDA_NVCC_FLAGS)
-
-        if(_gmx_cuda_target_changed OR NOT GMX_GPU_DETECTION_DONE)
-            # CUDA 9.0 does not support CC 2.0; if arch targets are
-            # generated from a manually provided list, we check for 2x
-            # targets to see if single compilation unit needs to be on.
-            if((CUDA_VERSION VERSION_LESS "9.0") AND
-               ((NOT GMX_CUDA_TARGET_SM AND NOT GMX_CUDA_TARGET_COMPUTE) OR
-                (GMX_CUDA_TARGET_SM MATCHES "2[01]" OR GMX_CUDA_TARGET_COMPUTE MATCHES "2[01]")))
-                message(STATUS "Enabling single compilation unit for the CUDA non-bonded module. Multiple compilation units are not compatible with CC 2.x devices, to enable the feature specify only CC >=3.0 target architectures in GMX_CUDA_TARGET_SM/GMX_CUDA_TARGET_COMPUTE.")
-                set_property(CACHE GMX_CUDA_NB_SINGLE_COMPILATION_UNIT PROPERTY VALUE ON)
-            else()
-                message(STATUS "Enabling multiple compilation units for the CUDA non-bonded module.")
-                set_property(CACHE GMX_CUDA_NB_SINGLE_COMPILATION_UNIT PROPERTY VALUE OFF)
-            endif()
-        endif()
-    endif()
 endmacro()