mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 23:00:07 -06:00
Merge topic 'FindCUDAToolkit-cupti' into release-3.28
04959e0285Tests: Verify CUDA::cupti existence on a subset of machines09a3c8b46bCUDAToolkit: Correctly search all include paths from compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9072
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
set(CMake_TEST_CUDA "Clang" 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_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_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_CUPTI "ON" CACHE STRING "")
|
||||
|
||||
set(configure_no_sccache 1)
|
||||
|
||||
|
||||
@@ -960,7 +960,7 @@ endif()
|
||||
# the version of the CUDA toolchain
|
||||
# Create a separate variable so this directory can be selectively added to math targets.
|
||||
find_path(CUDAToolkit_CUBLAS_INCLUDE_DIR cublas_v2.h PATHS
|
||||
"${CUDAToolkit_INCLUDE_DIRECTORIES}"
|
||||
${CUDAToolkit_INCLUDE_DIRECTORIES}
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
if(NOT CUDAToolkit_CUBLAS_INCLUDE_DIR)
|
||||
@@ -973,7 +973,7 @@ if(NOT CUDAToolkit_CUBLAS_INCLUDE_DIR)
|
||||
cmake_path(NORMAL_PATH CUDAToolkit_MATH_INCLUDE_DIR)
|
||||
|
||||
find_path(CUDAToolkit_CUBLAS_INCLUDE_DIR cublas_v2.h PATHS
|
||||
"${CUDAToolkit_INCLUDE_DIRECTORIES}"
|
||||
${CUDAToolkit_INCLUDE_DIRECTORIES}
|
||||
)
|
||||
if(CUDAToolkit_CUBLAS_INCLUDE_DIR)
|
||||
list(APPEND CUDAToolkit_INCLUDE_DIRECTORIES "${CUDAToolkit_CUBLAS_INCLUDE_DIR}")
|
||||
@@ -1246,7 +1246,7 @@ if(CUDAToolkit_FOUND)
|
||||
|
||||
find_path(CUDAToolkit_CUPTI_INCLUDE_DIR cupti.h PATHS
|
||||
"${CUDAToolkit_ROOT_DIR}/extras/CUPTI/include"
|
||||
"${CUDAToolkit_INCLUDE_DIRS}"
|
||||
${CUDAToolkit_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES "../extras/CUPTI/include"
|
||||
"../../../extras/CUPTI/include"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
@@ -14,6 +14,7 @@ add_cuda_test_macro(Cuda.MixedStandardLevels5 MixedStandardLevels5)
|
||||
add_cuda_test_macro(Cuda.NotEnabled CudaNotEnabled)
|
||||
add_cuda_test_macro(Cuda.SeparableCompCXXOnly SeparableCompCXXOnly)
|
||||
add_cuda_test_macro(Cuda.StubRPATH StubRPATH)
|
||||
set(Cuda.Toolkit_BUILD_OPTIONS -DHAS_CUPTI:BOOL=${CMake_TEST_CUDA_CUPTI})
|
||||
add_cuda_test_macro(Cuda.Toolkit Toolkit)
|
||||
add_cuda_test_macro(Cuda.IncludePathNoToolkit IncludePathNoToolkit)
|
||||
add_cuda_test_macro(Cuda.SharedRuntimePlusToolkit SharedRuntimePlusToolkit)
|
||||
|
||||
@@ -79,6 +79,23 @@ endforeach()
|
||||
add_executable(Toolkit main.cpp)
|
||||
target_link_libraries(Toolkit PRIVATE CUDA::toolkit)
|
||||
|
||||
if(HAS_CUPTI)
|
||||
set(cupti_libs )
|
||||
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.2)
|
||||
list(APPEND cupti_libs cupti nvperf_target)
|
||||
endif()
|
||||
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 11.3)
|
||||
list(APPEND cupti_libs pcsamplingutil)
|
||||
endif()
|
||||
foreach (cuda_lib IN LISTS cupti_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 "expected CUDAToolkit target CUDA::${cuda_lib} not found")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
# cupti is an optional component of the CUDA toolkit
|
||||
if(TARGET CUDA::cupti)
|
||||
add_executable(cupti cupti.cpp)
|
||||
|
||||
@@ -12,6 +12,7 @@ add_cuda_test_macro(CudaOnly.ExportPTX CudaOnlyExportPTX)
|
||||
add_cuda_test_macro(CudaOnly.SharedRuntimePlusToolkit CudaOnlySharedRuntimePlusToolkit)
|
||||
add_cuda_test_macro(CudaOnly.StaticRuntimePlusToolkit CudaOnlyStaticRuntimePlusToolkit)
|
||||
add_cuda_test_macro(CudaOnly.Standard98 CudaOnlyStandard98)
|
||||
set(CudaOnly.Toolkit_BUILD_OPTIONS -DHAS_CUPTI:BOOL=${CMake_TEST_CUDA_CUPTI})
|
||||
add_cuda_test_macro(CudaOnly.Toolkit CudaOnlyToolkit)
|
||||
add_cuda_test_macro(CudaOnly.ToolkitBeforeLang CudaOnlyToolkitBeforeLang)
|
||||
add_cuda_test_macro(CudaOnly.ToolkitMultipleDirs CudaOnlyToolkitMultipleDirs)
|
||||
|
||||
@@ -41,7 +41,6 @@ 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 IN LISTS cuda_libs)
|
||||
if(NOT CUDA_${cuda_lib}_LIBRARY)
|
||||
@@ -81,5 +80,24 @@ foreach (cuda_lib nvrtc nvToolsExt OpenCL)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(HAS_CUPTI)
|
||||
set(cupti_libs )
|
||||
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.2)
|
||||
list(APPEND cupti_libs cupti nvperf_target)
|
||||
endif()
|
||||
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 11.3)
|
||||
list(APPEND cupti_libs pcsamplingutil)
|
||||
endif()
|
||||
|
||||
foreach (cuda_lib IN LISTS cupti_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 "expected CUDAToolkit target CUDA::${cuda_lib} not found")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
add_executable(CudaOnlyToolkit main.cu)
|
||||
target_link_libraries(CudaOnlyToolkit PRIVATE CUDA::toolkit)
|
||||
|
||||
Reference in New Issue
Block a user