Una biblioteca y API unificada de comunicación colectiva que implementa operaciones como allreduce y broadcast en CPU, GPU y aceleradores de hardware para cargas de trabajo de HPC e IA.
NVIDIA/nccl
NCCL es la biblioteca de NVIDIA con primitivas optimizadas de comunicación entre GPUs, como all-reduce y all-gather, para entrenamiento en uno o varios nodos.
- Estrellas
- 5,213
- Forks
- 1,473
- Issues abiertos
- 466
- Último commit
- hace 3 días
¿Qué es?
NCCL (se pronuncia «Nickel») es una biblioteca independiente de rutinas de comunicación colectiva para GPUs. Implementa all-reduce, all-gather, reduce, broadcast y reduce-scatter, además de cualquier patrón de comunicación basado en send/receive. Está pensada para cargas de trabajo en las que muchas GPUs deben intercambiar datos rápidamente, como el deep learning distribuido.
NCCL está optimizada para ofrecer un gran ancho de banda a través de PCIe, NVLink y NVSwitch dentro de un nodo, y mediante InfiniBand Verbs o sockets TCP/IP entre nodos. Admite una cantidad arbitraria de GPUs en una sola máquina o distribuidas en varias, y funciona tanto en aplicaciones de un solo proceso como en aplicaciones multiproceso (por ejemplo, con MPI).
El repositorio incluye el código fuente de la biblioteca y objetivos de make para compilarla, además de opciones de empaquetado para Debian, RPM, un tarball genérico y un wheel de Python. Las pruebas se encuentran en un repositorio independiente, nccl-tests.
Funciones clave
- 01Implementa operaciones colectivas all-reduce, all-gather, reduce, broadcast y reduce-scatter
- 02Admite una cantidad arbitraria de GPUs dentro de un nodo o distribuidas entre varios nodos
- 03Utiliza PCIe, NVLink, NVSwitch, InfiniBand Verbs y sockets TCP/IP
- 04Funciona en aplicaciones de un solo proceso y multiproceso (por ejemplo, con MPI)
- 05Se puede compilar desde el código fuente o empaquetar como deb, rpm, tarball o wheel de Python
Casos de uso
- Sincronizar gradientes durante el entrenamiento distribuido de deep learning con varias GPUs
- Intercambiar tensores entre muchas GPUs en trabajos de computación de alto rendimiento
- Evaluar el ancho de banda de interconexión con la suite complementaria nccl-tests
Inicio rápido
- 1
Descarga las compilaciones oficiales de NCCL desde la página para desarrolladores de NVIDIA
- 2
Compila la biblioteca desde el código fuente
make -j src.build
Antes de usarlo
- La licencia no está especificada claramente en los metadatos, así que consulta las condiciones de licencia del repositorio antes de usarlo.
- Para compilar desde el código fuente, necesitas tener instalado el CUDA Toolkit y disponer de GPU NVIDIA.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es nccl?
- NCCL es la biblioteca de NVIDIA con primitivas optimizadas de comunicación entre GPUs, como all-reduce y all-gather, para entrenamiento en uno o varios nodos. NCCL (se pronuncia «Nickel») es una biblioteca independiente de rutinas de comunicación colectiva para GPUs. Implementa all-reduce, all-gather, reduce, broadcast y reduce-scatter, además de cualquier patrón de comunicación basado en send/receive. Está pensada para cargas de trabajo en las que muchas GPUs deben intercambiar datos rápidamente, como el deep learning distribuido.
- ¿nccl es gratuito? ¿Qué licencia tiene?
- nccl es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿nccl sigue mantenido?
- Mantenimiento activo. El último commit de nccl fue el 3 nov 2026.
- ¿Para qué puedo usar nccl?
- Sincronizar gradientes durante el entrenamiento distribuido de deep learning con varias GPUs Intercambiar tensores entre muchas GPUs en trabajos de computación de alto rendimiento Evaluar el ancho de banda de interconexión con la suite complementaria nccl-tests
- ¿Cómo se instala nccl?
- Descarga las compilaciones oficiales de NCCL desde la página para desarrolladores de NVIDIA Compila la biblioteca desde el código fuente: make -j src.build
- ¿Dónde consigo nccl?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/NVIDIA/nccl
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Extensiones de NVIDIA para PyTorch con utilidades de precisión mixta y entrenamiento distribuido, además de kernels CUDA y C++ fusionados opcionales.
Una biblioteca header-only de C++20 para expresiones de tensores al estilo NumPy que se ejecutan en GPU NVIDIA o en CPU multinúcleo, con fusión de kernels opcional.
Arquitecturas de referencia, plantillas y ejemplos para ejecutar entrenamiento e inferencia de IA distribuida en clústeres de AWS.
Un agente de kernels de GPU que evoluciona por sí mismo y optimiza kernels de CUDA y CuTe DSL al convertir cada kernel aceptado en la siguiente referencia.
Libro y colección de código de código abierto con apuntes actuales para aprender CUDA y más de 200 kernels de HGEMM, GEMM con FP8/FP4 y Flash-Attention.