From 81237523b7041eec8f36c18521227fde2b4d8939 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 16 Mar 2023 10:52:43 -0400 Subject: Tests: Teach CudaOnly.CUBIN to tolerate toolkit not supporting native arch Since commit 2def6a874b (CUDA: Add support for CUBIN, FATBIN, and OPTIXIR compilation, 2023-01-27) added this test, it has failed when executed with a CUDA toolkit that does not support the true native architecture of the GPU. Detect this case and skip the test. --- Tests/CudaOnly/CUBIN/CMakeLists.txt | 10 +++++++++- Tests/CudaOnly/CUBIN/main_no_native_archs.cu | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Tests/CudaOnly/CUBIN/main_no_native_archs.cu diff --git a/Tests/CudaOnly/CUBIN/CMakeLists.txt b/Tests/CudaOnly/CUBIN/CMakeLists.txt index 464714b..81787e4 100644 --- a/Tests/CudaOnly/CUBIN/CMakeLists.txt +++ b/Tests/CudaOnly/CUBIN/CMakeLists.txt @@ -1,9 +1,17 @@ cmake_minimum_required(VERSION 3.18) +unset(ENV{CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP}) # CUBIN needs true native arch project(CudaCUBIN LANGUAGES CUDA) - set(CMAKE_CUDA_ARCHITECTURES all-major) +# CUBIN needs the true native arch to be supported by the CUDA toolkit. +set(unavailable_native_archs "${CMAKE_CUDA_ARCHITECTURES_NATIVE}") +list(REMOVE_ITEM unavailable_native_archs ${CMAKE_CUDA_ARCHITECTURES_ALL}) +if(unavailable_native_archs) + add_executable(CudaOnlyCUBIN main_no_native_archs.cu) + return() +endif() + add_library(CudaCUBIN OBJECT kernelA.cu kernelB.cu kernelC.cu) set_property(TARGET CudaCUBIN PROPERTY CUDA_CUBIN_COMPILATION ON) set_property(TARGET CudaCUBIN PROPERTY CUDA_ARCHITECTURES native) diff --git a/Tests/CudaOnly/CUBIN/main_no_native_archs.cu b/Tests/CudaOnly/CUBIN/main_no_native_archs.cu new file mode 100644 index 0000000..f8b643a --- /dev/null +++ b/Tests/CudaOnly/CUBIN/main_no_native_archs.cu @@ -0,0 +1,4 @@ +int main() +{ + return 0; +} -- cgit v0.12