Skip to content

Commit 0eb5987

Browse files
authored
Merge pull request #125 from nikitaxgusev/release/ccl_2021.13
Intel(R) oneAPI Collective Communications Library (oneCCL) 2021.13
2 parents 5e7c7b7 + aefb29e commit 0eb5987

File tree

288 files changed

+16610
-3862
lines changed

Some content is hidden

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

288 files changed

+16610
-3862
lines changed

CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ endif()
272272

273273
set_lp_env()
274274
set_avx_env()
275+
set_sycl_env()
275276

276277
set(CCL_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/src)
277278

@@ -307,7 +308,7 @@ file(GLOB spv_kernels "${PROJECT_SOURCE_DIR}/src/kernels/kernels.spv")
307308
endif()
308309

309310
set(CCL_MAJOR_VERSION "2021")
310-
set(CCL_MINOR_VERSION "12")
311+
set(CCL_MINOR_VERSION "13")
311312
set(CCL_UPDATE_VERSION "0")
312313
set(CCL_PRODUCT_STATUS "Gold")
313314
string(TIMESTAMP CCL_PRODUCT_BUILD_DATE "%Y-%m-%dT %H:%M:%SZ")

README.md

+7
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,13 @@ To generate oneCCLConfig files for oneCCL package, use the provided [`cmake/scri
147147
cmake [-DOUTPUT_DIR=<output_dir>] -P cmake/script/config_generation.cmake
148148
```
149149

150+
### OS File Descriptors
151+
152+
oneCCL uses [Level Zero IPC handles](https://spec.oneapi.io/level-zero/latest/core/PROG.html#memory-1) so that a process can access a memory allocation done by a different process.
153+
However, these IPC handles consume OS File Descriptors (FDs). As a result, to avoid running out of OS FDs, we recommend to increase the default limit of FDs in the system for applications running with oneCCL and GPU buffers.
154+
155+
The number of FDs required is application-dependent, but the recommended limit is ``1048575``. This value can be modified with the ulimit command.
156+
150157
## Additional Resources
151158

152159
### Blog Posts

cmake/helpers.cmake

+45-1
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,14 @@ function(set_lp_env)
6363
endif()
6464
message(STATUS "BF16 GPU truncate: ${CCL_BF16_GPU_TRUNCATE}")
6565

66-
6766
set(GCC_FP16_MIN_SUPPORTED "4.9.0")
67+
set(GCC_FP16_AVX512FP16_MIN_SUPPORTED "12.0.0")
68+
set(GCC_FP16_AVX512FP16_BINUTILS_MIN_SUPPORTED "2.38")
69+
70+
set(ICX_FP16_AVX512FP16_MIN_SUPPORTED "2021.4.0")
71+
6872
set(CLANG_FP16_MIN_SUPPORTED "9.0.0")
73+
set(CLANG_FP16_AVX512FP16_MIN_SUPPORTED "14.0.0")
6974

7075
if (${CMAKE_C_COMPILER_ID} STREQUAL "Intel"
7176
OR (${CMAKE_C_COMPILER_ID} STREQUAL "IntelLLVM")
@@ -81,6 +86,21 @@ function(set_lp_env)
8186
endif()
8287
message(STATUS "FP16 compiler: ${CCL_FP16_COMPILER}")
8388

89+
if ((${CMAKE_C_COMPILER_ID} STREQUAL "IntelLLVM"
90+
AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS ${ICX_FP16_AVX512FP16_MIN_SUPPORTED})
91+
OR (${CMAKE_C_COMPILER_ID} STREQUAL "Clang"
92+
AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS ${CLANG_FP16_AVX512FP16_MIN_SUPPORTED})
93+
OR (${CMAKE_C_COMPILER_ID} STREQUAL "GNU"
94+
AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS ${GCC_FP16_AVX512FP16_MIN_SUPPORTED}
95+
AND NOT ${BINUTILS_VERSION} VERSION_LESS ${GCC_FP16_AVX512FP16_BINUTILS_MIN_SUPPORTED})
96+
)
97+
add_definitions(-DCCL_FP16_AVX512FP16_COMPILER)
98+
set(CCL_FP16_AVX512FP16_COMPILER ON)
99+
else()
100+
set(CCL_FP16_AVX512FP16_COMPILER OFF)
101+
endif()
102+
message(STATUS "FP16 AVX512FP16 compiler: ${CCL_FP16_AVX512FP16_COMPILER}")
103+
84104
if (CCL_FP16_COMPILER)
85105
if ((${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "IntelLLVM"
86106
OR ${CMAKE_C_COMPILER_ID} STREQUAL "GNU"))
@@ -102,6 +122,28 @@ function(set_lp_env)
102122

103123
endfunction(set_lp_env)
104124

125+
function(set_sycl_env)
126+
set(ICX_SYCL_VEC_BF16_MIN_SUPPORTED "2024.2.0")
127+
128+
if (CCL_ENABLE_SYCL
129+
AND ${CMAKE_C_COMPILER_ID} STREQUAL "IntelLLVM"
130+
AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS ${ICX_SYCL_VEC_BF16_MIN_SUPPORTED})
131+
add_definitions(-DCCL_SYCL_VEC_SUPPORT_BF16)
132+
set(CCL_SYCL_VEC_SUPPORT_BF16 ON)
133+
else()
134+
set(CCL_SYCL_VEC_SUPPORT_BF16 OFF)
135+
endif()
136+
137+
if (CCL_ENABLE_SYCL
138+
AND ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
139+
set(CCL_SYCL_VEC_SUPPORT_FP16 OFF)
140+
else()
141+
add_definitions(-DCCL_SYCL_VEC_SUPPORT_FP16)
142+
set(CCL_SYCL_VEC_SUPPORT_FP16 ON)
143+
endif()
144+
145+
endfunction(set_sycl_env)
146+
105147
function(set_avx_env)
106148

107149
set(GCC_AVX_MIN_SUPPORTED "4.9.0")
@@ -278,6 +320,8 @@ function(set_compute_backend COMMON_CMAKE_DIR)
278320
set(CCL_ENABLE_ZE ON PARENT_SCOPE)
279321
message(STATUS "Enable CCL Level Zero support")
280322

323+
set (CMAKE_CXX_FLAGS "-Wno-c++20-extensions" PARENT_SCOPE)
324+
281325
execute_process(COMMAND icpx -v
282326
OUTPUT_VARIABLE ICPX_VERSION
283327
ERROR_VARIABLE ICPX_VERSION

cmake/vars.sh.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ args=$*
119119
for arg in $args
120120
do
121121
case "$arg" in
122-
--ccl-bundled-mpi=*)
122+
--ccl-bundled-mpi=*|-ccl-bundled-mpi=*)
123123
ccl_bundled_mpi="${arg#*=}"
124124
;;
125125
esac

deps/itt/lib64/libittnotify.a

-4.08 KB
Binary file not shown.

0 commit comments

Comments
 (0)