Repolode
NVIDIA

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. 1

    Descarga las compilaciones oficiales de NCCL desde la página para desarrolladores de NVIDIA

  2. 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

#gpu#cuda#distributed-training#collective-communication#deep-learning#hpc#communications#cpp#nvidia

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

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.

Backend y APIs#collectives#hpc#mpi
321132CBSD-3-ClauseBien mantenidoActualizado hace 18 horas

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.

Recursos de aprendizaje#cuda#gpu#tensor-cores
12,2 mil+16 esta semana1,3 milCudaGPL-3.0Actualizado hace 24 horas