From b284a3c76484c2ffba087bff2d307e58fdabebac Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Thu, 18 Jun 2020 08:48:59 -0400 Subject: CudaToolkit: Update for new/removed libraries in CUDA 11 --- Modules/FindCUDAToolkit.cmake | 6 +++++- Tests/Cuda/Toolkit/CMakeLists.txt | 22 ++++++++++++++++++---- Tests/CudaOnly/Toolkit/CMakeLists.txt | 17 +++++++++++++++-- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake index 00d1a50..47bc546 100644 --- a/Modules/FindCUDAToolkit.cmake +++ b/Modules/FindCUDAToolkit.cmake @@ -154,6 +154,8 @@ Targets Created: - ``CUDA::cublas`` - ``CUDA::cublas_static`` +- ``CUDA::cublasLt`` starting in CUDA 10.1 +- ``CUDA::cublasLt_static`` starting in CUDA 10.1 .. _`cuda_toolkit_cuFFT`: @@ -240,6 +242,7 @@ Targets Created: - ``CUDA::nppicc_static`` - `nppicom`: JPEG compression and decompression functions in `nppi_compression_functions.h` + Removed starting in CUDA 11.0, use :ref:`nvJPEG` instead. - ``CUDA::nppicom`` - ``CUDA::nppicom_static`` @@ -302,6 +305,7 @@ nvGRAPH """"""" The `nvGRAPH `_ library. +Removed starting in CUDA 11.0 Targets Created: @@ -821,7 +825,7 @@ if(CUDAToolkit_FOUND) endif() _CUDAToolkit_find_and_add_import_lib(culibos) # it's a static library - foreach (cuda_lib cublas cufft curand cusparse nppc nvjpeg) + foreach (cuda_lib cublasLt cublas cufft curand cusparse nppc nvjpeg) _CUDAToolkit_find_and_add_import_lib(${cuda_lib}) _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS culibos) endforeach() diff --git a/Tests/Cuda/Toolkit/CMakeLists.txt b/Tests/Cuda/Toolkit/CMakeLists.txt index 86b4652..00125e3 100644 --- a/Tests/Cuda/Toolkit/CMakeLists.txt +++ b/Tests/Cuda/Toolkit/CMakeLists.txt @@ -14,15 +14,29 @@ message(STATUS "CUDAToolkit_INCLUDE_DIRS: ${CUDAToolkit_INCLUDE_DIRS}") message(STATUS "CUDAToolkit_LIBRARY_DIR: ${CUDAToolkit_LIBRARY_DIR}") message(STATUS "CUDAToolkit_NVCC_EXECUTABLE ${CUDAToolkit_NVCC_EXECUTABLE}") -# Verify that all the CUDA:: targets exist even when the CUDA language isn't enabled +set(cuda_libs cudart cuda_driver cublas cufft cufftw curand cusolver cusparse) +if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.1) + list(APPEND cuda_libs cublasLt) +endif() +if(CUDAToolkit_VERSION_MAJOR VERSION_LESS 11) + list(APPEND cuda_libs nvgraph) +endif() -foreach (cuda_lib cudart cuda_driver cublas cufft cufftw curand cusolver cusparse nvgraph) +# Verify that all the CUDA:: targets exist even when the CUDA language isn't enabled +foreach (cuda_lib IN LISTS cuda_libs) + if(NOT CUDA_${cuda_lib}_LIBRARY) + message(FATAL_ERROR "expected CUDAToolkit variable CUDA_${cuda_lib}_LIBRARY not found") + endif() if(NOT TARGET CUDA::${cuda_lib}) - message(FATAL_ERROR "The CUDA::${cuda_lib} target was expected but couldn't be found") + message(FATAL_ERROR "expected CUDAToolkit target CUDA::${cuda_lib} not found") endif() endforeach() -foreach (cuda_lib nppc nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppicom nppisu) +set(npp_libs nppc nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppisu) +if(CUDAToolkit_VERSION_MAJOR VERSION_LESS 11) + list(APPEND npp_libs nppicom) +endif() +foreach (cuda_lib IN LISTS npp_libs) if(NOT TARGET CUDA::${cuda_lib}) message(FATAL_ERROR "The CUDA::${cuda_lib} target was expected but couldn't be found") endif() diff --git a/Tests/CudaOnly/Toolkit/CMakeLists.txt b/Tests/CudaOnly/Toolkit/CMakeLists.txt index 0d5d574..bb06ba8 100644 --- a/Tests/CudaOnly/Toolkit/CMakeLists.txt +++ b/Tests/CudaOnly/Toolkit/CMakeLists.txt @@ -11,8 +11,17 @@ message(STATUS "CUDAToolkit_INCLUDE_DIRS: ${CUDAToolkit_INCLUDE_DIRS}") message(STATUS "CUDAToolkit_LIBRARY_DIR: ${CUDAToolkit_LIBRARY_DIR}") message(STATUS "CUDAToolkit_NVCC_EXECUTABLE ${CUDAToolkit_NVCC_EXECUTABLE}") + +set(cuda_libs cudart cuda_driver cublas cufft cufftw curand cusolver cusparse) +if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.1) + list(APPEND cuda_libs cublasLt) +endif() +if(CUDAToolkit_VERSION_MAJOR VERSION_LESS 11) + list(APPEND cuda_libs nvgraph) +endif() + # Verify that all the CUDA:: targets and variables exist -foreach (cuda_lib cudart cuda_driver cublas cufft cufftw curand cusolver cusparse nvgraph) +foreach (cuda_lib IN LISTS cuda_libs) if(NOT CUDA_${cuda_lib}_LIBRARY) message(FATAL_ERROR "expected CUDAToolkit variable CUDA_${cuda_lib}_LIBRARY not found") endif() @@ -21,7 +30,11 @@ foreach (cuda_lib cudart cuda_driver cublas cufft cufftw curand cusolver cuspars endif() endforeach() -foreach (cuda_lib nppc nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppicom nppisu) +set(npp_libs nppc nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppisu) +if(CUDAToolkit_VERSION_MAJOR VERSION_LESS 11) + list(APPEND npp_libs nppicom) +endif() +foreach (cuda_lib ) if(NOT CUDA_${cuda_lib}_LIBRARY) message(FATAL_ERROR "expected CUDAToolkit variable CUDA_${cuda_lib}_LIBRARY not found") endif() -- cgit v0.12