Skip to content

Commit b7d66de

Browse files
authored
Intel(R) oneAPI Collective Communications Library (oneCCL) 2021.5.2 (#72)
1 parent b5d62ca commit b7d66de

374 files changed

Lines changed: 31424 additions & 21458 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,13 @@ option(BUILD_EXAMPLES "Build examples" TRUE)
4848
option(BUILD_FT "Build functional tests" TRUE)
4949
option(BUILD_REG_TESTS "Build regression tests" TRUE)
5050
option(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

5659
option(USE_CODECOV_FLAGS "Calculate code coverage" FALSE)
5760
option(WITH_ASAN "Use address sanitizer, can only be used in Debug build" FALSE)
@@ -75,6 +78,9 @@ message(STATUS "Enable MPI support: ${ENABLE_MPI}")
7578
message(STATUS "Enable MPI tests support: ${ENABLE_MPI_TESTS}")
7679
message(STATUS "Enable SYCL interop event support: ${ENABLE_SYCL_INTEROP_EVENT}")
7780
message(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

7985
add_definitions(-DCCL_C_COMPILER="${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
8086
add_definitions(-DCCL_CXX_COMPILER="${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
@@ -118,6 +124,13 @@ set(HWLOC_LIB_DIR "${DEPS_DIR}/hwloc/lib/")
118124
message(STATUS "HWLOC_INCLUDE_DIR: ${HWLOC_INCLUDE_DIR}")
119125
message(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

122135
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
123136
set(CMAKE_SKIP_RPATH TRUE)
@@ -130,30 +143,51 @@ if (${CMAKE_VERSION} VERSION_LESS 3.1)
130143
endif()
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")
134147
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${C_COMPILER_FLAGS} -O0 -g -DENABLE_DEBUG")
135148
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${C_COMPILER_FLAGS} -O3")
136149
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${C_COMPILER_FLAGS} -O2 -g")
137150
set(CMAKE_C_STANDARD 99)
138151
set(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")
141154
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CXX_COMPILER_FLAGS} -O0 -g -DENABLE_DEBUG")
142155
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CXX_COMPILER_FLAGS} -O3")
143156
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${CXX_COMPILER_FLAGS} -O2 -g")
144157
set(CMAKE_CXX_STANDARD 11)
145158
set(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+
147165
set(COMMON_CMAKE_DIR ${PROJECT_SOURCE_DIR}/cmake)
148166
if (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()
155174
endif()
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+
157191
if (${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

193227
set(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})
196230
set(EXAMPLES_LIB_DIRS ${MPI_LIB_DIR} ${LIBFABRIC_LIB_DIR})
197231

198232
# allow `deprecated`
@@ -221,7 +255,7 @@ endif()
221255

222256
set(CCL_MAJOR_VERSION "2021")
223257
set(CCL_MINOR_VERSION "5")
224-
set(CCL_UPDATE_VERSION "0")
258+
set(CCL_UPDATE_VERSION "2")
225259
set(CCL_PRODUCT_STATUS "Gold")
226260
string(TIMESTAMP CCL_PRODUCT_BUILD_DATE "%Y-%m-%dT %H:%M:%SZ")
227261
get_vcs_properties("git")

INSTALL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ If your CXX compiler requires SYCL, it is possible to specify it (DPC++ is suppo
5555
Modify `cmake` command as follows:
5656

5757
```
58-
cmake .. -DCMAKE_C_COMPILER=your_c_compiler -DCMAKE_CXX_COMPILER=dpcpp -DCOMPUTE_BACKEND=dpcpp_level_zero
58+
cmake .. -DCMAKE_C_COMPILER=your_c_compiler -DCMAKE_CXX_COMPILER=dpcpp -DCOMPUTE_BACKEND=dpcpp
5959
```
6060

6161
## Specify the build type

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ Intel(R) oneAPI DPC++/C++ Compiler with Level Zero v1.0 support.
3737

3838
To install Level Zero, refer to the instructions in [Intel(R) Graphics Compute Runtime repository](https://github.com/intel/compute-runtime/releases) or to the [installation guide](https://dgpu-docs.intel.com/installation-guides/index.html) for oneAPI users.
3939

40+
### BF16 support <!-- omit in toc -->
41+
42+
- AVX512F-based implementation requires GCC 4.9 or higher.
43+
- AVX512_BF16-based implementation requires GCC 10.0 or higher and GNU binutils 2.33 or higher.
44+
45+
4046
## Installation
4147

4248
General installation scenario:

cmake/FindComputeCpp.cmake

Lines changed: 0 additions & 60 deletions
This file was deleted.

cmake/FindIntelSYCL_level_zero.cmake

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,10 @@ else()
2626
message("DPCPP_ROOT prefix path hint is not defiend")
2727
endif()
2828

29-
find_package(level_zero REQUIRED)
30-
set(COMPUTE_BACKEND_NAME ze_loader)
31-
3229
if (NOT COMPUTE_BACKEND_NAME)
3330
message("Not OpenCL or L0")
3431
endif()
3532

36-
3733
include(CheckCXXCompilerFlag)
3834
include(FindPackageHandleStandardArgs)
3935

@@ -70,12 +66,12 @@ find_package_handle_standard_args(IntelSYCL_level_zero
7066
INTEL_SYCL_SUPPORTED)
7167

7268
if(IntelSYCL_level_zero_FOUND AND NOT TARGET Intel::SYCL_level_zero)
73-
get_target_property(LEVEL_ZERO_INCLUDE_DIRECTORIES ze_loader INTERFACE_INCLUDE_DIRECTORIES)
74-
7569
add_library(Intel::SYCL_level_zero UNKNOWN IMPORTED)
76-
list(APPEND SYCL_LEVEL_ZERO_INCLUDE_DIRS "${LEVEL_ZERO_INCLUDE_DIRECTORIES}")
77-
list(APPEND SYCL_LEVEL_ZERO_INCLUDE_DIRS "${INTEL_SYCL_INCLUDE_DIRS}")
70+
message(STATUS "IntelSYCL_level_zero_FOUND: ${LEVEL_ZERO_INCLUDE_DIR}")
71+
list(APPEND SYCL_LEVEL_ZERO_INCLUDE_DIRS "${LEVEL_ZERO_INCLUDE_DIR}")
72+
list(APPEND SYCL_LEVEL_ZERO_INCLUDE_DIRS "${INTEL_SYCL_INCLUDE_DIRS}")
7873

74+
message(STATUS "SYCL_LEVEL_ZERO_INCLUDE_DIRS: ${SYCL_LEVEL_ZERO_INCLUDE_DIRS}")
7975
set(imp_libs
8076
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:-fsycl>
8177
${COMPUTE_BACKEND_NAME})

0 commit comments

Comments
 (0)