Meta独自RDMA、パケット損失10%でも稼働

Metaは8月24日、MetaRoCEの設計詳細を公開した。標準的なRoCEを置き換えるために自社で開発したRDMA伝送プロトコルだ。10月開催のOCPグローバルサミットでは、完全な仕様書、libsoftmetaroceという名の参照実装、そして本番運用向けの適合性テストスイートが一括で公開される予定だ。

標準RoCEは10万枚規模で限界を迎える

RoCEはネットワークが各フレームを順序通りに届けることを前提とし、スイッチ側のPFC(プライオリティフローコントロール)によって無損失を保証する設計だ。この前提は数百枚規模のクラスタでは問題なく機能するが、Metaの現在の規模になると綻びが出てくる。

Meta自身の説明によれば、標準的なRoCEはネットワークが各フレームを順序通りに配送することを期待し、PFCに依存し、パケットスプレーイング(複数経路への分散送信)を推奨しない。ところがこのパケットスプレーイングこそが、マルチプレーン構成の大規模ネットワークで性能を引き出す手段だ。ここに矛盾が生まれる。単一フローのパケットを複数経路に同時に振り分けることは、「順序通りの配送」と真っ向から対立するからだ。PFCはホップごとの背圧制御でもあるため、一箇所の輻輳がそのまま上流に伝播し、超大規模になるほど連鎖しやすい。さらにall-reduceのような集合通信は数千個のアクセラレータを同期させる必要があり、最も遅い転送がジョブ全体のペースを決めてしまう。

Metaが挙げる想定シナリオは「複数のデータセンターと地域に分散した数十万枚のGPU」だ。この規模になると、スイッチだけで無損失ネットワークを維持するのは、もはや確率に賭けるようなものになる。

インテリジェンスをNICへ移す

MetaRoCEの設計思想は、一文に凝縮されている。

“The fabric sees packets, but the NIC sees intent.”
(ネットワークが見えるのはパケットだけであり、意図を理解するのはNICだけだ。)

これは具体的な6つの要素に落とし込まれている。ネイティブな順序保証なしの配送——パケットを意図的に複数経路へ分散させ、宛先メモリアドレスへ直接書き込むことで、並べ替えバッファを不要にする。ネイティブなマルチパス——各接続が複数の論理パスを維持し、それぞれが往復遅延とECN状態を個別に追跡する。パケットロスの許容——パケットロスを常態として扱い、PFCを使わずに選択的確認応答のビットマップで欠落を補う。二重の輻輳制御——送信側のAIMDと、受信側の公平配分レートヒントを組み合わせる。トポロジー非依存——ECNマーキングとECMPだけを前提とするため、ファットツリー、マルチプレーン、浅いバッファのスイッチのいずれでも動作する。そして接続の統一——単一のキューが複数の順序付きメッセージストリームと複数のパスを扱い、輻輳制御器を共有する。

64ノードでの実測値

実測は64ノード構成のAMD GPUクラスタ上で行われた。スループットは常にRoCEv2を上回った。パケットロス率1%でもスループットの約86%を維持し、10%のロスでも動作を継続できた。4プレーンおよび8プレーン構成のトポロジーではスループットが線形にスケールし、最大4000の同時接続まで確認された。単一プレーンに障害が起きた場合も、トラフィックは自律的に再分配され、アプリケーション層の介入は不要だった。

64ノードから「数十万枚」までの距離はまだ長い。Metaは残る課題を3つに分けている。ラック内でのスケールアップでは、短いメモリ操作の高速なシグナリングを最適化し、並べ替えバッファとPFCが生むレイテンシを取り除く必要がある。数千キロメートル規模のスケールアクロスでは、ミリ秒単位の往復遅延がある長距離リンク上でパスごとの適応と公平性を実現する必要がある。ストレージとKVキャッシュ用途では、1回の読み取りが複数サーバーへ同時にファンアウトするインキャストに対処するため、受信側のレートヒントを使う計画だ。

オープンソース化はNICベンダー向けの一手

NIC側で検証済みの実装は現時点でAMD Pensandoのみで、他社は対応を進めている段階だという。この一点がMetaRoCEの行方を左右する。プロトコルがどれほど洗練されていても、主要NICのファームウェアに組み込まれなければ、Meta社内だけの仕組みにとどまってしまう。

OCPを通じて公開し、ESUN(Ethernet for Scale-Up Networking)構想と明確に連携させる狙いは分かりやすい。この規格に沿った製品をNICベンダーに出荷させることで、Meta自身の調達の選択肢を広げることだ。イーサネット陣営はこの手をかつて一度使っている。RoCEがInfiniBandからシェアを奪えたのも、イーサネットの生態系が安価で、対応ベンダーが多かったからだ。今度はRoCE自身がボトルネックになった以上、Metaは同じ戦略をもう一度使おうとしている。まず仕様を公開の場に出し、あとはみんなに追随させる、というわけだ。

中国国内でAIコンピューティング基盤を構築するチームにとって、10月に公開される仕様は目を通しておく価値がある。特に「PFCが不要」という部分は重要だ。PFCのチューニングを丸ごと省けるなら、運用上もっとも厄介な問題の種を一つ減らせる。

参考資料:Meta Engineeringブログ、CocoLoop、OCP ESUN関連資料。パケットロス1%で約86%のスループット維持、10%ロスでも動作継続、64ノードのAMD GPUクラスタ、4000同時接続などの数値はMetaが公開した実測結果に基づいて確認済み。