Repolode
openucx

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

    Clona el repositorio y accede a él

  2. 2

    Genera los scripts de compilación

    ./autogen.sh
  3. 3

    Configura la compilación con la ruta de instalación de UCX

    ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>
  4. 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

#collectives#hpc#mpi#gpu#infiniband#distributed-computing#cuda#deep-learning#openshmem#pgas

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.

Recursos de aprendizaje#cuda#gpu#tensor-cores
12,2 mil+17 esta semana1,3 milCudaGPL-3.0Actualizado anteayer