Облачные провайдеры GPU с NVLink или InfiniBand
Высокоскоростные межсоединения GPU, такие как NVLink (до 900 ГБ/с) и InfiniBand (до 400 Гб/с), необходимы для эффективного обучения с несколькими GPU и несколькими узлами. Без быстрого межсоединения синхронизация градиентов становится узким местом в распределённом обучении, значительно снижая эффективность масштабирования. В этом руководстве перечислены провайдеры, предлагающие подключение NVLink или InfiniBand для своих GPU-инстансов.
United States Что на самом деле делают NVLink и InfiniBand при аренде вычислительных ресурсов с несколькими GPU
NVLink и InfiniBand решают одну и ту же фундаментальную задачу, но с двух разных сторон машины: обеспечивают передачу данных между GPU с такой скоростью, чтобы ускорители тратили время на вычисления, а не на ожидание. Фильтр выше сужает список до облачных инстансов, которые предоставляют один или оба этих интерфейса. Они не взаимозаменяемы — один представляет собой внутриузловую сеть, связывающую GPU внутри одного сервера, а другой — межузловую сеть, объединяющую серверы в кластер. Для любой задачи, охватывающей более одного GPU, наличие такого соединения часто определяет разницу между почти линейным масштабированием и ситуацией, когда добавление GPU практически не помогает.
NVLink: скоростная магистраль между GPU внутри одного корпуса
NVLink — это прямое соединение GPU от NVIDIA. Вместо маршрутизации трафика через шину PCIe и CPU, NVLink соединяет GPU друг с другом (а на некоторых платформах — через коммутатор NVSwitch), так что каждый GPU в узле может общаться с каждым другим GPU с высокой пропускной способностью и низкой задержкой. Практический результат при аренде инстанса с NVLink:
- Гораздо более высокая пропускная способность между GPU по сравнению с узлами только на PCIe, что важно, когда на каждом шаге нужно обмениваться градиентами, активациями или частями модели.
- Объединённая память между GPU на практике — модель, слишком большая для видеопамяти одного GPU, может быть распределена по домену NVLink, при этом трафик между GPU остаётся на быстрой сети, а не ползёт по PCIe.
- Меньшие накладные расходы на синхронизацию для коллективных операций, таких как all-reduce, которые доминируют при обучении с параллелизмом данных.
NVLink работает внутри одного узла, поэтому его охват обычно составляет 2, 4 или 8 GPU в зависимости от конструкции сервера. Если провайдер из списка выше предлагает 8-GPU узел «с NVLink», это значит, что эти восемь карт тесно связаны. Это само по себе ничего не говорит о том, как этот узел соединён с другими узлами.
InfiniBand: сеть, превращающая множество серверов в один кластер
InfiniBand — это сетевая технология для соединения отдельных серверов с GPU. Когда задачи обучения выходят за пределы одного узла, узким местом становится связь между узлами, и обычный Ethernet может тормозить работу GPU. InfiniBand решает эту проблему за счёт очень высокой пропускной способности каждой линии, низкой и предсказуемой задержки, а также RDMA (прямой удалённый доступ к памяти), который позволяет одному серверу читать или записывать память другого сервера без участия CPU с обеих сторон. В сочетании с GPUDirect RDMA данные могут перемещаться от GPU к GPU между узлами, практически обходя копирование через память хоста.
Для обучения на нескольких узлах именно это обеспечивает эффективное масштабирование. Причина, по которой кластер из десятков или сотен GPU может обучать большую модель за разумное время, — это то, что межузловая сеть справляется с коллективной коммуникацией, требуемой алгоритмом. При использовании обычных сетей та же задача может проводить большую часть времени ожидания в сети.
Какие задачи действительно нуждаются в этом
Фильтрация по NVLink или InfiniBand имеет смысл, когда коммуникации, а не только вычисления, являются критическим фактором:
- Обучение и дообучение больших моделей, которые распределяют параметры, состояние оптимизатора или слои между GPU (тензорный, конвейерный или полностью шардированный параллелизм данных) — такие схемы генерируют постоянный меж-GPU трафик и получают наибольшую выгоду от NVLink внутри узла и InfiniBand между узлами.
- Распределённое обучение на нескольких узлах, когда задача просто не помещается в один сервер — здесь InfiniBand решающий фактор для эффективности масштабирования.
- Вычислительные и научные симуляции с интенсивной межпроцессной коммуникацией, которые уже много лет используют InfiniBand и RDMA.
- Инференс с большим контекстом или большой моделью, который распределяет одну модель по нескольким GPU, где NVLink снижает задержки при доступе к весам и вниманию между GPU.
Для задач на одном GPU это действительно избыточно. Дообучение небольшой модели, пакетный инференс, помещающийся на одной карте, большинство задач рендеринга и эксперименты прекрасно работают на отдельном GPU. Платить премию за тесно связанную ноду или кластер с InfiniBand не имеет смысла, если ваша задача не выходит за пределы одного GPU.
Что проверить перед арендой
Два интерфейса часто путают в маркетинговых материалах, поэтому сверяйтесь с приведённым выше сравнением:
- Охват — уточните, означает ли объявление NVLink (связь GPU внутри узла) или InfiniBand (сеть между узлами). Инстанс с одним узлом может иметь NVLink и не иметь InfiniBand вовсе.
- Топология и ширина — сколько GPU входят в домен NVLink (полный NVSwitch all-to-all или частичные мосты), а также скорость InfiniBand и включён ли RDMA/GPUDirect.
- Поколение — более новые поколения GPU поддерживают NVLink с большей пропускной способностью; просто метка «NVLink» не говорит о скорости.
- Доступность для нескольких узлов — можно ли действительно зарезервировать несколько связанных узлов и попадают ли они в одну сеть, а не разбросаны по дата-центру.
- Поддержка программного обеспечения — чтобы NCCL, MPI и ваш фреймворк видели и использовали сеть; при неправильной настройке происходит тихий откат на медленные пути.
По стоимости и доступности инстансы с богатой связью находятся в верхнем ценовом сегменте. Узлы с NVLink и кластеры с InfiniBand используют премиальное оборудование и пользуются стабильным спросом, поэтому on-demand ресурсы ограничены, а спотовые или прерываемые опции встречаются реже, чем для одиночных GPU. Особенно часто выделения InfiniBand для нескольких узлов имеют ограничения, резервируются или продаются крупными блоками. Рассматривайте цены в таблице выше как актуальные, так как ставки меняются и зависят от провайдера.
Часто задаваемые вопросы
Нужны ли мне оба интерфейса — NVLink и InfiniBand?
Это зависит от масштаба. Задача на нескольких GPU в одном узле требует только NVLink. Как только обучение охватывает несколько серверов, вам также нужен InfiniBand для связи между узлами — они работают на разных уровнях, поэтому крупный кластер обычно использует NVLink внутри каждого корпуса и InfiniBand между корпусами.
Ускорит ли мою задачу на одном GPU инстанс с NVLink или InfiniBand?
Нет. Оба интерфейса важны только при передаче данных между GPU или между узлами. Задача, помещающаяся на одном GPU, никогда не использует эти сети, поэтому вы будете платить премию за ресурсы, которые не сможете использовать. Фильтруйте по ним только при масштабировании более чем на один GPU.
Почему интерфейс важнее характеристик одного GPU для больших задач обучения?
Распределённое обучение тратит большую часть каждого шага на обмен градиентами и активациями. Если сеть не справляется, GPU простаивают в ожидании синхронизации, и добавление GPU даёт всё меньший эффект. Быстрая сеть сохраняет почти линейное масштабирование при добавлении ускорителей.
Доступен ли NVLink на каждом инстансе с несколькими GPU?
Нет. Некоторые узлы с несколькими GPU соединяют карты только через PCIe, который имеет гораздо меньшую пропускную способность между GPU. Наличие нескольких GPU не гарантирует NVLink, поэтому уточняйте интерфейс явно в сравнении выше, а не полагайтесь на количество GPU.