NCCL is NVIDIA's library of optimized GPU communication primitives such as all-reduce and all-gather for single- and multi-node training.
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
Clone the repository and enter it
- 2
Generate the build scripts
./autogen.sh - 3
Configure the build with the UCX install path
./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> - 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
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.
A C++20 header-only library for NumPy-style tensor expressions that run on NVIDIA GPUs or multithreaded CPUs, with optional kernel fusion.
A self-evolving GPU kernel agent that optimizes CUDA and CuTe DSL kernels by promoting each accepted kernel to the next reference.
Kubernetes-native platform for distributed AI model training and LLM fine-tuning across PyTorch, JAX, XGBoost and other frameworks.
Official implementation of FlashAttention, a memory-efficient exact attention kernel for training and inference of Transformer models on GPUs.