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.
openucx/ucc
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.
- Estrellas
- 322
- Forks
- 132
- Issues abiertos
- 103
- Último commit
- ayer
¿Qué es?
UCC es una biblioteca y API para operaciones de comunicación colectiva: intercambios de datos entre varios procesos, como allreduce y broadcast, que los programas paralelos usan para coordinarse. Está diseñada para cargas de trabajo de HPC, IA/ML y E/S, y busca dar servicio a varios modelos de programación y entornos de ejecución mediante una sola interfaz.
La biblioteca ofrece operaciones colectivas no bloqueantes, operaciones repetibles que se inicializan una vez y se ejecutan muchas veces, y un modelo flexible de asignación de recursos. Las operaciones colectivas de hardware son una parte central del diseño. UCC se basa en las utilidades UCS de UCX y enumera transportes compatibles como InfiniBand, RoCE, memoria compartida, SHARP, CUDA, NCCL, RCCL y MLX5.
UCC puede usarse como componente de comunicación colectiva para Open MPI, y el README muestra cómo habilitarlo en programas MPI y OpenSHMEM mediante parámetros de mpirun. Se compila con autotools y requiere UCX; la compatibilidad con CUDA y HIP es opcional.
Funciones clave
- 01Operaciones colectivas no bloqueantes compatibles con varios modelos de programación.
- 02Operaciones colectivas repetibles que se inicializan una vez y se ejecutan varias veces.
- 03Operaciones colectivas de hardware compatibles con SHARP y los transportes InfiniBand, RoCE y MLX5.
- 04Operaciones colectivas para GPU con compatibilidad con CUDA, NCCL, HIP y RCCL.
- 05Integración con Open MPI y OpenSHMEM mediante parámetros del entorno de ejecución.
Casos de uso
- Acelerar allreduce y broadcast en aplicaciones HPC multinodo.
- Ejecutar entrenamiento distribuido de IA/ML con operaciones colectivas para GPU sobre InfiniBand o RoCE.
- Habilitar UCC como backend de comunicación colectiva para programas Open MPI u OpenSHMEM.
Inicio rápido
- 1
Clona el repositorio y accede a él
- 2
Genera los scripts de compilación
./autogen.sh - 3
Configura la compilación con la ruta de instalación de UCX
./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> - 4
Compila la biblioteca
make
Antes de usarlo
- UCX debe estar compilado e instalado previamente.
- El README solo documenta la compilación desde el código fuente; no incluye instrucciones de instalación mediante un gestor de paquetes.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es ucc?
- 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. UCC es una biblioteca y API para operaciones de comunicación colectiva: intercambios de datos entre varios procesos, como allreduce y broadcast, que los programas paralelos usan para coordinarse. Está diseñada para cargas de trabajo de HPC, IA/ML y E/S, y busca dar servicio a varios modelos de programación y entornos de ejecución mediante una sola interfaz.
- ¿ucc es gratuito? ¿Qué licencia tiene?
- ucc es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿ucc sigue mantenido?
- Mantenimiento activo. El último commit de ucc fue el 5 nov 2026.
- ¿Para qué puedo usar ucc?
- Acelerar allreduce y broadcast en aplicaciones HPC multinodo. Ejecutar entrenamiento distribuido de IA/ML con operaciones colectivas para GPU sobre InfiniBand o RoCE. Habilitar UCC como backend de comunicación colectiva para programas Open MPI u OpenSHMEM.
- ¿Cómo se instala ucc?
- Clona el repositorio y accede a él Genera los scripts de compilación: ./autogen.sh Configura la compilación con la ruta de instalación de UCX: ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> Compila la biblioteca: make
- ¿Dónde consigo ucc?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/openucx/ucc
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
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.
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.
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.
Plataforma nativa de Kubernetes para el entrenamiento distribuido de modelos de IA y el ajuste fino de LLM con PyTorch, JAX, XGBoost y otros frameworks.
Implementación oficial de FlashAttention, un kernel de atención exacta y eficiente en memoria para entrenar e inferir con modelos Transformer en GPU.