@@ -48,10 +48,13 @@ option(BUILD_EXAMPLES "Build examples" TRUE)
4848option (BUILD_FT "Build functional tests" TRUE )
4949option (BUILD_REG_TESTS "Build regression tests" TRUE )
5050option (BUILD_CONFIG "Build cmake configs" TRUE )
51- option (ENABLE_MPI "Enable MPI for library" TRUE )
52- option (ENABLE_MPI_TESTS "Enable MPI for tests" TRUE )
53- option (ENABLE_SYCL_INTEROP_EVENT "Enable support for interop event functionality" TRUE )
54- option (ENABLE_OFI_HMEM "Enable support for OFI HMEM" FALSE )
51+ option (ENABLE_MPI "Enable MPI support" TRUE )
52+ option (ENABLE_MPI_TESTS "Enable MPI tests support" TRUE )
53+ option (ENABLE_SYCL_INTEROP_EVENT "Enable SYCL interop event support" TRUE )
54+ option (ENABLE_OFI_HMEM "Enable support OFI HMEM support" FALSE )
55+ option (ENABLE_OFI_OOT_PROV "Enable OFI out-of-tree providers support" FALSE )
56+ option (ENABLE_ITT "Enable ITT profiling support" TRUE )
57+ option (ENABLE_STUB_BACKEND "Enable stub backend" TRUE )
5558
5659option (USE_CODECOV_FLAGS "Calculate code coverage" FALSE )
5760option (WITH_ASAN "Use address sanitizer, can only be used in Debug build" FALSE )
@@ -75,6 +78,9 @@ message(STATUS "Enable MPI support: ${ENABLE_MPI}")
7578message (STATUS "Enable MPI tests support: ${ENABLE_MPI_TESTS} " )
7679message (STATUS "Enable SYCL interop event support: ${ENABLE_SYCL_INTEROP_EVENT} " )
7780message (STATUS "Enable OFI HMEM support: ${ENABLE_OFI_HMEM} " )
81+ message (STATUS "Enable OFI out-of-tree providers support: ${ENABLE_OFI_OOT_PROV} " )
82+ message (STATUS "Enable ITT profiling support: ${ENABLE_ITT} " )
83+ message (STATUS "Enable stub backend" ${ENABLE_STUB_BACKEND} )
7884
7985add_definitions (-DCCL_C_COMPILER= "${CMAKE_C_COMPILER_ID } ${CMAKE_C_COMPILER_VERSION } " )
8086add_definitions (-DCCL_CXX_COMPILER= "${CMAKE_CXX_COMPILER_ID } ${CMAKE_CXX_COMPILER_VERSION } " )
@@ -118,6 +124,13 @@ set(HWLOC_LIB_DIR "${DEPS_DIR}/hwloc/lib/")
118124message (STATUS "HWLOC_INCLUDE_DIR: ${HWLOC_INCLUDE_DIR} " )
119125message (STATUS "HWLOC_LIB_DIR: ${HWLOC_LIB_DIR} " )
120126
127+ set (ITT_INCLUDE_DIR "${DEPS_DIR} /itt/include" )
128+ set (ITT_LIB_DIR "${DEPS_DIR} /itt/lib64" )
129+ message (STATUS "ITT_INCLUDE_DIR: ${ITT_INCLUDE_DIR} " )
130+ message (STATUS "ITT_LIB_DIR: ${ITT_LIB_DIR} " )
131+
132+ set (LEVEL_ZERO_INCLUDE_DIR "${DEPS_DIR} /level_zero/include/" )
133+ message (STATUS "LEVEL_ZERO_INCLUDE_DIR: ${LEVEL_ZERO_INCLUDE_DIR} " )
121134
122135set (CMAKE_SKIP_INSTALL_RPATH TRUE )
123136set (CMAKE_SKIP_RPATH TRUE )
@@ -130,30 +143,51 @@ if (${CMAKE_VERSION} VERSION_LESS 3.1)
130143endif ()
131144
132145# common release/debug compilation settings
133- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS } ${C_COMPILER_FLAGS} -Wall -Wextra -Wno-unused-parameter -Wno-implicit-fallthrough - Werror -D_GNU_SOURCE -fvisibility=internal" )
146+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS } ${C_COMPILER_FLAGS} -Wall -Wextra -Wno-unused-parameter -Werror -D_GNU_SOURCE -fvisibility=internal" )
134147set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG } ${C_COMPILER_FLAGS} -O0 -g -DENABLE_DEBUG" )
135148set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE } ${C_COMPILER_FLAGS} -O3" )
136149set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO } ${C_COMPILER_FLAGS} -O2 -g" )
137150set (CMAKE_C_STANDARD 99)
138151set (CMAKE_C_STANDARD_REQUIRED ON )
139152
140- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } ${CXX_COMPILER_FLAGS} -Wall -Wextra -Wno-unused-parameter -Wno-implicit-fallthrough - Werror -D_GNU_SOURCE -fvisibility=internal" )
153+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } ${CXX_COMPILER_FLAGS} -Wall -Wextra -Wno-unused-parameter -Werror -D_GNU_SOURCE -fvisibility=internal" )
141154set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG } ${CXX_COMPILER_FLAGS} -O0 -g -DENABLE_DEBUG" )
142155set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE } ${CXX_COMPILER_FLAGS} -O3" )
143156set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO } ${CXX_COMPILER_FLAGS} -O2 -g" )
144157set (CMAKE_CXX_STANDARD 11)
145158set (CMAKE_CXX_STANDARD_REQUIRED ON )
146159
160+ if (NOT ${CMAKE_CXX_COMPILER_ID } STREQUAL "Intel" )
161+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS } -Wno-implicit-fallthrough" )
162+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -Wno-implicit-fallthrough" )
163+ endif ()
164+
147165set (COMMON_CMAKE_DIR ${PROJECT_SOURCE_DIR } /cmake)
148166if (COMPUTE_BACKEND)
167+ precheck_compute_backend ()
149168 message (STATUS "COMPUTE_BACKEND: ${COMPUTE_BACKEND} " )
150169 set_compute_backend (${COMMON_CMAKE_DIR} )
151- if (${COMPUTE_BACKEND} STREQUAL "dpcpp_level_zero " AND ENABLE_OFI_HMEM)
170+ if (${COMPUTE_BACKEND} STREQUAL "dpcpp " AND ENABLE_OFI_HMEM)
152171 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -DCCL_ENABLE_OFI_HMEM=1" )
153172 message (STATUS "Enable OFI HMEM support for compute backend ${COMPUTE_BACKEND} " )
154173 endif ()
155174endif ()
156175
176+ if (ENABLE_OFI_OOT_PROV)
177+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -DCCL_ENABLE_OFI_OOT_PROV=1" )
178+ message (STATUS "Enable OFI out-of-tree providers support" )
179+ endif ()
180+
181+ if (ENABLE_ITT)
182+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -DCCL_ENABLE_ITT=1" )
183+ message (STATUS "Enable ITT profiling support" )
184+ endif ()
185+
186+ if (ENABLE_STUB_BACKEND)
187+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -DCCL_ENABLE_STUB_BACKEND=1" )
188+ message (STATUS "Enable stub backend" )
189+ endif ()
190+
157191if (${CMAKE_C_COMPILER_ID } STREQUAL "GNU" AND ${CMAKE_CXX_COMPILER_ID } STREQUAL "GNU" )
158192 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
159193 #c++17 introduces algined new operator, use it
@@ -192,7 +226,7 @@ enable_testing()
192226
193227set (EXTERNAL_LIBS "" )
194228
195- set (EXAMPLES_INC_DIRS ${PROJECT_SOURCE_DIR } /include ${PROJECT_SOURCE_DIR } /examples/include ${MPI_INCLUDE_DIR} )
229+ set (EXAMPLES_INC_DIRS ${PROJECT_SOURCE_DIR } /include ${PROJECT_SOURCE_DIR } /examples/include ${MPI_INCLUDE_DIR} ${LEVEL_ZERO_INCLUDE_DIR} )
196230set (EXAMPLES_LIB_DIRS ${MPI_LIB_DIR} ${LIBFABRIC_LIB_DIR} )
197231
198232# allow `deprecated`
@@ -221,7 +255,7 @@ endif()
221255
222256set (CCL_MAJOR_VERSION "2021" )
223257set (CCL_MINOR_VERSION "5" )
224- set (CCL_UPDATE_VERSION "0 " )
258+ set (CCL_UPDATE_VERSION "2 " )
225259set (CCL_PRODUCT_STATUS "Gold" )
226260string (TIMESTAMP CCL_PRODUCT_BUILD_DATE "%Y-%m-%dT %H:%M:%SZ" )
227261get_vcs_properties ("git" )
0 commit comments