mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-15 03:48:02 +08:00
ci: Tell CudaOnly.Architecture test what specific architecture to use
CUDA 12.8 deprecates architectures below 75. Presumably a future version will remove it. Prepare infrastructure to avoid relying on hard-coded arch 52 in this test.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
set(CMake_TEST_CUDA "Clang" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_CUPTI "ON" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,4 +1,5 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_CUPTI "ON" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
set(CMake_TEST_CUDA "Clang" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,4 +1,5 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_CUPTI "ON" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,4 +1,5 @@
|
||||
set(CMake_TEST_CUDA "Clang" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_STANDARDS "03;11;14;17;20;23" CACHE STRING "")
|
||||
set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
|
||||
set(CMake_TEST_FindOpenMP_CUDA "ON" CACHE BOOL "")
|
||||
|
@@ -1,4 +1,5 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_CUPTI "ON" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_STANDARDS "03;11;14;17;20" CACHE STRING "")
|
||||
set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "30" CACHE STRING "")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
|
||||
|
@@ -1,4 +1,5 @@
|
||||
set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_ARCH "52" CACHE STRING "")
|
||||
set(CMake_TEST_CUDA_CUPTI "ON" CACHE STRING "")
|
||||
|
||||
set(configure_no_sccache 1)
|
||||
|
@@ -1,14 +1,21 @@
|
||||
cmake_minimum_required(VERSION 3.18)
|
||||
project(Architecture CUDA)
|
||||
|
||||
if(CMake_TEST_CUDA_ARCH)
|
||||
set(arch ${CMake_TEST_CUDA_ARCH})
|
||||
else()
|
||||
set(arch 52)
|
||||
endif()
|
||||
add_compile_definitions(EXPECT_CUDA_ARCH=${arch})
|
||||
|
||||
add_executable(Architecture main.cu)
|
||||
set_property(TARGET Architecture PROPERTY CUDA_ARCHITECTURES 52)
|
||||
set_property(TARGET Architecture PROPERTY CUDA_ARCHITECTURES ${arch})
|
||||
|
||||
# Make sure CMake doesn't pass architectures if CUDA_ARCHITECTURES is OFF.
|
||||
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
||||
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -arch=sm_52")
|
||||
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -arch=sm_${arch}")
|
||||
elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
|
||||
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --cuda-gpu-arch=sm_52")
|
||||
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --cuda-gpu-arch=sm_${arch}")
|
||||
endif()
|
||||
|
||||
add_executable(ArchitectureOff main.cu)
|
||||
|
@@ -1,9 +1,13 @@
|
||||
#ifndef EXPECT_CUDA_ARCH
|
||||
# error "EXPECT_CUDA_ARCH not defined!"
|
||||
#endif
|
||||
#ifdef __CUDA_ARCH__
|
||||
# if __CUDA_ARCH__ != 520
|
||||
# error "Passed architecture 52, but got something else."
|
||||
# if __CUDA_ARCH__ != (EXPECT_CUDA_ARCH * 10)
|
||||
# error "__CUDA_ARCH__ does not match CUDA_ARCHITECTURES"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ macro (add_cuda_test_macro name)
|
||||
PROPERTY LABELS "CUDA")
|
||||
endmacro ()
|
||||
|
||||
set(CudaOnly.Architecture_BUILD_OPTIONS -DCMake_TEST_CUDA_ARCH=${CMake_TEST_CUDA_ARCH})
|
||||
add_cuda_test_macro(CudaOnly.Architecture Architecture)
|
||||
add_cuda_test_macro(CudaOnly.ArchSpecial CudaOnlyArchSpecial)
|
||||
add_cuda_test_macro(CudaOnly.CompileFlags CudaOnlyCompileFlags)
|
||||
|
Reference in New Issue
Block a user