37 lines
964 B
CMake
37 lines
964 B
CMake
# cmake/FindNCCL.cmake
|
|
|
|
# NVIDIA does not distribute CMake files with NCCl, therefore use this file to find it instead.
|
|
|
|
find_path(NCCL_INCLUDE_DIR
|
|
NAMES nccl.h
|
|
HINTS ${NCCL_ROOT} $ENV{NCCL_ROOT} $ENV{CUDA_HOME} /usr/local/cuda
|
|
PATH_SUFFIXES include
|
|
)
|
|
|
|
find_library(NCCL_LIBRARY
|
|
NAMES nccl
|
|
HINTS ${NCCL_ROOT} $ENV{NCCL_ROOT} $ENV{CUDA_HOME} /usr/local/cuda
|
|
PATH_SUFFIXES lib lib64
|
|
)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(NCCL
|
|
DEFAULT_MSG
|
|
NCCL_LIBRARY NCCL_INCLUDE_DIR
|
|
)
|
|
|
|
if(NCCL_FOUND)
|
|
set(NCCL_LIBRARIES ${NCCL_LIBRARY})
|
|
set(NCCL_INCLUDE_DIRS ${NCCL_INCLUDE_DIR})
|
|
|
|
if(NOT TARGET NCCL::NCCL)
|
|
add_library(NCCL::NCCL UNKNOWN IMPORTED)
|
|
set_target_properties(NCCL::NCCL PROPERTIES
|
|
IMPORTED_LOCATION "${NCCL_LIBRARY}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${NCCL_INCLUDE_DIR}"
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(NCCL_INCLUDE_DIR NCCL_LIBRARY)
|