Repolode
openucx

openucx/ucc

A unified collective communication library and API that implements operations like allreduce and broadcast across CPUs, GPUs and hardware accelerators for HPC and AI workloads.

Stars
322
Forks
132
Open issues
103
Last commit
2 days ago

What is it?

UCC is a library and API for collective communication operations, the multi-process data exchanges such as allreduce and broadcast that parallel programs use to coordinate. It is designed for HPC, AI/ML and I/O workloads and aims to serve several programming models and runtimes through one interface.

The library offers nonblocking collectives, repeatable operations that are initialized once and invoked many times, and a flexible resource allocation model. Hardware collectives are treated as a first-class part of the design. UCC builds on UCX's UCS utilities and lists supported transports including InfiniBand, RoCE, shared memory, SHARP, CUDA, NCCL, RCCL and MLX5.

UCC can be used as a collective component for Open MPI, and the README shows how to enable it for MPI and OpenSHMEM programs through mpirun parameters. It builds with autotools and needs UCX; CUDA and HIP support are optional.

Key features

  • 01Nonblocking collective operations covering several programming models.
  • 02Repeatable collectives that are initialized once and invoked multiple times.
  • 03Hardware collectives supported through SHARP and InfiniBand, RoCE and MLX5 transports.
  • 04GPU collectives with CUDA, NCCL, HIP and RCCL support.
  • 05Integration with Open MPI and OpenSHMEM through runtime parameters.

Use cases

  • Accelerating allreduce and broadcast in multi-node HPC applications.
  • Running distributed AI/ML training with GPU collectives over InfiniBand or RoCE.
  • Enabling UCC as the collective backend for Open MPI or OpenSHMEM programs.

Quick start

  1. 1

    Clone the repository and enter it

  2. 2

    Generate the build scripts

    ./autogen.sh
  3. 3

    Configure the build with the UCX install path

    ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>
  4. 4

    Compile the library

    make

Things to know

  • Requires UCX to be built and installed first.
  • The README documents only building from source, with no package-manager install.

In collections

Topics

#collectives#hpc#mpi#gpu#infiniband#distributed-computing#cuda#deep-learning#openshmem#pgas

FAQ

What is ucc?
A unified collective communication library and API that implements operations like allreduce and broadcast across CPUs, GPUs and hardware accelerators for HPC and AI workloads. UCC is a library and API for collective communication operations, the multi-process data exchanges such as allreduce and broadcast that parallel programs use to coordinate. It is designed for HPC, AI/ML and I/O workloads and aims to serve several programming models and runtimes through one interface.
Is ucc free to use? What license does it have?
ucc is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
Is ucc still maintained?
Actively maintained. The last commit to ucc was on Nov 5, 2026.
What can I use ucc for?
Accelerating allreduce and broadcast in multi-node HPC applications. Running distributed AI/ML training with GPU collectives over InfiniBand or RoCE. Enabling UCC as the collective backend for Open MPI or OpenSHMEM programs.
How do I install ucc?
Clone the repository and enter it Generate the build scripts: ./autogen.sh Configure the build with the UCX install path: ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> Compile the library: make
Where can I get ucc?
The source code and installation instructions are on GitHub: https://github.com/openucx/ucc

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects

An open-source book and code collection of modern CUDA learning notes, with 200+ kernels covering HGEMM, FP8/FP4 GEMM, and Flash-Attention.

Learning Resources#cuda#gpu#tensor-cores
12.2K+17 this week1.3KCudaGPL-3.0Updated 2 days ago