Practical overview
When it fits
Consider UCCL when a distributed GPU workload needs collective operations, peer-to-peer transfers or expert-parallel communication, and the team can build and configure GPU communication infrastructure for its target platform.
Who it is for
- Teams building or operating distributed machine-learning workloads across GPUs.
- Developers integrating GPU collective communication, peer-to-peer transfers or expert-parallel execution.
- Infrastructure engineers working with heterogeneous GPU and networking hardware.
Documented uses
- Provide collective communication for multi-GPU workloads through a layer described as retaining NCCL/RCCL APIs.
- Transfer LLM KV caches or reinforcement-learning weights between GPU-backed services or workers.
- Run expert-parallel communication across supported heterogeneous GPU and networking setups.
- Build and configure a network plugin for a PyTorch application using NCCL or RCCL.
Requirements & limits
The public GitHub repository identifies the project as Apache-2.0 licensed and provides build instructions.
- UCCL has separate collective, P2P and expert-parallel components; select the one matching the workload.
- Build targets distinguish CUDA, ROCm and TheRock environments, with separate options for RDMA and EFA collectives.
- The documented PyTorch integration uses environment variables to select NCCL or RCCL plugin paths.
- The repository reports performance comparisons for specified hardware configurations; results should be read in the context of those setups.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build UCCL for a GPU platform
Build and install the selected UCCL component for a CUDA, ROCm or TheRock target.
Before you start
- A Linux environment with the target GPU software stack.
- A Python environment; the build script detects its Python version, or accepts a specified version.
- The UCCL Git repository.
Steps
Clone the UCCL repository and change into its directory.
Choose a platform target such as cu12, cu13, roc7, roc6 or therock, and a component such as all, ccl_rdma, ccl_efa, p2p or ep.
Run build.sh with the selected options and --install; specify a Python version or ROCm index URL when needed.
Expected outcome
The selected UCCL component is built and installed for the chosen platform target.
Guide limitations
- The README identifies cu12 as targeting CUDA 12.8 and roc7 as targeting ROCm 7.1 by default; cu13 and roc6 target CUDA 13.0 and ROCm 6.4.
- For ROCm Python packaging through TheRock, the README says to provide the desired ROCm index URL; its listed default may not be appropriate for every setup.
Configure a PyTorch application to use UCCL's NCCL or RCCL plugin
Set the documented plugin environment variables for an existing PyTorch application after UCCL is installed.
Before you start
- UCCL built and installed for the applicable platform.
- A PyTorch application using NCCL or RCCL.
Steps
For NCCL over IB/RoCE on x86 or GH200 ARM hosts, set NCCL_NET_PLUGIN to the path returned by uccl.nccl_plugin_path().
For RCCL over IB/RoCE on x86 hosts, set NCCL_NET_PLUGIN to the path returned by uccl.rccl_plugin_path().
For the documented AWS EFA configuration, set LD_PRELOAD and NCCL_NET_PLUGIN to the paths returned by uccl.efa_nccl_path() and uccl.efa_plugin_path(), respectively.
Run the PyTorch application with the chosen environment configuration.
Expected outcome
The PyTorch application is configured to load the selected UCCL network plugin.
Guide limitations
- The README specifies AWS EFA for p4d and p4de only.
- The instructions describe environment configuration; they do not establish compatibility for every hardware or software combination.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 11 October 2026
- Original website title
- uccl-project/uccl · Official homepage title · retained in its source language

