На что влияет сеть между узлами GPU-кластера при обучении
Какой трафик возникает при обучении, как считается полоса на ускоритель, чем различаются варианты сетевой части и как проверить эффективность масштабирования.
В кластере из нескольких серверов с ускорителями обучение модели идёт синхронно: после каждого шага узлы обмениваются градиентами и ждут, пока обмен завершится у всех. Пока идёт обмен, вычислители простаивают. Поэтому сеть между узлами определяет не удобство администрирования, а долю времени, которую ускорители реально считают. При слабой сети кластер из восьми узлов работает как пять, и разница видна сразу на времени обучения.
Разберём, какой трафик возникает при обучении, как считается требуемая полоса на ускоритель, чем различаются варианты сетевой части и какие данные нужны для расчёта кластера на ускорителях NVIDIA или MetaX.
Какой трафик возникает при обучении
- Обмен градиентами. Основной поток. При распределении по данным каждый узел считает свою часть выборки, после чего результаты суммируются по всем ускорителям. Объём обмена зависит от числа параметров модели, а не от размера выборки.
- Обмен активациями. Возникает, когда модель не вмещается в память одного ускорителя и разделяется между несколькими. Этот обмен чувствителен к задержке сильнее, чем обмен градиентами.
- Загрузка данных. Чтение обучающей выборки из хранилища. Идёт параллельно вычислениям и мешает основному обмену, если использует ту же сеть.
- Контрольные точки. Периодическая запись состояния модели. Кратковременно создаёт высокую нагрузку на хранилище и на сеть.
- Служебный трафик. Управление, мониторинг, журналирование. Объём невелик, но его отделяют от основного обмена, чтобы он не попадал под задержки.
- Инференс. При эксплуатации обученной модели межузловой обмен обычно много меньше, и требования к сети снижаются — за исключением больших моделей, разделённых между узлами.
Как считается полоса
- Внутри узла. Ускорители в одном сервере соединяются высокоскоростной внутренней шиной. Её полоса на порядок выше внешней сети, поэтому обмен внутри узла не является ограничением.
- Между узлами. Полоса считается на каждый ускоритель, а не на сервер. Ориентир для обучения — от 100 Гбит/с на ускоритель для крупных моделей и от 25–50 Гбит/с для задач меньшего масштаба.
- Число адаптеров. Из требуемой полосы следует число сетевых адаптеров в узле. Для сервера с восемью ускорителями это несколько адаптеров, а не один.
- Полоса коммутатора. Проверяется неблокирующая работа: суммарная полоса портов вверх должна соответствовать полосе портов к узлам.
- Отдельная сеть хранения. Загрузка данных выносится в отдельную сеть или в отдельные адаптеры, чтобы чтение выборки не конкурировало с обменом градиентами.
- Эффективность масштабирования. Итоговый показатель: доля производительности, сохраняемая при росте числа узлов. Именно она показывает, оправдана ли выбранная сеть.
Варианты сетевой части
| Параметр | Обычная сеть Ethernet | Ethernet с прямым доступом к памяти | Выделенная сеть с низкой задержкой |
|---|---|---|---|
| Где применяется | один-два узла, инференс | кластеры до нескольких десятков узлов | крупные обучающие кластеры |
| Задержка | высокая | низкая при правильной настройке | наименьшая |
| Загрузка процессора | значительная | малая | малая |
| Требования к настройке | минимальные | управление перегрузками обязательно | настройка фабрики |
| Стоимость на узел | низкая | средняя | высокая |
| Совместимость с имеющейся сетью | полная | частичная | отдельная инфраструктура |
| Что ограничивает | задержка и потери | настройка управления потоком | бюджет |
Топология и потери на перегрузках
- Один коммутатор. Простейший вариант для кластера, целиком укладывающегося в число портов одного устройства. Нет переходов между уровнями и связанных с ними задержек.
- Двухуровневая схема. При росте числа узлов ставится уровень агрегации. Полоса между уровнями рассчитывается так, чтобы не создавать сужения.
- Раздельные плоскости. Адаптеры узла подключаются к разным коммутаторам, и обмен между одинаковыми по порядку ускорителями идёт в своей плоскости. Это снижает число конфликтов на портах.
- Управление перегрузками. На сети Ethernet требуется настройка приоритетов и уведомлений о перегрузке: без неё потери пакетов сводят выигрыш от полосы к нулю.
- Длины трасс. Внутри стойки применяются кабельные сборки прямого подключения, между стойками — оптика. От длины зависит выбор модулей и итоговая стоимость сетевой части.
- Проверка на нагрузке. Кластер принимается не по паспортным цифрам, а по измерению коллективных операций обмена и по эффективности масштабирования на реальной задаче.
Что учитывать помимо сети
- Хранилище. Скорость чтения выборки должна поддерживать загрузку всех ускорителей; иначе сеть не является узким местом, а простаивают вычислители.
- Питание и охлаждение стойки. Плотность мощности определяет, сколько узлов встанет в одну стойку и какие длины кабелей потребуются.
- Программная часть. Библиотеки коллективных операций и их настройка влияют на результат не меньше, чем оборудование.
- Единообразие узлов. Разные конфигурации в одном кластере приводят к тому, что скорость шага определяется самым медленным узлом.
- Запас на расширение. Свободные порты и запас по полосе между уровнями закладываются заранее: добавление узлов в работающий кластер не должно требовать перестройки фабрики.
- Складской запас. Оптические модули и кабельные сборки держатся на объекте, замена модуля — наиболее частая операция обслуживания.
Что прислать для расчёта
- Тип задачи: обучение с нуля, дообучение, инференс.
- Размер модели по числу параметров и планируемый способ распределения по ускорителям.
- Число узлов и ускорителей в узле, планируемый рост.
- Объём обучающих данных и требуемую скорость чтения.
- Наличие действующей сетевой инфраструктуры и её параметры.
- Доступную мощность на стойку и способ охлаждения.
- Требования к срокам поставки и порядку ввода в работу.
Частые вопросы
Можно ли собрать кластер на обычной сети Ethernet? Для двух-трёх узлов и небольших моделей — да. При большем числе узлов задержка и потери пакетов приводят к тому, что добавление узла почти не сокращает время обучения.
Сколько полосы нужно на один ускоритель? Для крупных моделей ориентируются на 100 Гбит/с и выше, для задач меньшего масштаба достаточно 25–50 Гбит/с. Точное значение считается по объёму обмена градиентами и по времени шага.
Обязательно ли выносить хранилище в отдельную сеть? При обучении на больших выборках — да. Чтение данных создаёт длинные потоки, которые задерживают короткие обмены градиентами.
Что даёт схема с раздельными плоскостями? Снижение числа конфликтов на портах коммутатора и более предсказуемое время обмена. На крупных кластерах это заметно сказывается на эффективности масштабирования.
Как проверить сеть до закупки всего кластера? Собрать пилот из двух-четырёх узлов и измерить время шага и скорость коллективных операций. Полученная эффективность масштабирования переносится на расчёт полной конфигурации.
Влияет ли сеть на инференс? Для моделей, помещающихся в память одного узла, — почти нет. Для больших моделей, разделённых между узлами, требования к задержке остаются высокими.
Что мы делаем
Считаем требуемую полосу по составу модели и числу ускорителей, подбираем сетевую часть, адаптеры, оптику и кабельные сборки, проверяем совместимость с серверными платформами и планируем топологию с запасом на расширение. Комплектуем кластеры на ускорителях NVIDIA и MetaX целиком — с вычислительными узлами, сетью, хранилищем и инфраструктурой стойки.
Пришлите тип задачи, размер модели и планируемое число узлов на sale@tkasiatorg.ru — посчитаем полосу на ускоритель, предложим топологию и дадим спецификацию сетевой части со сроками поставки.

