Installation Guide

This page explains how to install and configure the oneAPI Collective Communications Library (oneCCL). oneCCL supports different installation scenarios using command line interface.

System Requirements

Visit oneAPI Collective Communications Library System Requirements to learn about hardware and software requirements for oneCCL.

Installation using Command Line Interface

To install oneCCL using command line interface (CLI), follow these steps:

  1. Go to the ccl folder:

    cd ccl
    
  2. Create a new folder:

    mkdir build
    
  3. Go to the folder created:

    cd build
    
  4. Launch CMake:

    cmake ..
    
  5. Install the product:

    make -j install
    

In order to have a clear build, create a new build directory and invoke cmake within the directory.

Custom Installation

You can customize CLI-based installation (for example, specify directory, compiler, and build type):

  • To specify installation directory, modify the cmake command:

    cmake .. -DCMAKE_INSTALL_PREFIX=</path/to/installation/directory>
    

    If no -DCMAKE_INSTALL_PREFIX is specified, oneCCL is installed into the _install subdirectory of the current build directory. For example, ccl/build/_install.

  • To specify compiler, modify the cmake command:

    cmake .. -DCMAKE_C_COMPILER=<c_compiler> -DCMAKE_CXX_COMPILER=<cxx_compiler>
    
  • To enable SYCL devices communication support, specify SYCL compiler and set -DCOMPUTE_BACKEND (only DPC++ is supported):

cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=dpcpp -DCOMPUTE_BACKEND=dpcpp_level_zero
  • To specify the build type, modify the cmake command:

    cmake .. -DCMAKE_BUILD_TYPE=[Debug|Release]
    
  • To enable make verbose output to see all parameters used by make during compilation and linkage, modify the make command as follows:

    make -j VERBOSE=1 install
    

Environment Setup

Before you start using oneCCL, make sure to set up the library environment. There are two ways to set up the environment:

  • Using standalone oneCCL package installed into <ccl_install_dir>:

    source <ccl_install_dir>/setvars.sh
    
  • Using oneCCL from Intel® oneAPI Base Toolkit installed into <toolkit_install_dir> (/opt/intel/inteloneapi by default):

    source <toolkit_install_dir>/setvars.sh