NCCL — библиотека NVIDIA с оптимизированными примитивами обмена данными между GPU, такими как all-reduce и all-gather, для обучения на одном или нескольких узлах.
openucx/ucc
UCC — библиотека и API для коллективных коммуникаций: она выполняет операции вроде allreduce и broadcast на CPU, GPU и аппаратных ускорителях в задачах HPC и AI.
- Звёзды
- 322
- Форки
- 132
- Открытые issues
- 103
- Последний коммит
- позавчера
Что это?
UCC — это библиотека и API для коллективных коммуникаций: обмена данными между процессами, например с помощью allreduce и broadcast, который параллельные программы используют для координации. Она предназначена для задач HPC, AI/ML и ввода-вывода и объединяет в одном интерфейсе поддержку разных моделей программирования и сред выполнения.
Библиотека поддерживает неблокирующие коллективные операции, повторно используемые операции, которые инициализируются один раз и запускаются многократно, а также гибкую модель выделения ресурсов. Аппаратные коллективные операции — один из ключевых элементов архитектуры. UCC использует утилиты UCS из UCX и поддерживает, среди прочего, InfiniBand, RoCE, shared memory, SHARP, CUDA, NCCL, RCCL и MLX5.
UCC можно использовать как компонент коллективных операций для Open MPI. В README приведены параметры mpirun для его включения в программах MPI и OpenSHMEM. Сборка выполняется с помощью autotools; требуется UCX, а поддержка CUDA и HIP необязательна.
Ключевые возможности
- 01Неблокирующие коллективные операции для разных моделей программирования.
- 02Повторно используемые коллективные операции, которые инициализируются один раз и запускаются многократно.
- 03Аппаратные коллективные операции с поддержкой SHARP и транспортов InfiniBand, RoCE и MLX5.
- 04Коллективные операции на GPU с поддержкой CUDA, NCCL, HIP и RCCL.
- 05Интеграция с Open MPI и OpenSHMEM через параметры среды выполнения.
Сценарии использования
- Ускорение allreduce и broadcast в мног узловых приложениях HPC.
- Распределённое обучение AI/ML с использованием коллективных операций на GPU через InfiniBand или RoCE.
- Подключение UCC как бэкенда коллективных операций для программ на Open MPI или OpenSHMEM.
Быстрый старт
- 1
Клонируйте репозиторий и перейдите в его каталог
- 2
Сгенерируйте скрипты сборки
./autogen.sh - 3
Настройте сборку, указав путь установки UCX
./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> - 4
Скомпилируйте библиотеку
make
Что важно знать
- Сначала необходимо собрать и установить UCX.
- В README описана только сборка из исходного кода; установка через менеджер пакетов не рассматривается.
В подборках
Темы
Частые вопросы
- Что такое ucc?
- UCC — библиотека и API для коллективных коммуникаций: она выполняет операции вроде allreduce и broadcast на CPU, GPU и аппаратных ускорителях в задачах HPC и AI. UCC — это библиотека и API для коллективных коммуникаций: обмена данными между процессами, например с помощью allreduce и broadcast, который параллельные программы используют для координации. Она предназначена для задач HPC, AI/ML и ввода-вывода и объединяет в одном интерфейсе поддержку разных моделей программирования и сред выполнения.
- ucc можно использовать бесплатно? Какая у него лицензия?
- ucc распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- ucc всё ещё поддерживается?
- Активно поддерживается. Последний коммит в ucc — 5 нояб. 2026 г..
- Для чего можно использовать ucc?
- Ускорение allreduce и broadcast в мног узловых приложениях HPC. Распределённое обучение AI/ML с использованием коллективных операций на GPU через InfiniBand или RoCE. Подключение UCC как бэкенда коллективных операций для программ на Open MPI или OpenSHMEM.
- Как установить ucc?
- Клонируйте репозиторий и перейдите в его каталог Сгенерируйте скрипты сборки: ./autogen.sh Настройте сборку, указав путь установки UCX: ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> Скомпилируйте библиотеку: make
- Где скачать ucc?
- Исходный код и инструкции по установке — на GitHub: https://github.com/openucx/ucc
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Открытая книга и коллекция кода с конспектами по современному CUDA и более чем 200 ядрами для HGEMM, GEMM с FP8/FP4 и Flash-Attention.
Header-only библиотека на C++20 для тензорных выражений в стиле NumPy, работающих на GPU NVIDIA или многопоточных CPU, с поддержкой слияния ядер.
Агент для саморазвития GPU-ядер, оптимизирующий ядра CUDA и CuTe DSL: каждое принятое ядро становится новым эталоном.
Нативная для Kubernetes платформа для распределённого обучения AI-моделей и дообучения LLM с PyTorch, JAX, XGBoost и другими фреймворками.
Официальная реализация FlashAttention — точного и экономного по памяти attention-ядра для обучения и инференса Transformer-моделей на GPU.