MLOps и инструменты 80 просмотров

NCCL

NVIDIA Collective Communications Library

NCCL — библиотека NVIDIA для коллективных операций между GPU. Обеспечивает All-Reduce, All-Gather и другие примитивы, необходимые для распределённого обучения.

Что такое NCCL

NCCL (произносится «никель») — библиотека для эффективного обмена данными между GPU. PyTorch, DeepSpeed и Megatron-LM используют NCCL для синхронизации градиентов и параметров.

Коллективные операции

Операция Что делает Применение
All-Reduce Суммирует и раздаёт всем Градиенты (DDP)
All-Gather Собирает полный тензор Параметры (FSDP/ZeRO-3)
Reduce-Scatter Суммирует по частям Шардинг градиентов
Broadcast Копирует с одного на все Инициализация
All-to-All Каждый — каждому MoE Expert Parallelism

Транспорт

Внутри узла: NVLink → P2P (до 900 GB/s на H100)
Между узлами: InfiniBand → RDMA (до 400 Gbps NDR)

NCCL автоматически строит топологию и выбирает оптимальный путь.

Ключевые переменные

export NCCL_DEBUG=INFO          # Подробные логи
export NCCL_IB_HCA=mlx5_0      # IB-адаптер
export NCCL_SOCKET_IFNAME=eth0  # Сетевой интерфейс
export NCCL_ASYNC_ERROR_HANDLING=1  # Не зависать при ошибках

Типичные проблемы

  • Hanging: зависание на init — firewall, маршрутизация
  • Timeout: увеличить NCCL_IB_TIMEOUT
  • Slow: Socket вместо IB — проверить NCCL_DEBUG=INFO

Связанные термины

Используется в
Требует
Является частью
Включает
Использует
Необходим для

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу