Meta✴ представила MetaRoCE — новый транспортный RDMA-протокол на базе обычного Ethernet, созданный для крупных ИИ-кластеров. Компания разместила спецификации MetaRoCE, эталонную программную реализацию и набор тестов на соответствие требованиям (Compliance Test Suite, CTS) в рамках OCP, предоставив возможность его внедрения всем желающим. В Meta✴ настаивают на том, что Ethernet должен быть предпочтительной инфраструктурой для ИИ, продемонстрировав, что её реализация RoCE может обеспечивать распределённое обучение ИИ в масштабе, объединяя миллионы GPU.
Компания отметила, что в ходе инференса низкая задержка коммуникации между распределёнными сегментами модели напрямую влияет на время отклика для сотен миллионов пользователей. Даже небольшие сетевые помехи ограничивают вычислительную мощность. Протокол RoCE (RDMA over Converged Ethernet) предполагает, что сеть будет доставлять каждый пакет в определённом порядке, используя PFC и препятствуя распылению пакетов, обеспечивая производительность в многоплоскостных и крупномасштабных сетях. При использовании MetaRoCE в строгом выполнении очерёдности передачи данных нет необходимости. Главная задача — обеспечение высокой пропускной способности, низкой задержки в конце очереди распределения и простоты эксплуатации по мере роста сети при увеличении количества ускорителей и расстояний между ними.
Как указано в блоге Meta✴, суть MetaRoCE проста: сетевая фабрика видит пакеты, а сетевая карта (NIC) — намерения. Традиционные архитектуры ориентированы на «ум» фабрики, полагаясь на коммутаторы для обеспечения отсутствия потерь и поддержания порядка. Перенося интеллектуальные функции на конечную точку, MetaRoCE декомпозирует сеть на множество детализированных (мелкозернистых) логических путей, каждый из которых имеет свою собственную телеметрию в реальном времени — время приёма-передачи данных для каждого пути (Per-path RTT), состояние ECN и загрузку. Такая прозрачность открывает возможности, которые трудно достичь с помощью традиционного RDMA.
MetaRoCE распределяет пакеты по множеству путей, поэтому они поступают не в том порядке, в каком были отправлены. Транспортный уровень рассматривает неупорядоченное поступление как обычный случай. Каждый пакет имеет свой адрес назначения, а данные записываются непосредственно в конечную область памяти по мере их поступления, без буфера переупорядочивания и блокировок. При этом MetaRoCE всегда рассматривает Ethernet-фабрику как систему с потерями и не требует от неё иного поведения. Прикладной уровень практически не затрагивается — существующие RDMA-«глаголы» и программные стеки работают без изменений, а дополнительные функции поддерживаются с помощью расширений стандартных API.
MetaRoCE предоставляет каждому соединению несколько путей и распределяет по ним пакет за пакетом. Каждый путь имеет свой уникальный исходный UDP-порт в качестве энтропии ECMP, который сетевая карта может изменить в любой момент, чтобы перенаправить трафик с неподходящего маршрута. Выбор пути пакета полностью зависит от NIC, так что и эффективность работы всей фабрики зависит от NIC. Оценка каждого пути позволяет явно отличить перегрузку и от сбоя, и сделать перебалансировку, избавившись от плохо работающего пути без обрыва соединение целиком и с возможностью переотправки ровно того пакета, который потерялся из-за сбоя или перегрузки.
MetaRoCE сочетает в себе традиционный ECN-контроль перегрузки с AIMD у отправителя с обратной связью со стороны получателя, который при каждом ACK уведомляет отправителя о выделенной ему доле из общей доступной получателю полосы. MetaRoCE запрашивает у фабрики олько две функции, которые уже есть в каждом коммутаторе: ECN и ECMP. Протокол Meta✴ не требует обрезки пакетов, внутрисетевой телеметрии, управления потоком на основе кредитов или распыления пакетов на стороне коммутатора, но и наличие этих функций не мешает работе протокола. MetaRoCE совместим практически с любыми топологиями, в том числе с сегментами в облачных системах, конфигурацию которых нельзя контролировать. В протоколе нет проприетарных компонентов, поэтому фабрика может свободно оптимизироваться с точки зрения стоимости и кабельной разводки.
Очередь отправки и очередь приёма (Queue Pair, QP) отвечают как за упорядоченный поток сообщений, так и за пропускную способность. Традиционный RDMA получает больше того или другого путём открытия большего количества QP (по несколько десятков на каждую пару узлов), не знающих ничего ни о друг друге в плане перегрузки, ни об их состоянии в NIC. MetaRoCE использует одно соединение для множества независимых упорядоченных потоков (в т.ч. по одному на каждую коллективную операцию), использующее множественные пути под управлением одного контроллера перегрузки.
Чтобы ускорить проверку аппаратного обеспечения, Meta✴ совместно с AMD реализовала MetaRoCE на DPU Pensando. На 64-узловом кластере GPU AMD, работающем под управлением RCCL, компании напрямую сравнили MetaRoCE с RoCEv2 при выполнении коллективных операций All-Reduce и All-to-All.
Результаты, как утверждает Meta✴, соответствуют поставленным целям:
- MetaRoCE стабильно обеспечивал более высокую пропускную способность и меньшее время завершения потока по сравнению с RoCEv2.
- При потере пакетов, когда пропускная способность RoCEv2 снижается, MetaRoCE сохраняет около 86 % пропускной способности при потере 1 % пакетов и продолжает обеспечивать полезную пропускную способность даже при экстремальной потере 10 % пакетов, плавно снижаясь, а не коллапсируя.
- Multiplane-топология с 4 и 8 независимым физическими подключениями к коммутаторам для каждого NIC с поддержкой до 4000 одновременных подключений подтвердила, что пропускная способность линейно зависит от количества плоскостей.
- При имитации сбоев на отдельных физических подключениях в сценарии выше протокол демонстрирует плавное автономное восстановление — трафик перераспределяется без участия приложения или вмешательства оператора.
Эти результаты подтверждают правильность выбора, сделанного при разработке MetaRoCE, отметила Meta✴. Благодаря тому, что протокол с самого начала разрабатывался с учётом возможных потерь пакетов, а интеллектуальные функции вынесены на периферию, он обеспечивает более высокую производительность в идеальных условиях и плавно снижает нагрузку при сбоях. Компания подчеркнула, что протокол MetaRoCE является открытым, его спецификации добавлены в OCP, и любой поставщик может с их помощью создать и реализовать совместимое оборудование. Впрочем, во многом похожий протокол MRC (Multipath Reliable Connection) также передан в OCP, да и Ultra Ethernet тоже решает схожие задачи.
Источник:
