Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
36 lines
1,000 B
CMake
36 lines
1,000 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)
|