OpenViSTAI · Agents · Blockchain · Crypto
Menu
AI Infrastructure & Serving

Nccl

NCCL is a C++ GPU communication library that provides collective operations—including all-reduce, all-gather, reduce, broadcast and reduce-scatter—and send/receive routines for GPU applications running on one or multiple nodes.

Independent OpenViST project profile, based on linked sources.

Nccl — OpenViST project profile in AI Infrastructure & Serving.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. Change into the nccl repository directory.

  2. Run the command below, or use the command below when CUDA is outside the default path.

    Documented command
    make -j src.build
    Documented command
    make 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.
Source-based practical guide

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

  1. For Debian/Ubuntu, install the listed package-building tools and run the command below.

    Documented command
    make pkg.debian.build
  2. For Red Hat/CentOS, install the listed RPM tools and run the command below.

    Documented command
    make pkg.redhat.build
  3. Inspect the generated package directory under build/pkg/deb/ or build/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.
Evidence and transparency

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