Practical overview
When it fits
Use NCCL when a GPU application needs coordinated data exchange across GPUs on one machine or across multiple nodes, including collective operations or custom send/receive patterns.
Who it is for
- Developers building multi-GPU applications that need collective or point-to-point data exchange.
- Distributed training teams coordinating gradient transfers across GPUs.
- MPI application developers working with multiple GPUs in one process or across processes.
Documented uses
- Exchange gradients across GPUs using collective communication.
- Perform all-reduce or all-gather operations in multi-node GPU programs.
- Implement custom GPU communication patterns with send/receive routines.
Requirements & limits
- NCCL is a library for application developers to integrate, rather than a standalone model-training interface.
- The documented optimized platforms include PCIe, NVLink, NVSwitch, InfiniBand Verbs and TCP/IP sockets.
- The repository documents source builds and several package formats, while also pointing to official builds.
- The repository’s NCCL test suite is separate from the library repository.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build NCCL from source
Compile the NCCL library from its repository, with an explicit CUDA path when needed.
Before you start
- A checkout of the NCCL repository.
- CUDA installed; set CUDA_HOME if it is not in /usr/local/cuda.
Steps
Change into the nccl repository directory.
Run the command below, or use the command below when CUDA is outside the default path.
make -j src.buildmake src.build CUDA_HOME=
Expected outcome
The library is compiled into `build/`, unless BUILDDIR is set.
Guide limitations
- The documented command builds the library; it does not cover configuring or running a consuming GPU application.
- NCCL is compiled for all supported architectures by default; changing NVCC_GENCODE is documented as an option to target selected architectures.
Create an NCCL package
Build a distribution package from an NCCL source checkout.
Before you start
- A built NCCL source tree.
- For Debian packages, the documented tools are build-essential, devscripts, debhelper and fakeroot.
- For Red Hat packages, the documented tools are rpm-build and rpmdevtools.
Steps
For Debian/Ubuntu, install the listed package-building tools and run the command below.
make pkg.debian.buildFor Red Hat/CentOS, install the listed RPM tools and run the command below.
make pkg.redhat.buildInspect the generated package directory under
build/pkg/deb/orbuild/pkg/rpm/.
Expected outcome
The corresponding package files are placed in the build/pkg directory for the selected packaging format.
Guide limitations
- The documented steps create packages; system installation is a separate step requiring root.
- These package commands cover Debian/Ubuntu and Red Hat/CentOS formats, not application integration.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- NVIDIA/nccl · Official homepage title · retained in its source language

