oneCCL Usage

Refer to the Intel oneAPI Collective Communications Library System Requirements for a full list of hardware and software dependencies, such as MPI and Intel oneAPI DPC++/C++ Compiler.

SYCL*-aware API is an optional feature of oneCCL. There is a choice between CPU and SYCL back ends when creating the oneCCL stream object.

  • For CPU backend: Specify ccl_stream_host as the first argument.

  • For SYCL backend: Specify ccl_stream_cpu or ccl_stream_gpu depending on the device type.

  • For collective operations that operate on the SYCL stream:

    • For C API, oneCCL expects communication buffers to be sycl::buffer objects casted to void*.

    • For C++ API, oneCCL expects communication buffers to be passed by reference.

Additional usage details are available from https://oneapi-src.github.io/oneCCL/.