mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Use FindCUDAToolkit to find cuda dependencies (#82695)
Pull Request resolved: https://github.com/pytorch/pytorch/pull/82695 Approved by: https://github.com/malfet
This commit is contained in:
committed by
PyTorch MergeBot
parent
7901f2d156
commit
c5f6092591
@ -1136,6 +1136,10 @@ if(BUILD_SHARED_LIBS)
|
||||
${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix
|
||||
DESTINATION share/cmake/Caffe2/
|
||||
COMPONENT dev)
|
||||
install(FILES
|
||||
${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake
|
||||
DESTINATION share/cmake/Caffe2/
|
||||
COMPONENT dev)
|
||||
|
||||
install(EXPORT Caffe2Targets DESTINATION share/cmake/Caffe2
|
||||
FILE Caffe2Targets.cmake
|
||||
|
@ -439,25 +439,26 @@ if(USE_CUDA AND NOT USE_ROCM)
|
||||
if($ENV{ATEN_STATIC_CUDA})
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
${CUDA_LIBRARIES}
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcusparse_static.a
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcurand_static.a
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcufft_static_nocallback.a
|
||||
)
|
||||
CUDA::cusparse_static
|
||||
CUDA::curand_static
|
||||
CUDA::cufft_static_nocallback
|
||||
)
|
||||
if(NOT BUILD_LAZY_CUDA_LINALG)
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcusolver_static.a
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/liblapack_static.a # needed for libcusolver_static
|
||||
)
|
||||
CUDA::cusolver_static
|
||||
${CUDAToolkit_LIBRARY_DIR}/liblapack_static.a # needed for libcusolver_static
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
${CUDA_LIBRARIES}
|
||||
${CUDA_cusparse_LIBRARY}
|
||||
${CUDA_curand_LIBRARY}
|
||||
)
|
||||
CUDA::cusparse
|
||||
CUDA::curand
|
||||
CUDA::cufft
|
||||
)
|
||||
if(NOT BUILD_LAZY_CUDA_LINALG)
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
${CUDA_cusolver_LIBRARY}
|
||||
CUDA::cusolver
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
@ -466,8 +467,10 @@ if(USE_CUDA AND NOT USE_ROCM)
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS ${CUDNN_LIBRARIES})
|
||||
endif()
|
||||
if($ENV{ATEN_STATIC_CUDA})
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS "${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a")
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS "${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcudart_static.a")
|
||||
list(APPEND ATen_CUDA_DEPENDENCY_LIBS
|
||||
CUDA::culibos
|
||||
CUDA::cudart_static
|
||||
)
|
||||
endif($ENV{ATEN_STATIC_CUDA})
|
||||
endif()
|
||||
|
||||
|
@ -100,6 +100,7 @@ if(INTERN_BUILD_ATEN_OPS)
|
||||
list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS ${ATen_CUDA_DEPENDENCY_LIBS})
|
||||
list(APPEND Caffe2_HIP_DEPENDENCY_LIBS ${ATen_HIP_DEPENDENCY_LIBS})
|
||||
list(APPEND Caffe2_DEPENDENCY_INCLUDE ${ATen_THIRD_PARTY_INCLUDE})
|
||||
set(Caffe2_CUDA_DEPENDENCY_LIBS ${Caffe2_CUDA_DEPENDENCY_LIBS} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# ---[ Caffe2 build
|
||||
@ -951,18 +952,18 @@ elseif(USE_CUDA)
|
||||
)
|
||||
if($ENV{ATEN_STATIC_CUDA})
|
||||
target_link_libraries(torch_cuda_linalg PRIVATE
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcusolver_static.a
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib64/liblapack_static.a # needed for libcusolver_static
|
||||
CUDA::cusolver_static
|
||||
${CUDAToolkit_LIBRARY_DIR}/liblapack_static.a # needed for libcusolver_static
|
||||
)
|
||||
else()
|
||||
target_link_libraries(torch_cuda_linalg PRIVATE
|
||||
${CUDA_cusolver_LIBRARY}
|
||||
CUDA::cusolver
|
||||
)
|
||||
endif()
|
||||
# NS: TODO, is this really necessary?
|
||||
if(USE_MAGMA AND CAFFE2_STATIC_LINK_CUDA)
|
||||
target_link_libraries(torch_cuda_linalg PRIVATE
|
||||
"${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a" dl)
|
||||
CUDA::culibos ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/../aten/src/ATen/native/cuda/LinearAlgebraStubs.cpp PROPERTIES COMPILE_FLAGS "-DBUILD_LAZY_CUDA_LINALG")
|
||||
install(TARGETS torch_cuda_linalg DESTINATION "${TORCH_INSTALL_LIB_DIR}")
|
||||
|
@ -85,7 +85,13 @@ if(@USE_CUDA@)
|
||||
# be found again when including the Caffe2 target.
|
||||
set(CAFFE2_USE_CUDA @USE_CUDA@)
|
||||
set(CAFFE2_USE_TENSORRT @USE_TENSORRT@)
|
||||
|
||||
# Add current directory to module path so we pick up FindCUDAToolkit.cmake
|
||||
set(old_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/public/cuda.cmake")
|
||||
set(CMAKE_MODULE_PATH "${old_CMAKE_MODULE_PATH}")
|
||||
|
||||
if(@CAFFE2_USE_CUDA@ AND NOT CAFFE2_USE_CUDA)
|
||||
message(FATAL_ERROR
|
||||
"Your installed Caffe2 version uses CUDA but I cannot find the CUDA "
|
||||
|
@ -1396,8 +1396,7 @@ if(USE_GLOO)
|
||||
# https://github.com/facebookincubator/gloo/blob/950c0e23819779a9e0c70b861db4c52b31d1d1b2/cmake/Dependencies.cmake#L123
|
||||
set(NCCL_EXTERNAL ON)
|
||||
endif()
|
||||
# gloo uses cuda_add_library
|
||||
torch_update_find_cuda_flags()
|
||||
set(GLOO_USE_CUDA_TOOLKIT ON CACHE BOOL "" FORCE)
|
||||
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/gloo)
|
||||
else()
|
||||
add_library(gloo SHARED IMPORTED)
|
||||
|
1073
cmake/Modules/FindCUDAToolkit.cmake
Normal file
1073
cmake/Modules/FindCUDAToolkit.cmake
Normal file
File diff suppressed because it is too large
Load Diff
@ -84,22 +84,17 @@ function(caffe2_print_configuration_summary)
|
||||
message(STATUS " cuDNN version : ${CUDNN_VERSION}")
|
||||
endif()
|
||||
message(STATUS " CUDA root directory : ${CUDA_TOOLKIT_ROOT_DIR}")
|
||||
get_target_property(__tmp caffe2::cuda IMPORTED_LOCATION)
|
||||
message(STATUS " CUDA library : ${__tmp}")
|
||||
get_target_property(__tmp torch::cudart INTERFACE_LINK_LIBRARIES)
|
||||
message(STATUS " cudart library : ${__tmp}")
|
||||
get_target_property(__tmp caffe2::cublas INTERFACE_LINK_LIBRARIES)
|
||||
message(STATUS " cublas library : ${__tmp}")
|
||||
get_target_property(__tmp caffe2::cufft INTERFACE_LINK_LIBRARIES)
|
||||
message(STATUS " cufft library : ${__tmp}")
|
||||
get_target_property(__tmp caffe2::curand IMPORTED_LOCATION)
|
||||
message(STATUS " curand library : ${__tmp}")
|
||||
message(STATUS " CUDA library : ${CUDA_cuda_driver_LIBRARY}")
|
||||
message(STATUS " cudart library : ${CUDA_cudart_LIBRARY}")
|
||||
message(STATUS " cublas library : ${CUDA_cublas_LIBRARY}")
|
||||
message(STATUS " cufft library : ${CUDA_cufft_LIBRARY}")
|
||||
message(STATUS " curand library : ${CUDA_curand_LIBRARY}")
|
||||
message(STATUS " cusparse library : ${CUDA_cusparse_LIBRARY}")
|
||||
if(${USE_CUDNN})
|
||||
get_target_property(__tmp torch::cudnn INTERFACE_LINK_LIBRARIES)
|
||||
message(STATUS " cuDNN library : ${__tmp}")
|
||||
endif()
|
||||
get_target_property(__tmp caffe2::nvrtc IMPORTED_LOCATION)
|
||||
message(STATUS " nvrtc : ${__tmp}")
|
||||
message(STATUS " nvrtc : ${CUDA_nvrtc_LIBRARY}")
|
||||
message(STATUS " CUDA include path : ${CUDA_INCLUDE_DIRS}")
|
||||
message(STATUS " NVCC executable : ${CUDA_NVCC_EXECUTABLE}")
|
||||
message(STATUS " CUDA compiler : ${CMAKE_CUDA_COMPILER}")
|
||||
@ -192,6 +187,8 @@ function(caffe2_print_configuration_summary)
|
||||
endif()
|
||||
message(STATUS " Public Dependencies : ${Caffe2_PUBLIC_DEPENDENCY_LIBS}")
|
||||
message(STATUS " Private Dependencies : ${Caffe2_DEPENDENCY_LIBS}")
|
||||
message(STATUS " Public CUDA Deps. : ${Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS}")
|
||||
message(STATUS " Private CUDA Deps. : ${Caffe2_CUDA_DEPENDENCY_LIBS}")
|
||||
# coreml
|
||||
message(STATUS " USE_COREML_DELEGATE : ${USE_COREML_DELEGATE}")
|
||||
message(STATUS " BUILD_LAZY_TS_BACKEND : ${BUILD_LAZY_TS_BACKEND}")
|
||||
|
@ -39,8 +39,8 @@ endif()
|
||||
# Enable CUDA language support
|
||||
set(CUDAToolkit_ROOT "${CUDA_TOOLKIT_ROOT_DIR}")
|
||||
# Pass clang as host compiler, which according to the docs
|
||||
# Must be done before CUDA language is enabled, see mast be done before
|
||||
# see https://cmake.org/cmake/help/v3.15/variable/CMAKE_CUDA_HOST_COMPILER.html
|
||||
# Must be done before CUDA language is enabled, see
|
||||
# https://cmake.org/cmake/help/v3.15/variable/CMAKE_CUDA_HOST_COMPILER.html
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
set(CMAKE_CUDA_HOST_COMPILER "${CMAKE_C_COMPILER}")
|
||||
endif()
|
||||
@ -48,6 +48,27 @@ enable_language(CUDA)
|
||||
set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD})
|
||||
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
|
||||
|
||||
# CMP0074 - find_package will respect <PackageName>_ROOT variables
|
||||
cmake_policy(PUSH)
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12.0)
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
endif()
|
||||
|
||||
find_package(CUDAToolkit REQUIRED)
|
||||
|
||||
cmake_policy(POP)
|
||||
|
||||
if(NOT CMAKE_CUDA_COMPILER_VERSION STREQUAL CUDAToolkit_VERSION OR
|
||||
NOT CUDA_INCLUDE_DIRS STREQUAL CUDAToolkit_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "Found two conflicting CUDA installs:\n"
|
||||
"V${CMAKE_CUDA_COMPILER_VERSION} in '${CUDA_INCLUDE_DIRS}' and\n"
|
||||
"V${CUDAToolkit_VERSION} in '${CUDAToolkit_INCLUDE_DIR}'")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET CUDA::nvToolsExt)
|
||||
message(FATAL_ERROR "Failed to find nvToolsExt")
|
||||
endif()
|
||||
|
||||
message(STATUS "Caffe2: CUDA detected: " ${CUDA_VERSION})
|
||||
message(STATUS "Caffe2: CUDA nvcc is: " ${CUDA_NVCC_EXECUTABLE})
|
||||
message(STATUS "Caffe2: CUDA toolkit directory: " ${CUDA_TOOLKIT_ROOT_DIR})
|
||||
@ -145,12 +166,8 @@ endif()
|
||||
# stubs folder, in case we are building on a system that does not
|
||||
# have cuda driver installed. On windows, we also search under the
|
||||
# folder lib/x64.
|
||||
find_library(CUDA_CUDA_LIB cuda
|
||||
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
|
||||
PATH_SUFFIXES lib lib64 lib/stubs lib64/stubs lib/x64)
|
||||
find_library(CUDA_NVRTC_LIB nvrtc
|
||||
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
|
||||
PATH_SUFFIXES lib lib64 lib/x64)
|
||||
set(CUDA_CUDA_LIB "${CUDA_cuda_driver_LIBRARY}" CACHE FILEPATH "")
|
||||
set(CUDA_NVRTC_LIB "${CUDA_nvrtc_LIBRARY}" CACHE FILEPATH "")
|
||||
if(CUDA_NVRTC_LIB AND NOT CUDA_NVRTC_SHORTHASH)
|
||||
if("${PYTHON_EXECUTABLE}" STREQUAL "")
|
||||
set(_python_exe "python")
|
||||
@ -178,84 +195,44 @@ endif()
|
||||
# end-users should never have this flag set.
|
||||
|
||||
# cuda
|
||||
add_library(caffe2::cuda UNKNOWN IMPORTED)
|
||||
add_library(caffe2::cuda INTERFACE IMPORTED)
|
||||
set_property(
|
||||
TARGET caffe2::cuda PROPERTY IMPORTED_LOCATION
|
||||
${CUDA_CUDA_LIB})
|
||||
set_property(
|
||||
TARGET caffe2::cuda PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
TARGET caffe2::cuda PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
CUDA::cuda_driver)
|
||||
|
||||
# cudart. CUDA_LIBRARIES is actually a list, so we will make an interface
|
||||
# library.
|
||||
# cudart
|
||||
add_library(torch::cudart INTERFACE IMPORTED)
|
||||
if(CAFFE2_STATIC_LINK_CUDA)
|
||||
set_property(
|
||||
TARGET torch::cudart PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
"${CUDA_cudart_static_LIBRARY}")
|
||||
if(NOT WIN32)
|
||||
set_property(
|
||||
TARGET torch::cudart APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
rt dl)
|
||||
endif()
|
||||
CUDA::cudart_static)
|
||||
else()
|
||||
set_property(
|
||||
TARGET torch::cudart PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${CUDA_LIBRARIES})
|
||||
CUDA::cudart)
|
||||
endif()
|
||||
set_property(
|
||||
TARGET torch::cudart PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
|
||||
# nvToolsExt
|
||||
add_library(torch::nvtoolsext INTERFACE IMPORTED)
|
||||
if(MSVC)
|
||||
if(NOT NVTOOLEXT_HOME)
|
||||
set(NVTOOLEXT_HOME "C:/Program Files/NVIDIA Corporation/NvToolsExt")
|
||||
endif()
|
||||
if(DEFINED ENV{NVTOOLSEXT_PATH})
|
||||
set(NVTOOLEXT_HOME $ENV{NVTOOLSEXT_PATH})
|
||||
file(TO_CMAKE_PATH ${NVTOOLEXT_HOME} NVTOOLEXT_HOME)
|
||||
endif()
|
||||
set_target_properties(
|
||||
torch::nvtoolsext PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES ${NVTOOLEXT_HOME}/lib/x64/nvToolsExt64_1.lib
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${NVTOOLEXT_HOME}/include)
|
||||
set_property(
|
||||
TARGET torch::nvtoolsext PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
CUDA::nvToolsExt)
|
||||
|
||||
elseif(APPLE)
|
||||
set_property(
|
||||
TARGET torch::nvtoolsext PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib/libnvrtc.dylib
|
||||
${CUDA_TOOLKIT_ROOT_DIR}/lib/libnvToolsExt.dylib)
|
||||
|
||||
else()
|
||||
find_library(LIBNVTOOLSEXT libnvToolsExt.so PATHS ${CUDA_TOOLKIT_ROOT_DIR}/lib64/)
|
||||
set_property(
|
||||
TARGET torch::nvtoolsext PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${LIBNVTOOLSEXT})
|
||||
endif()
|
||||
|
||||
# cublas. CUDA_CUBLAS_LIBRARIES is actually a list, so we will make an
|
||||
# interface library similar to cudart.
|
||||
# cublas
|
||||
add_library(caffe2::cublas INTERFACE IMPORTED)
|
||||
if(CAFFE2_STATIC_LINK_CUDA AND NOT WIN32)
|
||||
set_property(
|
||||
TARGET caffe2::cublas PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${CUDA_CUBLAS_LIBRARIES})
|
||||
# Add explicit dependency to cudart_static to fix
|
||||
# libcublasLt_static.a.o): undefined reference to symbol 'cudaStreamWaitEvent'
|
||||
# error adding symbols: DSO missing from command line
|
||||
# NOTE: cublas is always linked dynamically
|
||||
CUDA::cublas CUDA::cublasLt)
|
||||
set_property(
|
||||
TARGET caffe2::cublas APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
"${CUDA_cudart_static_LIBRARY}" rt dl)
|
||||
TARGET caffe2::cublas APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
CUDA::cudart_static rt)
|
||||
else()
|
||||
set_property(
|
||||
TARGET caffe2::cublas PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${CUDA_CUBLAS_LIBRARIES})
|
||||
CUDA::cublas CUDA::cublasLt)
|
||||
endif()
|
||||
set_property(
|
||||
TARGET caffe2::cublas PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
|
||||
# cudnn interface
|
||||
# static linking is handled by USE_STATIC_CUDNN environment variable
|
||||
@ -291,39 +268,28 @@ else()
|
||||
endif()
|
||||
|
||||
# curand
|
||||
add_library(caffe2::curand UNKNOWN IMPORTED)
|
||||
add_library(caffe2::curand INTERFACE IMPORTED)
|
||||
if(CAFFE2_STATIC_LINK_CUDA AND NOT WIN32)
|
||||
set_property(
|
||||
TARGET caffe2::curand PROPERTY IMPORTED_LOCATION
|
||||
"${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcurand_static.a")
|
||||
set_property(
|
||||
TARGET caffe2::curand PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
"${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a" dl)
|
||||
CUDA::curand_static)
|
||||
else()
|
||||
set_property(
|
||||
TARGET caffe2::curand PROPERTY IMPORTED_LOCATION
|
||||
${CUDA_curand_LIBRARY})
|
||||
TARGET caffe2::curand PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
CUDA::curand)
|
||||
endif()
|
||||
set_property(
|
||||
TARGET caffe2::curand PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
|
||||
# cufft. CUDA_CUFFT_LIBRARIES is actually a list, so we will make an
|
||||
# interface library similar to cudart.
|
||||
# cufft
|
||||
add_library(caffe2::cufft INTERFACE IMPORTED)
|
||||
if(CAFFE2_STATIC_LINK_CUDA AND NOT WIN32)
|
||||
set_property(
|
||||
TARGET caffe2::cufft PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
"${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcufft_static_nocallback.a"
|
||||
"${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a" dl)
|
||||
CUDA::cufft_static_nocallback)
|
||||
else()
|
||||
set_property(
|
||||
TARGET caffe2::cufft PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
${CUDA_CUFFT_LIBRARIES})
|
||||
CUDA::cufft)
|
||||
endif()
|
||||
set_property(
|
||||
TARGET caffe2::cufft PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
|
||||
# TensorRT
|
||||
if(CAFFE2_USE_TENSORRT)
|
||||
@ -337,13 +303,10 @@ if(CAFFE2_USE_TENSORRT)
|
||||
endif()
|
||||
|
||||
# nvrtc
|
||||
add_library(caffe2::nvrtc UNKNOWN IMPORTED)
|
||||
add_library(caffe2::nvrtc INTERFACE IMPORTED)
|
||||
set_property(
|
||||
TARGET caffe2::nvrtc PROPERTY IMPORTED_LOCATION
|
||||
${CUDA_NVRTC_LIB})
|
||||
set_property(
|
||||
TARGET caffe2::nvrtc PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
${CUDA_INCLUDE_DIRS})
|
||||
TARGET caffe2::nvrtc PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
CUDA::nvrtc)
|
||||
|
||||
# Add onnx namepsace definition to nvcc
|
||||
if(ONNX_NAMESPACE)
|
||||
|
Reference in New Issue
Block a user