-
Notifications
You must be signed in to change notification settings - Fork 18.7k
/
nccl.cmake
35 lines (33 loc) · 1.18 KB
/
nccl.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# if (NOT __NCCL_INCLUDED) # guard against multiple includes
set(__NCCL_INCLUDED TRUE)
if(MSVC)
# use the system-wide nccl if present
find_package(NCCL)
if (NCCL_FOUND)
set(NCCL_EXTERNAL FALSE)
else()
# build directory
set(nccl_PREFIX ${CMAKE_BINARY_DIR}/external/nccl-prefix)
# install directory
set(nccl_INSTALL ${CMAKE_BINARY_DIR}/external/nccl-install)
ExternalProject_Add(nccl
PREFIX ${nccl_PREFIX}
URL https://github.com/willyd/nccl/archive/470b3130457f125f4608c7baee71123aa16a3b12.zip
UPDATE_COMMAND ""
INSTALL_DIR ${nccl_INSTALL}
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${nccl_INSTALL}
-DBUILD_SHARED_LIBS=OFF
-DNCCL_BUILD_TESTS:BOOL=OFF
LOG_DOWNLOAD 1
LOG_INSTALL 1
BUILD_BYPRODUCTS ${nccl_INSTALL}/include ${nccl_INSTALL}/lib/nccl.lib
)
set(NCCL_INCLUDE_DIR ${nccl_INSTALL}/include)
set(NCCL_LIBRARIES ${nccl_INSTALL}/lib/nccl.lib)
endif()
else()
# default to find package on UNIX systems
find_package(NCCL REQUIRED)
endif()
# endif()