Tests: Don't unnecessarily set CUDA_ARCHITECTURES

Architecture 30 was removed with CUDA 11, so most of the CUDA tests fail with
it.
Remove setting the architecture and bump the minimum version to 3.18, so
CMP0104 takes effect and we can rely on the default architecture, which is
guaranteed to be compilable.

Use of __ldg() in ProperLinkFlags was removed as it only affects performance
and is available only on sm_35 and above.

Testing the functionality of CUDA_ARCHITECTURES is already covered by
CudaOnly.Architecture and CudaOnly.CompileFlags.
This commit is contained in:
Raul Tambre
2020-09-20 17:11:33 +03:00
parent 39a5c0c82c
commit 4fe9f534f5
23 changed files with 30 additions and 61 deletions
@@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(CXXStandardSetTwice CXX CUDA)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(CXXStandardSetTwice main.cu)
target_compile_features(CXXStandardSetTwice PUBLIC cxx_std_11)
+2 -5
View File
@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 3.7)
project (Complex CXX CUDA)
cmake_minimum_required(VERSION 3.18)
project(Complex CXX CUDA)
#Goal for this example:
#build a cpp dynamic library base
@@ -14,8 +13,6 @@ project (Complex CXX CUDA)
#this tests that we can properly handle linking cuda and cpp together
#and also building cpp targets that need cuda implicit libraries
#verify that we can pass explicit cuda arch flags
set(CMAKE_CUDA_ARCHITECTURES 30)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CUDA_STANDARD_REQUIRED TRUE)
@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 3.7)
project (ConsumeCompileFeatures CXX CUDA)
cmake_minimum_required(VERSION 3.18)
project(ConsumeCompileFeatures CXX CUDA)
#Goal for this example:
#build a c++11 library that express a c++11 public compile feature
@@ -1,9 +1,8 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(MixedStandardLevels1 CXX CUDA)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(MixedStandardLevels1 main.cu lib.cpp)
@@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(MixedStandardLevels2 CXX CUDA)
set(CMAKE_CXX_STANDARD 17) #this can decay
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(MixedStandardLevels2 main.cu lib.cpp)
target_compile_features(MixedStandardLevels2 PUBLIC cuda_std_11)
@@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(MixedStandardLevels3 CXX CUDA)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(MixedStandardLevels3 main.cu lib.cpp)
target_compile_features(MixedStandardLevels3 PUBLIC cuda_std_03 cxx_std_14)
@@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(MixedStandardLevels4 CXX CUDA)
set(CMAKE_CUDA_STANDARD 03)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(MixedStandardLevels4 main.cu lib.cpp)
target_compile_features(MixedStandardLevels4 PUBLIC cxx_std_14)
@@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(MixedStandardLevels5 CXX CUDA)
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(MixedStandardLevels5 main.cu lib.cpp)
+1 -1
View File
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project (ObjectLibrary CUDA CXX)
#Goal for this example:
#
@@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 3.13)
cmake_minimum_required(VERSION 3.18)
project(ProperDeviceLibraries CXX CUDA)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 35)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads)
+2 -4
View File
@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 3.7)
project (ProperLinkFlags CUDA CXX)
cmake_minimum_required(VERSION 3.18)
project(ProperLinkFlags CUDA CXX)
#Goal for this example:
#Verify that when we have CXX and CUDA enabled and we link an executable that
@@ -19,7 +18,6 @@ set(CMAKE_CXX_FLAGS "-Wall")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 35)
add_executable(ProperLinkFlags file1.cu main.cxx)
set_target_properties( ProperLinkFlags
-1
View File
@@ -3,7 +3,6 @@
result_type __device__ file1_func(int x)
{
__ldg(&x);
result_type r;
r.input = x;
r.sum = x * x;
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.18)
project(SharedRuntimePlusToolkit CXX)
#Goal for this example:
+1 -3
View File
@@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(WithC CUDA C)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_executable(CudaWithC main.c cuda.cu)
if(APPLE)
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.7)
project (CircularLinkLine CUDA)
cmake_minimum_required(VERSION 3.18)
project(CircularLinkLine CUDA)
#Goal for this example:
# Verify that we de-duplicate the device link line
@@ -7,7 +7,6 @@ project (CircularLinkLine CUDA)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 30)
add_library(CUDACircularDeviceLinking1 STATIC file1.cu)
add_library(CUDACircularDeviceLinking2 STATIC file2.cu)
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.13)
project (DontResolveDeviceSymbols CUDA)
cmake_minimum_required(VERSION 3.18)
project(DontResolveDeviceSymbols CUDA)
# Find nm and dumpbin
if(CMAKE_NM)
@@ -26,7 +26,6 @@ endif()
# Verify that we can't use those device symbols from anything
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 30 50)
set(CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS OFF)
add_library(CUDANoDeviceResolve SHARED file1.cu)
+2 -4
View File
@@ -1,9 +1,7 @@
cmake_minimum_required(VERSION 3.7)
project (GPUDebugFlag CUDA)
cmake_minimum_required(VERSION 3.18)
project(GPUDebugFlag CUDA)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 30)
# Goal for this example:
# Verify that enabling device debug works.
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project (ResolveDeviceSymbols CUDA)
# Find nm and dumpbin
@@ -21,8 +21,6 @@ endif()
# confirming that the first static library is on the device link line
# 3. Verify that we can't use those device symbols from anything that links
# to the static library
set(CMAKE_CUDA_ARCHITECTURES 30 50)
add_library(CUDAResolveDeviceDepsA STATIC file1.cu)
add_library(CUDAResolveDeviceDepsB STATIC file2.cu)
target_compile_features(CUDAResolveDeviceDepsA PUBLIC cuda_std_11)
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project (RuntimeControls CUDA)
# Find nm and dumpbin
@@ -16,7 +16,6 @@ else()
endif()
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_ARCHITECTURES 30)
set(CMAKE_CUDA_RUNTIME_LIBRARY static)
if(NOT "x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 3.7)
project (SeparateCompilation CUDA)
cmake_minimum_required(VERSION 3.18)
project(SeparateCompilation CUDA)
#Goal for this example:
#Build a static library that defines multiple methods and kernels that
@@ -9,7 +8,6 @@ project (SeparateCompilation CUDA)
#and executables.
#We complicate the matter by also testing that multiple static libraries
#all containing cuda separable compilation code links properly
set(CMAKE_CUDA_ARCHITECTURES 30 35 50 52)
set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)
add_library(CUDASeparateLibA STATIC file1.cu file2.cu file3.cu)
target_compile_features(CUDASeparateLibA PRIVATE cuda_std_11)
+1 -3
View File
@@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.7)
cmake_minimum_required(VERSION 3.18)
project(CudaOnlyStandard98 CUDA)
set(CMAKE_CUDA_ARCHITECTURES 30)
# Support setting CUDA Standard to 98 which internally gets transformed to
# CUDA03
set(CMAKE_CUDA_STANDARD 98)
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.18)
project(StaticRuntimePlusToolkit CUDA)
#Goal for this example:
+2 -5
View File
@@ -1,9 +1,6 @@
cmake_minimum_required(VERSION 3.18)
project(WithDefs CUDA)
cmake_minimum_required(VERSION 3.7)
project (WithDefs CUDA)
#verify that we can pass explicit cuda arch flags
set(CMAKE_CUDA_ARCHITECTURES 30)
set(release_compile_defs DEFREL)
#Goal for this example: