Use NCCL as the communication backend when training a large AI model across multiple GPUs in one machine or across many machines in a data center.
Benchmark GPU-to-GPU communication bandwidth on your cluster by running the separate NCCL test suite after installation.
Build a distributed computing application that needs fast collective operations like all-reduce or broadcast across many GPUs.
| nvidia/nccl | mindspore-ai/mindspore | melonds-emu/melonds | |
|---|---|---|---|
| Stars | 4,702 | 4,690 | 4,715 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | hard | moderate |
| Complexity | 4/5 | 4/5 | 2/5 |
| Audience | researcher | researcher | general |
Figures from each repo's GitHub metadata at analysis time.
Requires a multi-GPU machine with CUDA installed, pre-built packages available but source build needs a Makefile setup and matching CUDA version.
NCCL (pronounced "Nickel") is a library from NVIDIA that makes multiple graphics cards talk to each other efficiently. When training large AI models, it is common to spread the work across many GPUs at once, and those GPUs need to constantly share intermediate results with each other. NCCL provides the low-level communication routines that handle this data exchange as fast as possible. The library supports standard collective operations used in distributed computing: all-reduce, all-gather, reduce, broadcast, reduce-scatter, and direct send and receive between any two GPUs. These are the building blocks that AI training frameworks like PyTorch and TensorFlow use under the hood when running across multiple GPUs. NCCL is optimized for the hardware connections that link GPUs together, including PCIe slots, NVLink (NVIDIA's fast direct GPU interconnect), NVswitch (a switching chip for large GPU clusters), and network fabrics like InfiniBand. It works whether your GPUs are all in one machine or spread across many machines in a data center. To use it, you can download pre-built packages from NVIDIA's developer site or compile the source yourself using the provided Makefile. Installation packages are available for Debian, Ubuntu, and Red Hat systems. A separate repository handles the test suite if you want to benchmark communication bandwidth after setup.
NCCL is NVIDIA's low-level library that makes multiple GPUs talk to each other at maximum speed, it's the communication backbone that PyTorch and TensorFlow use when training AI models across many GPUs.
Mainly C++. The stack also includes C++, CUDA, NVLink.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.