Biblioteca e API unificadas de comunicação coletiva, com operações como allreduce e broadcast para CPUs, GPUs e aceleradores de hardware em cargas de trabalho de HPC e IA.
NVIDIA/nccl
NCCL é a biblioteca da NVIDIA com primitivas otimizadas de comunicação entre GPUs, como all-reduce e all-gather, para treinamento em um ou vários nós.
- Estrelas
- 5,211
- Forks
- 1,475
- Issues abertas
- 466
- Último commit
- há 3 dias
O que é?
NCCL (pronuncia-se “Nickel”) é uma biblioteca independente de rotinas de comunicação coletiva para GPUs. Ela implementa all-reduce, all-gather, reduce, broadcast e reduce-scatter, além de qualquer padrão de comunicação baseado em send/receive. É voltada a cargas de trabalho em que muitas GPUs precisam trocar dados rapidamente, como no deep learning distribuído.
O NCCL é otimizado para oferecer alta largura de banda por PCIe, NVLink e NVSwitch dentro de um nó, e por InfiniBand Verbs ou sockets TCP/IP entre nós. Ele aceita qualquer quantidade de GPUs em uma máquina ou distribuídas entre várias, e funciona tanto em aplicações de processo único quanto em aplicações multiprocesso (por exemplo, com MPI).
O repositório contém o código-fonte da biblioteca e alvos do make para compilá-la, além de opções de empacotamento para Debian, RPM, tarball genérico e wheel do Python. Os testes ficam em um repositório separado, nccl-tests.
Recursos principais
- 01Implementa operações coletivas all-reduce, all-gather, reduce, broadcast e reduce-scatter
- 02Aceita qualquer quantidade de GPUs em um nó ou distribuídas entre vários nós
- 03Usa PCIe, NVLink, NVSwitch, InfiniBand Verbs e sockets TCP/IP
- 04Funciona em aplicações de processo único e multiprocesso (por exemplo, MPI)
- 05Pode ser compilado a partir do código-fonte ou empacotado como deb, rpm, tarball ou wheel do Python
Casos de uso
- Sincronizar gradientes no treinamento distribuído de deep learning com várias GPUs
- Trocar tensores entre muitas GPUs em tarefas de computação de alto desempenho
- Medir a largura de banda das interconexões com o conjunto complementar nccl-tests
Início rápido
- 1
Baixe as compilações oficiais do NCCL na página de desenvolvedores da NVIDIA
- 2
Compile a biblioteca a partir do código-fonte
make -j src.build
Antes de usar
- A licença não está especificada claramente nos metadados, então confira os termos de licença do repositório antes de usar.
- Para compilar a partir do código-fonte, é necessário ter o CUDA Toolkit instalado e uma GPU NVIDIA.
Em coleções
Tópicos
Perguntas frequentes
- O que é nccl?
- NCCL é a biblioteca da NVIDIA com primitivas otimizadas de comunicação entre GPUs, como all-reduce e all-gather, para treinamento em um ou vários nós. NCCL (pronuncia-se “Nickel”) é uma biblioteca independente de rotinas de comunicação coletiva para GPUs. Ela implementa all-reduce, all-gather, reduce, broadcast e reduce-scatter, além de qualquer padrão de comunicação baseado em send/receive. É voltada a cargas de trabalho em que muitas GPUs precisam trocar dados rapidamente, como no deep learning distribuído.
- nccl é gratuito? Qual é a licença?
- nccl é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- nccl ainda é mantido?
- Manutenção ativa. O último commit de nccl foi em 3 de nov. de 2026.
- Para que posso usar nccl?
- Sincronizar gradientes no treinamento distribuído de deep learning com várias GPUs Trocar tensores entre muitas GPUs em tarefas de computação de alto desempenho Medir a largura de banda das interconexões com o conjunto complementar nccl-tests
- Como instalar nccl?
- Baixe as compilações oficiais do NCCL na página de desenvolvedores da NVIDIA Compile a biblioteca a partir do código-fonte: make -j src.build
- Onde consigo nccl?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/NVIDIA/nccl
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Extensão da NVIDIA para PyTorch com utilitários de precisão mista e treinamento distribuído, além de kernels CUDA e C++ fundidos opcionais.
Biblioteca header-only em C++20 para expressões de tensor no estilo NumPy, executadas em GPUs NVIDIA ou CPUs multithread, com fusão opcional de kernels.
Arquiteturas de referência, templates e exemplos para executar treinamento e inferência de IA distribuídos em clusters da AWS.
Agente de kernels GPU com autoevolução que otimiza kernels CUDA e CuTe DSL, promovendo cada kernel aceito a nova referência.
Livro open source e coleção de código com anotações sobre CUDA moderno e mais de 200 kernels, cobrindo HGEMM, GEMM em FP8/FP4 e Flash-Attention.