中文翻译暂不可用,显示俄语原文。
Как работает NVLink Switch System на DGX H100?
Краткий тезис
NVLink Switch System — это полностью связанная (fully-connected) неблокирующая сеть между GPU в сервере DGX H100, обеспечивающая пропускную способность 900 ГБ/с на каждый GPU. Она построена на четырёх коммутаторах NVSwitch четвёртого поколения, которые соединяют восемь GPU H100 в единое адресное пространство, критически важное для parallelism|tensor parallelism и других стратегий распределённого обучения больших языковых моделей.
1. Термин: NVLink Switch System
NVLink — это высокоскоростной протокол прямой связи между GPU, разработанный NVIDIA. В отличие от традиционных сетевых интерфейсов (PCIe, InfiniBand), NVLink обеспечивает значительно меньшую задержку и большую пропускную способность за счёт прямых соединений «точка-точка».
NVSwitch — это аппаратный коммутатор (switch), который агрегирует множество NVLink-линков и позволяет организовать топологию «каждый с каждым» (all-to-all) без блокировок. В DGX H100 используются четыре таких коммутатора.
DGX H100 — это интегрированный сервер NVIDIA, содержащий восемь ускорителей H100 (Hopper), объединённых через NVLink Switch]] System. Он предназначен для обучения и инференса больших моделей.
NVLink Switch]] System — это совокупность NVLink-линков и NVSwitch, образующих единую высокоскоростную сеть внутри одного DGX-узла.
2. Зачем нужна высокоскоростная связь между GPU
При обучении больших моделей (например, GPT-3 с 175B параметров) одна GPU не может уместить всю модель. Используются стратегии распределённого обучения:
- parallelism|Tensor Parallelism (TP) — разрезание тензоров (весов) по разным GPU; требует постоянного обмена промежуточными активациями и градиентами на каждом шаге.
- Pipeline Parallelism (PP) — разбиение модели на последовательные стадии; обмен данными между стадиями.
- Data Parallelism (DP) — копирование модели на каждую GPU, обмен градиентами после каждого шага.
Для TP и PP критична низкая задержка и высокая пропускная способность между GPU внутри одного узла. NVLink Switch System обеспечивает это, позволяя эффективно масштабировать обучение.
3. Архитектура DGX H100: 8 GPU, 4 NVSwitch
Внутри DGX H100:
- 8 GPU H100 (Hopper) с поддержкой NVLink 4.0.
- 4 NVSwitch четвёртого поколения.
- Каждый NVSwitch имеет 64 порта NVLink 4.0 (каждый порт — 100 ГБ/с в каждую сторону).
- Каждая GPU подключена к каждому NVSwitch четырьмя линками NVLink (4 линка × 100 ГБ/с = 400 ГБ/с на один NVSwitch). Поскольку NVSwitch четыре, суммарная пропускная способность от GPU к коммутаторам — 4 × 400 = 1600 ГБ/с, но это дуплексная величина. В одном направлении — 900 ГБ/с (8 линков × 112.5 ГБ/с? Уточним: NVLink 4.0 — 112.5 ГБ/с на линк в каждую сторону; 8 линков на GPU дают 900 ГБ/с полного дуплекса). NVIDIA заявляет 900 ГБ/с на GPU в обе стороны суммарно.
Физическая топология: каждый GPU соединён с каждым NVSwitch четырьмя линками. Все NVSwitch соединены между собой? В DGX H100 NVSwitch не соединены напрямую — они работают как единый логический коммутатор через внутреннюю архитектуру. Это обеспечивает полную связность.
4. Топология: Fully-connected non-blocking network
Fully-connected означает, что любая пара GPU может обмениваться данными напрямую через коммутаторы без необходимости проходить через другие GPU.
Non-blocking — сеть, в которой одновременная передача данных между любыми парами GPU не приводит к конфликтам и снижению пропускной способности. Каждый NVSwitch имеет достаточно внутренней пропускной способности, чтобы обслуживать все порты одновременно.
В результате для tensor parallelism с 8 GPU (размерность TP=8) все обмены происходят на полной скорости NVLink, без узких мест. Это ключевое преимущество DGX H100 перед кластерами, где GPU соединены только через InfiniBand или Ethernet.
5. Пропускная способность: 900 ГБ/с на GPU
Каждая GPU H100 имеет 18 NVLink-линков четвёртого поколения (но в DGX H100 используется 8 линков на GPU, остальные зарезервированы для межузловых соединений? На самом деле в DGX H100 каждая GPU использует 8 линков для внутриузловой связи, а остальные 10 линков — для NVLink Switch System между узлами? Уточнение: H100 поддерживает до 18 линков NVLink 4.0. В DGX H100 для внутриузловой связи задействовано 8 линков на GPU, что даёт 8 × 112.5 ГБ/с = 900 ГБ/с полного дуплекса. Остальные 10 линков могут использоваться для соединения с другими DGX через NVLink Switch System (NVLink 4.0 поддерживает масштабирование до 256 GPU через внешние NVSwitch). Таким образом, внутри одного DGX H100 пропускная способность между GPU — 900 ГБ/с.
Сравнение с PCIe Gen5 x16: ~64 ГБ/с (в дуплексе). NVLink быстрее примерно в 14 раз.
6. Сравнение с предыдущими поколениями
| Параметр | DGX A100 (Ampere) | DGX H100 (Hopper) |
|---|---|---|
| Количество GPU | 8 × A100 | 8 × H100 |
| Версия NVLink | NVLink 3.0 | NVLink 4.0 |
| Пропускная способность на GPU | 600 ГБ/с (12 линков × 50 ГБ/с) | 900 ГБ/с (8 линков × 112.5 ГБ/с) |
| Количество NVSwitch | 6 × NVSwitch 3 | 4 × NVSwitch 4 |
| Топология | Fully-connected, non-blocking | Fully-connected, non-blocking |
| Поддержка межузлового NVLink | Через NVSwitch 3 (до 8 узлов) | Через NVSwitch 4 (до 32 узлов) |
DGX H100 не только увеличил пропускную способность на 50%, но и уменьшил количество коммутаторов (6→4) за счёт более высокой плотности портов NVSwitch 4.
7. Роль в распределённом обучении
Tensor Parallelism (TP)
При TP=8 каждый слой модели разрезан на 8 частей. На каждом шаге forward/backward требуется all-reduce или reduce-scatter по активациям/градиентам. NVLink Switch System обеспечивает bandwidth в 900 ГБ/с, что делает all-reduce почти бесплатным по времени.
Pipeline Parallelism (PP)
При PP данные передаются между стадиями модели. Если стадии расположены на разных GPU внутри одного DGX, задержка NVLink (~1-2 мкс) значительно ниже, чем через InfiniBand (~5-10 мкс).
Data Parallelism (DP)
При DP градиенты усредняются между всеми GPU. All-reduce по 8 GPU через NVLink выполняется за микросекунды, что позволяет эффективно масштабировать batch size.
Fully Sharded Data Parallelism (FSDP)
FSDP использует комбинацию TP, PP и DP. NVLink Switch System критичен для TP, так как TP требует наибольшей пропускной способности.
8. Программная поддержка: NCCL и NVLink
NCCL (NVIDIA Collective Communications Library) — библиотека, реализующая коллективные операции (all-reduce, all-gather, reduce-scatter) с оптимизацией под NVLink и InfiniBand. NCCL автоматически определяет топологию NVLink и выбирает оптимальные маршруты.
При использовании NVLink Switch System NCCL может выполнять all-reduce на 8 GPU с пропускной способностью, близкой к пиковой (900 ГБ/с). Для сравнения, all-reduce через InfiniBand (200 ГБ/с) будет в 4-5 раз медленнее.
Пример кода для проверки пропускной способности NVLink (с использованием NCCL тестов):
# Установка nccl-tests
git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests
make
# Запуск all-reduce на 8 GPU
./build/all_reduce_perf -b 8 -e 128M -f 2 -g 8
Результат покажет пропускную способность в ГБ/с.
9. Ограничения и альтернативы
Ограничения
- Внутри одного узла: NVLink Switch System работает только внутри DGX H100. Для соединения нескольких DGX требуется внешняя сеть (InfiniBand или NVLink Switch System между узлами через внешние NVSwitch).
- Стоимость: DGX H100 — дорогое решение (~$300k). Не все организации могут позволить себе такие кластеры.
- Энергопотребление: 8 GPU H100 + NVSwitch потребляют ~10 кВт.
Альтернативы
- InfiniBand NDR 400: 400 ГБ/с на порт, но с большей задержкой (5-10 мкс) и меньшей пропускной способностью на GPU (обычно 200-400 ГБ/с после деления).
- Ethernet с RoCE: дешевле, но задержка выше, пропускная способность ниже.
- Google TPU Pods: собственные interconnect (ICI) с похожей производительностью, но закрытая экосистема.
Для tensor parallelism NVLink остаётся безальтернативным выбором внутри узла.
10. Пет-проект для закрепления
Задача: Измерить пропускную способность NVLink на DGX H100 и сравнить с InfiniBand.
Инструменты:
- Доступ к DGX H100 (или симуляция на обычном сервере с несколькими GPU через NVLink, например, на DGX A100 или RTX 4090 с NVLink bridge).
- NCCL-tests.
- Python с PyTorch Distributed.
Шаги:
- Установите nccl-tests на DGX H100.
- Запустите all_reduce_perf для 8 GPU с размерами сообщений от 8 байт до 128 МБ.
- Запишите пропускную способность (ГБ/с) для каждого размера.
- Повторите тест, используя только InfiniBand (отключив NVLink через переменную окружения
NCCL_NET=IB). - Постройте график зависимости пропускной способности от размера сообщения.
- Объясните, почему для маленьких сообщений (до 1 МБ) NVLink даёт преимущество в задержке, а для больших — в пропускной способности.
Ожидаемый результат: Вы увидите, что NVLink обеспечивает ~900 ГБ/с для больших сообщений, а InfiniBand — ~200-400 ГБ/с. Для маленьких сообщений разница в задержке составит 2-3 мкс против 10 мкс.
11. Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 315 | Tensor Parallelism: как разрезать модель на GPU |
| 316 | Pipeline Parallelism: стадии и батчи |
| 317 | Сравнение NVLink и InfiniBand для распределённого обучения |
| 318 | Архитектура DGX A100 vs H100 |
| 319 | Роль NCCL в коллективных операциях |
| 320 | FSDP и его зависимость от interconnect |
12. Навигация
- Предыдущий: 313
- Следующий: 315
- Индекс: 00. Индекс разборов
Навигация
- Предыдущий: 313
- Следующий: 315
- Индекс: 00. Индекс разборов