InfiniBand vs RoCEv2: 大規模AI向けネットワーク最適化の選択肢

Towardsdatascience

現代AIの計算の要である大規模言語モデルは、数千ものグラフィックス処理ユニット(GPU)にまたがって学習されることが増えています。しかし、これらのGPU間の膨大なデータ交換量が、処理能力ではなくネットワーク速度のボトルネックを生み出すことがしばしばあります。このような大規模な分散システムでは、わずかな通信遅延でも劇的に累積します。GPUがデータを共有する際の1マイクロ秒の遅延が連鎖反応を引き起こし、学習ジョブに数時間追加されることもあります。この極めて重要な依存性により、高容量のデータ転送と最小限のレイテンシのために設計された特殊なネットワークが必要とされます。

歴史的に、計算ノード間のデータ転送は中央処理装置(CPU)に大きく依存していました。GPUがリモートノードにデータを送信する必要がある場合、そのプロセスは迂遠でした。まずGPUはデータをホストシステムメモリに書き込み、次にCPUがそれをネットワークカードのバッファにコピーし、ネットワークインターフェースカード(NIC)がそれを送信します。受信側では、NICがデータをCPUに渡し、CPUがそれをシステムメモリに書き込み、受信側のGPUが読み取る、という流れでした。この多段階でCPU中心のアプローチは、小規模なシステムには十分でしたが、AIワークロードに求められる規模では、データコピーとCPUの関与が許容できない遅延を引き起こすため、すぐに深刻な障害となりました。

このCPUに起因するボトルネックを回避するために、リモートダイレクトメモリアクセス(RDMA)やNVIDIAのGPUDirectといった技術が開発されました。RDMAは、ローカルマシンがリモートマシンのメモリに直接アクセスすることを可能にし、データ転送にCPUを介在させません。ネットワークインターフェースカードがすべてのメモリ操作を独立して処理するため、中間データコピーが排除され、レイテンシが大幅に削減されます。この直接メモリアクセスは、数千ものGPUがオペレーティングシステムのオーバーヘッドやネットワーク遅延を回避して勾配情報を効率的に共有する必要があるAI学習環境で特に価値があります。GPUDirectはこの概念を拡張し、GPUがPCIe接続を介して他のハードウェアと直接通信できるようにし、システムメモリとCPUを完全にバイパスします。GPUDirect RDMAは、NICがネットワーク転送のためにGPUメモリに直接アクセスできるようにすることで、さらにこれを拡張します。この直接通信パラダイムは、膨大な速度を処理できるネットワークを要求し、今日、InfiniBandとRoCEv2という2つの主要な選択肢が登場しています。これら2つの間の決定は、純粋な速度、予算制約、および手動でのネットワークチューニングを行う意欲の間で重要なバランスを取ることを強いられます。

InfiniBandは、データセンターやスーパーコンピューティングの要求の厳しい環境向けに特別に構築された、専用の高性能ネットワーキング技術です。一般的なトラフィックを処理する標準イーサネットとは異なり、InfiniBandはAIワークロード向けに超高速かつ超低レイテンシを実現するためにゼロから設計されています。これは、列車と線路の両方が最高の速度のためにカスタム設計された高速鉄道システムに似ています。ケーブルやネットワークカード(ホストチャネルアダプタ、またはHCAとして知られる)からスイッチに至るまで、すべてのコンポーネントがデータを迅速に移動させ、あらゆる遅延を避けるように最適化されています。

InfiniBandは通常のイーサネットとは根本的に異なる原理で動作します。従来のTCP/IPプロトコルをバイパスし、代わりに速度と最小限のレイテンシに最適化された独自の軽量トランスポート層に依存します。その核となるのは、InfiniBandがハードウェアでRDMAを直接サポートしていることです。つまり、HCAはオペレーティングシステムを中断したり、余分なデータコピーを作成したりすることなくデータ転送を処理します。また、クレジットベースのフロー制御システムを通じて、トラフィックが重い場合でもパケット損失を防ぐロスレス通信モデルを採用しており、送信側は受信側に十分なバッファスペースがある場合にのみデータを送信します。大規模なGPUクラスターでは、InfiniBandスイッチはノード間でデータを1マイクロ秒未満のレイテンシで移動させることが多く、システム全体がこの目的のために密接に設計されているため、一貫した高スループット通信を保証します。その強みは、比類のない速度、予測可能性、およびRDMAのために特別に構築され、パケット損失を避けるという固有のスケーラビリティにあります。しかし、その弱点も顕著です。ハードウェアは高価であり、主にNVIDIAに縛られているため、柔軟性が制限されます。また、セットアップとチューニングには専門的なスキルが必要であり、管理が難しく、標準的なIPネットワークとの相互運用性も低いです。

対照的に、RoCEv2(RDMA over Converged Ethernet version 2)は、RDMAの利点を従来のイーサネットネットワークにもたらします。RoCEv2は、カスタムのネットワークハードウェアを必要とせず、既存のIPネットワークを活用し、トランスポートにUDPを使用します。このアプローチは、道路システム全体を再構築するのではなく、既存の高速道路に重要なデータ用のエクスプレスレーンを追加するようなものです。使い慣れたイーサネットインフラストラクチャを使用して、高速で低レイテンシの通信を実現します。

RoCEv2は、RDMA書き込みをUDP/IPパケット内にカプセル化することで、専用のファブリックを必要とせずに標準のレイヤー3ネットワークを通過できるようにし、マシン間の直接メモリアクセスを可能にします。商用スイッチやルーターを利用するため、よりアクセスしやすく費用対効果が高いです。InfiniBandとの主な違いは、InfiniBandがその厳密に制御された環境内でフロー制御と輻輳を管理するのに対し、RoCEv2はイーサネットの特定の強化機能に依存して、ほぼロスレスなネットワークを実現することです。これらの強化機能には、優先度フロー制御(PFC)が含まれ、優先度に基づいてイーサネット層でトラフィックを一時停止してパケット損失を防ぎます。明示的輻輳通知(ECN)は、輻輳が検出されたときにパケットを破棄する代わりにマークします。そして、データセンター量子化輻輳通知(DCQCN)は、ECN信号に反応してよりスムーズなトラフィック管理を実現する輻輳制御プロトコルです。最適なRoCEv2パフォーマンスのためには、基盤となるイーサネットネットワークをロスレスまたはほぼロスレスに注意深く構成する必要があり、スイッチ、キュー、フロー制御メカニズムの綿密なチューニングが求められます。その強みには、標準イーサネットハードウェアによるコスト効率、IPベースのネットワーキングに慣れたチームにとっての導入の容易さ、および混合環境での柔軟な統合が含まれます。しかし、パケット損失を避けるためにはPFC、ECN、および輻輳制御の慎重なチューニングが必要です。また、InfiniBandよりも非決定的であり、レイテンシとジッターに潜在的な変動性があり、クラスターがスケールするにつれて、一貫してロスレスなイーサネットファブリックを維持することはますます複雑になります。

最終的に、大規模AIの領域では、ネットワークは単なる導管ではありません。それは、学習の効率と速度を決定するまさにバックボーンです。RDMAやGPUDirect RDMAのような技術は、CPUに起因するボトルネックを排除し、GPUが直接通信できるようにするために不可欠です。InfiniBandとRoCEv2はどちらもGPU間の通信を加速しますが、根本的に異なる経路をたどります。InfiniBandは、特注の専用ネットワークセットアップを構築し、比類のない速度と低レイテンシをかなりのプレミアムで提供します。対照的に、RoCEv2は既存のイーサネットインフラストラクチャを活用することでより大きな柔軟性を提供し、より予算に優しいソリューションを提供しますが、最適なパフォーマンスを達成するためには基盤となるネットワークの綿密なチューニングが必要です。InfiniBandとRoCEv2の間の決定は、古典的なトレードオフに帰着します。比類のない予測可能なパフォーマンスをプレミアム価格で得るか、費用対効果の高い柔軟性を得るために綿密なネットワークチューニングを要求するかです。予算をあまり気にせず、絶対的なピークパフォーマンスを優先する人にとっては、InfiniBandが依然としてゴールドスタンダードです。しかし、既存のイーサネットインフラストラクチャを活用し、コストを管理することが最優先事項である場合、RoCEv2は魅力的で、ただし設定がより集中的な代替手段を提供します。