1
- INCLUDE (ExternalProject )
1
+ include (ExternalProject )
2
2
3
- SET (NCCL_SOURCE_DIR ${THIRD_PARTY_PATH} /nccl )
4
-
5
- INCLUDE_DIRECTORIES (${NCCL_SOURCE_DIR} /src/extern_nccl/src )
3
+ set (NCCL_SOURCE_DIR ${THIRD_PARTY_PATH} /nccl )
6
4
5
+ include_directories (${NCCL_SOURCE_DIR} /src/extern_nccl/src )
7
6
8
7
if (WITH_DSO )
9
8
# If we use DSO, we do not build nccl, just download the dependencies
@@ -12,39 +11,39 @@ if(WITH_DSO)
12
11
set (NCCL_INSTALL_DIR "" )
13
12
else ()
14
13
# otherwise, we build nccl and link it.
14
+ set (NCCL_INSTALL_DIR ${THIRD_PARTY_PATH} /install/nccl )
15
+ # Note: cuda 8.0 is needed to make nccl
16
+ # When cuda is not installed on the system directory, need to set CUDA_HOME to your cuda root
15
17
set (NCCL_BUILD_COMMAND "make -j 8" )
16
- set (NCCL_INSTALL_COMMAND "make install" )
17
- SET (NCCL_INSTALL_DIR ${THIRD_PARTY_PATH} /install/nccl )
18
+ set (NCCL_INSTALL_COMMAND "make install PREFIX=${NCCL_INSTALL_DIR} " )
18
19
endif ()
19
20
20
21
ExternalProject_Add (
21
- extern_nccl
22
- ${EXTERNAL_PROJECT_LOG_ARGS}
23
- GIT_REPOSITORY "https://github.com/NVIDIA/nccl.git"
24
- GIT_TAG "v1.3.4-1"
25
- PREFIX "${NCCL_SOURCE_DIR} "
26
- UPDATE_COMMAND ""
27
- CONFIGURE_COMMAND ""
28
- BUILD_COMMAND "${NCCL_BUILD_COMMAND} "
29
- INSTALL_COMMAND "${NCCL_INSTALL_COMMAND} "
30
- INSTALL_DIR "${NCCL_INSTALL_DIR} "
31
- TEST_COMMAND ""
22
+ extern_nccl
23
+ ${EXTERNAL_PROJECT_LOG_ARGS}
24
+ GIT_REPOSITORY "https://github.com/NVIDIA/nccl.git"
25
+ GIT_TAG "v1.3.4-1"
26
+ PREFIX "${NCCL_SOURCE_DIR} "
27
+ UPDATE_COMMAND ""
28
+ CONFIGURE_COMMAND ""
29
+ BUILD_COMMAND "${NCCL_BUILD_COMMAND} "
30
+ INSTALL_COMMAND "${NCCL_INSTALL_COMMAND} "
31
+ INSTALL_DIR "${NCCL_INSTALL_DIR} "
32
+ TEST_COMMAND ""
32
33
)
33
34
34
- if (WITH_DSO )
35
- if (${CMAKE_VERSION} VERSION_LESS "3.3.0" )
36
- set (dummyfile ${CMAKE_CURRENT_BINARY_DIR} /lib_any_dummy .c )
37
- file (WRITE ${dummyfile} "const char * dummy_any = \" ${dummyfile} \" ;" )
35
+ if (WITH_DSO )
36
+ if (${CMAKE_VERSION} VERSION_LESS "3.3.0" )
37
+ set (dummyfile ${CMAKE_CURRENT_BINARY_DIR} /lib_nccl_dummy .c )
38
+ file (WRITE ${dummyfile} "const char * dummy_nccl = \" ${dummyfile} \" ;" )
38
39
add_library (nccl STATIC ${dummyfile} )
39
40
else ()
40
41
add_library (nccl INTERFACE )
41
42
endif ()
42
43
else ()
43
- ADD_LIBRARY (nccl STATIC IMPORTED GLOBAL )
44
- SET_PROPERTY (TARGET nccl PROPERTY IMPORTED_LOCATION
45
- ${NCCL_INSTALL_DIR} /lib/libnccl .a )
44
+ add_library (nccl STATIC IMPORTED GLOBAL )
45
+ set_property (TARGET nccl PROPERTY IMPORTED_LOCATION
46
+ ${NCCL_INSTALL_DIR} /lib/libnccl_static .a )
46
47
endif ()
47
48
48
49
add_dependencies (nccl extern_nccl )
49
-
50
- LIST (APPEND external_project_dependencies nccl )
0 commit comments