UCC — библиотека и API для коллективных коммуникаций: она выполняет операции вроде allreduce и broadcast на CPU, GPU и аппаратных ускорителях в задачах HPC и AI.
NVIDIA/nccl
NCCL — библиотека NVIDIA с оптимизированными примитивами обмена данными между GPU, такими как all-reduce и all-gather, для обучения на одном или нескольких узлах.
- Звёзды
- 5,213
- Форки
- 1,473
- Открытые issues
- 466
- Последний коммит
- позавчера
Что это?
NCCL (произносится «Никель») — отдельная библиотека коллективных коммуникационных операций для GPU. Она реализует all-reduce, all-gather, reduce, broadcast и reduce-scatter, а также любые схемы обмена данными на основе send/receive. Библиотека предназначена для задач, в которых множеству GPU нужно быстро обмениваться данными, например для распределённого глубокого обучения.
NCCL оптимизирована для высокой пропускной способности при обмене данными внутри узла через PCIe, NVLink и NVSwitch, а между узлами — через InfiniBand Verbs или сокеты TCP/IP. Библиотека поддерживает произвольное количество GPU на одной машине или на нескольких и работает как в приложениях с одним процессом, так и в многопроцессных приложениях (например, MPI).
В репозитории находится исходный код библиотеки с целями make для её сборки, а также варианты упаковки для Debian, RPM, универсальный tarball и Python wheel. Тесты находятся в отдельном репозитории nccl-tests.
Ключевые возможности
- 01Реализует коллективные операции all-reduce, all-gather, reduce, broadcast и reduce-scatter
- 02Поддерживает произвольное количество GPU внутри одного узла или на нескольких узлах
- 03Использует PCIe, NVLink, NVSwitch, InfiniBand Verbs и сокеты TCP/IP
- 04Работает в приложениях с одним и несколькими процессами (например, MPI)
- 05Собирается из исходного кода или упаковывается в deb, rpm, tarball либо Python wheel
Сценарии использования
- Синхронизация градиентов при распределённом обучении глубоких моделей на нескольких GPU
- Обмен тензорами между множеством GPU в задачах высокопроизводительных вычислений
- Измерение пропускной способности межсоединений с помощью набора тестов nccl-tests
Быстрый старт
- 1
Скачайте официальные сборки NCCL со страницы разработчиков NVIDIA
- 2
Соберите библиотеку из исходного кода
make -j src.build
Что важно знать
- В метаданных лицензия указана неясно, поэтому перед использованием ознакомьтесь с условиями лицензии репозитория.
- Для сборки из исходного кода необходимы установленный CUDA Toolkit и графические процессоры NVIDIA.
В подборках
Темы
Частые вопросы
- Что такое nccl?
- NCCL — библиотека NVIDIA с оптимизированными примитивами обмена данными между GPU, такими как all-reduce и all-gather, для обучения на одном или нескольких узлах. NCCL (произносится «Никель») — отдельная библиотека коллективных коммуникационных операций для GPU. Она реализует all-reduce, all-gather, reduce, broadcast и reduce-scatter, а также любые схемы обмена данными на основе send/receive. Библиотека предназначена для задач, в которых множеству GPU нужно быстро обмениваться данными, например для распределённого глубокого обучения.
- nccl можно использовать бесплатно? Какая у него лицензия?
- nccl распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- nccl всё ещё поддерживается?
- Активно поддерживается. Последний коммит в nccl — 3 нояб. 2026 г..
- Для чего можно использовать nccl?
- Синхронизация градиентов при распределённом обучении глубоких моделей на нескольких GPU Обмен тензорами между множеством GPU в задачах высокопроизводительных вычислений Измерение пропускной способности межсоединений с помощью набора тестов nccl-tests
- Как установить nccl?
- Скачайте официальные сборки NCCL со страницы разработчиков NVIDIA Соберите библиотеку из исходного кода: make -j src.build
- Где скачать nccl?
- Исходный код и инструкции по установке — на GitHub: https://github.com/NVIDIA/nccl
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Расширение NVIDIA для PyTorch с утилитами смешанной точности и распределённого обучения, а также опциональными fusion-ядрами CUDA и C++.
Header-only библиотека на C++20 для тензорных выражений в стиле NumPy, работающих на GPU NVIDIA или многопоточных CPU, с поддержкой слияния ядер.
Эталонные архитектуры, шаблоны и примеры для распределённого обучения и инференса AI на кластерах AWS.
Агент для саморазвития GPU-ядер, оптимизирующий ядра CUDA и CuTe DSL: каждое принятое ядро становится новым эталоном.
Открытая книга и коллекция кода с конспектами по современному CUDA и более чем 200 ядрами для HGEMM, GEMM с FP8/FP4 и Flash-Attention.