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.
openucx/ucc
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.
- Estrelas
- 322
- Forks
- 132
- Issues abertas
- 103
- Último commit
- anteontem
O que é?
UCC é uma biblioteca e API para operações de comunicação coletiva, ou seja, trocas de dados entre vários processos — como allreduce e broadcast — usadas por programas paralelos para coordenar seu trabalho. Ela foi projetada para cargas de trabalho de HPC, IA/ML e I/O e busca atender a vários modelos de programação e runtimes por meio de uma única interface.
A biblioteca oferece coletivas não bloqueantes, operações repetíveis que são inicializadas uma vez e executadas várias vezes, além de um modelo flexível de alocação de recursos. Coletivas de hardware são parte central do projeto. UCC se apoia nos utilitários UCS do UCX e lista como transportes compatíveis InfiniBand, RoCE, memória compartilhada, SHARP, CUDA, NCCL, RCCL e MLX5.
UCC pode ser usado como componente de comunicação coletiva do Open MPI, e o README mostra como habilitá-lo em programas MPI e OpenSHMEM por meio de parâmetros do mpirun. A compilação é feita com autotools e requer UCX; o suporte a CUDA e HIP é opcional.
Recursos principais
- 01Operações coletivas não bloqueantes que atendem a vários modelos de programação.
- 02Coletivas repetíveis, inicializadas uma vez e executadas várias vezes.
- 03Coletivas de hardware compatíveis com SHARP e com os transportes InfiniBand, RoCE e MLX5.
- 04Coletivas para GPU com suporte a CUDA, NCCL, HIP e RCCL.
- 05Integração com Open MPI e OpenSHMEM por meio de parâmetros do runtime.
Casos de uso
- Acelerar allreduce e broadcast em aplicações de HPC executadas em vários nós.
- Executar treinamento distribuído de IA/ML com coletivas de GPU via InfiniBand ou RoCE.
- Habilitar UCC como backend de comunicação coletiva para programas Open MPI ou OpenSHMEM.
Início rápido
- 1
Clone o repositório e entre nele
- 2
Gere os scripts de compilação
./autogen.sh - 3
Configure a compilação com o caminho de instalação do UCX
./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> - 4
Compile a biblioteca
make
Antes de usar
- É necessário compilar e instalar o UCX primeiro.
- O README documenta apenas a compilação a partir do código-fonte, sem instruções de instalação por gerenciador de pacotes.
Em coleções
Tópicos
Perguntas frequentes
- O que é ucc?
- 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. UCC é uma biblioteca e API para operações de comunicação coletiva, ou seja, trocas de dados entre vários processos — como allreduce e broadcast — usadas por programas paralelos para coordenar seu trabalho. Ela foi projetada para cargas de trabalho de HPC, IA/ML e I/O e busca atender a vários modelos de programação e runtimes por meio de uma única interface.
- ucc é gratuito? Qual é a licença?
- ucc é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- ucc ainda é mantido?
- Manutenção ativa. O último commit de ucc foi em 5 de nov. de 2026.
- Para que posso usar ucc?
- Acelerar allreduce e broadcast em aplicações de HPC executadas em vários nós. Executar treinamento distribuído de IA/ML com coletivas de GPU via InfiniBand ou RoCE. Habilitar UCC como backend de comunicação coletiva para programas Open MPI ou OpenSHMEM.
- Como instalar ucc?
- Clone o repositório e entre nele Gere os scripts de compilação: ./autogen.sh Configure a compilação com o caminho de instalação do UCX: ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> Compile a biblioteca: make
- Onde consigo ucc?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/openucx/ucc
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
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.
Agente de kernels GPU com autoevolução que otimiza kernels CUDA e CuTe DSL, promovendo cada kernel aceito a nova referência.
Plataforma nativa do Kubernetes para treinamento distribuído de modelos de IA e fine-tuning de LLMs com PyTorch, JAX, XGBoost e outros frameworks.
Implementação oficial do FlashAttention, um kernel de atenção exata e eficiente em memória para treinar e executar inferência de modelos Transformer em GPUs.