# 約 13 万個の GPU を 2 段のスイッチでつなぐ新プロトコル MRC！

やっほー、しぃちゃんだよ！今日はね、GPU を何万台もつなぐ「スパコンのネットワーク」のお話なの。ふだんは表に出てこない配線の世界だけど、これがめちゃくちゃ賢い工夫でできてて、読んでてわくわくしちゃった！

## なにが発表されたの？

OpenAI が、AMD・Broadcom・Intel・Microsoft・NVIDIA と一緒に、大規模な AI 学習クラスタ向けの新しいネットワークプロトコル MRC（Multipath Reliable Connection）を発表したよ。これは OpenAI の News からのニュース。しかも仕様を独占しないで、Open Compute Project で [MRC として公開](https://www.opencompute.org/documents/ocp-mrc-1-0-pdf) されたの。みんなで使える標準にしていく方針なんだって。

## なぜ重要なの？

AI モデルの学習ではね、たくさんの GPU が息を合わせてデータをやり取りするの。でも、そのうちの 1 本の転送が遅れるだけで、ジョブ全体に波及して GPU が手待ちになっちゃう。しかも規模が大きくなるほどネットワークの故障は日常茶飯事で、これまでは 1 個の障害で学習ジョブがまるごと落ちたり、数秒〜数十秒も止まったりしてたの。混雑・リンク障害・機器故障が、遅延のいちばん多い原因なんだって。

## これで何が変わるの？

MRC を入れると、その「詰まり」や「壊れ」があっても GPU たちが止まらずに動き続けられるようになるの。実際の学習中、tier-0 と tier-1 のスイッチの間で毎分何度もリンクがパタパタ切れてたのに、MRC のおかげで測定できるような影響はゼロだったんだって。tier-1 スイッチの再起動も、前は学習チームと慎重に段取りを合わせる必要があったのに、MRC では調整すらいらなかったそう。

## 深く潜ってみよう

しくみは大きく 3 本立て。

まずは「マルチプレーン」。1 つの 800Gb/s のインターフェースを、100Gb/s ずつ 8 台のスイッチに分けてつなぐの。こうすると 8 枚の並列な「面（プレーン）」ができて、約 131,000 個の GPU をたった 2 段のスイッチでつなげちゃう。ふつうなら 3〜4 段いるところなのに、段数が減るぶん電力も部品も節約できるってわけ。

次は「アダプティブ・パケットスプレー」。1 つの転送を単一の経路に固定しないで、パケットを何百もの経路にバラまいて、全部のプレーンに散らすの。バラバラの順で届くけど、パケットには宛先のメモリアドレスが入ってるから正しく組み立てられる。混雑の誤検知を減らす「パケットトリミング」も使ってるよ。

最後は「ソースルーティング（SRv6）」。BGP みたいな動的ルーティングをやめて、送り主がパケットのヘッダにスイッチの識別子を書き込んで経路そのものを指定するの。スイッチ側は最初に一度セットした静的なルーティングテーブルを使うだけ。だから障害を見つけて別の経路に切り替えるのが、従来の数秒〜数十秒じゃなくて「マイクロ秒」の速さでできちゃうの。

土台には RDMA over Converged Ethernet（RoCE）を拡張して使っていて、Ultra Ethernet Consortium の技術も取り入れてるよ。もっと詳しく知りたい子は、技術ペーパーの [Resilient AI Supercomputer Networking using MRC and SRv6](https://cdn.openai.com/pdf/resilient-ai-supercomputer-networking-using-mrc-and-srv6.pdf) を読んでみてね。

ちなみに MRC は、もう OpenAI のいちばん大きな NVIDIA GB200 スパコン全部に入ってるの。[Stargate](https://openai.com/index/building-the-compute-infrastructure-for-the-intelligence-age/) の一環で、テキサス州アビリーンの Oracle Cloud Infrastructure（OCI）や Microsoft の Fairwater スパコンでも動いていて、すでに複数の OpenAI モデルの学習に使われたんだって。

## まとめ

- MRC は OpenAI が 5 社と作った、大規模 AI 学習向けの新ネットワークプロトコル。Open Compute Project で公開済み
- マルチプレーンで約 131,000 個の GPU を 2 段のスイッチに。段数が減って電力も部品も節約
- パケットを何百もの経路にスプレーして、混雑やスループットのばらつきをほぼ解消
- SRv6 の静的経路で、障害の検知と再ルートをマイクロ秒で。リンクがバタついても学習は止まらない

ネットワークやインフラをやってる人、大規模学習の運用に興味がある人にはたまらない話だと思うよ。手元ですぐ試すものじゃないけど、「何万台の GPU をどう止めずに走らせるか」の設計思想がぎゅっと詰まってて、読むだけでも勉強になるの！
