GPU ネットワーキングの概要

AI Hypercomputer は、GPU マシンを使用してマルチホストの AI と ML のワークロードをデプロイするのに役立つスーパーコンピューティング システムです。デプロイで使用する基盤となるネットワーク サービスは、選択した GPU マシンタイプによって決まります。

このドキュメントは、GPU マシンに関連する基盤となるネットワーク サービスを理解するうえで、アーキテクト、ネットワーク エンジニア、デベロッパーを支援することを目的としています。このドキュメントは、クラウド ネットワーキングと分散コンピューティングのコンセプトに関する基本的な知識があることを前提としています。

GPU マシンのネットワーキング サービスを理解することは、ワークロードのデプロイと管理を成功させるための第一歩であり、パフォーマンスとグッドプットを最適化するために不可欠です。グッドプット(有効スループット)は、システムが ML トレーニング タスクで達成した有効な進捗を測定します。この指標は、経過時間の合計やスループット率などの指標と比較すると、より詳細な分析情報が得られます。

一部の GPU マシンタイプには、すべてのレベルで通信を最適化する独自の階層構造が備わっています。この階層は、データセンター ファブリックから AI 最適化クラスタと Compute Engine インスタンスまで及びます。以降のセクションでは、これらの階層コンポーネントについて説明します。

GPU ネットワーク アーキテクチャ

AI Hypercomputer は、階層型のレールに沿ったネットワーク アーキテクチャを使用する GPU マシンのデプロイに役立ちます。この設計の予測可能な高性能接続により、通信オーバーヘッドが最小限に抑えられます。これにより、GPU がデータの待機ではなく計算に時間を費やすことができるため、スループットが直接向上します。

レールに沿って配置された GPU は、次の 3 つの主要コンポーネントで構成されています。

  • サブブロック: 基盤となる単位。1 つのラックに物理的に配置されるホストのグループで構成されます。トップオブラック(ToR)スイッチはこれらのホストを接続し、サブブロック内の任意の 2 つの GPU 間で非常に効率的なシングルホップ通信を可能にします。RDMA over Converged Ethernet(RoCE)により、この直接通信を容易に行うことができます。Google のレール アライン トポロジ用に最適化された拡張 NCCL ライブラリが、GPU 通信コレクティブを処理します。
  • ブロック: ノンブロッキング ファブリックで相互接続された複数のサブブロックで構成され、高帯域幅の相互接続を実現します。ブロック内の GPU は、最大 2 つのネットワーク ホップで到達できます。システムは、最適なジョブ配置を可能にするために、ブロックとサブブロックのメタデータを公開します。
  • クラスタ: 相互接続された複数のブロックで構成され、数千の GPU にスケールして、大規模なトレーニング ワークロードを実行できます。異なるブロック間の通信では、ホップが 1 つ追加されるだけです。大規模な場合でも、高パフォーマンスと予測可能性が維持されます。インテリジェントな大規模ジョブの配置を可能にするために、クラスタレベルのメタデータはオーケストレーターでも使用されます。

GPU 間通信のテクノロジー

GPU マシンは、さまざまなテクノロジーを組み合わせて使用し、ワークロードに高パフォーマンス、高スループット、低レイテンシを提供します。これらのテクノロジーには、RDMA over Converged Ethernet(RoCE)、NVIDIA NIC、Google のデータセンター全体を網羅するレール整列型ネットワーク トポロジなどがあります。

これらのマシンタイプは、NVIDIA の NVLink テクノロジーを使用して、各マシンの NVIDIA NIC 間に超高速の直接データパスを作成します。また、RoCE を使用すると、異なるマシン上の GPU 間で効率的な RDMA を実現できます。

GPU ネットワーキング スタック

ネットワーキング スタックは、GPU 間通信を実装するために連携して動作するソフトウェア プロトコル、ドライバ、レイヤの集合です。GPU マシンタイプによって、使用するネットワーキング スタックが異なります。次の表に、ネットワーキング スタックとそれに関連付けられたマシンタイプを示します。

ネットワーキング スタック 説明 GPU マシンタイプ
GPUDirect RDMA GPUDirect RDMA を使用すると、GPU と別のデバイス間でデータを交換するための直接パスが有効になります。A4X Max インスタンスと A4X インスタンスの場合、このネットワーキング スタックは RDMA over Converged Ethernet(RoCE)を使用します。このテクノロジーにより、ピア デバイスは GPU のメモリから直接読み取りと書き込みを行うことができ、CPU をバイパスして、高性能なデータ交換のためのより効率的な接続を作成できます。詳細については、GPUDirect RDMA を使用したクラスタ構成オプションをご覧ください。
GPUDirect-TCPXO GPUDirect-TCPXO は、TCP プロトコルをオフロードすることで GPUDirect-TCPX を上回るパフォーマンスを実現します。GPUDirect-TCPXO を使用する A3 Mega マシンタイプでは、A3 High マシンタイプと A3 Edge マシンタイプと比較して 2 倍のネットワーク帯域幅を使用できます。GPUDirect-TCPXO を使用する GKE クラスタでネットワーク帯域幅を最大化する方法については、Standard モードのクラスタで GPU ネットワーク帯域幅を最大化するを参照して、[GPUDirect-TCPXO] タブを選択してください。
GPUDirect-TCPX GPUDirect-TCPX は、データパケットのペイロードを GPU メモリからネットワーク インターフェースに直接転送できるため、ネットワーク パフォーマンスが向上します。GPUDirect-TCPX を使用する GKE クラスタでネットワーク帯域幅を最大化する方法については、Standard モードのクラスタで GPU ネットワーク帯域幅を最大化するで [GPUDirect-TCPX] タブを選択してください。

ホストとストレージのデータプレーン ネットワーク

別のネットワーク パスは、GPU 間の直接通信以外のすべてのトラフィックを処理します。このトラフィックには、Cloud Storage へのアクセス、ホストレベルの管理、他の Google Cloud サービスとの通信が含まれます。このトラフィックを管理するために、GPU マシンタイプは Google Titanium NIC を使用します。

Titanium NIC は CPU からネットワーク処理タスクをオフロードし、CPU がワークロードに集中できるようにします。この分離により、汎用トラフィックと専用の GPU 間トラフィックが異なる物理インターフェースを使用し、同じシステム リソースを競合しないようにします。

マルチ VPC 環境

すべてのワークロードは Google Cloudの Virtual Private Cloud(VPC)内で動作します。

ハイ パフォーマンス アクセラレータ マシンは、複数の物理ネットワーク インターフェースを使用してさまざまなタイプのトラフィックを処理する専用のハードウェア設計を備えています。この特殊なハードウェア設計を処理するには、ワークロードの実行に Slurm、GKE、Compute Engine のいずれを使用するかに関係なく、マルチ VPC 環境が必要です。

具体的なマルチ VPC 構成は、GPU マシンタイプとそのネットワーキング スタックによって異なります。

  • GPUDirect RDMA を使用する A4X Max、A4X、A4、A3 Ultra: これらのマシンは、汎用ホスト トラフィック(gVNIC)にデフォルトの VPC ネットワークを使用します。汎用ホスト トラフィック用に 1 つの追加の VPC ネットワークと、すべての GPU 間トラフィック用に 1 つの共有 VPC ネットワークが必要です。GPU トラフィック VPC で RDMA ネットワーク プロファイルを有効にする必要があります。A4 VM と A3 Ultra VM のこの構成の詳細については、VPC とサブネットを作成するをご覧ください。

  • GPUDirect-TCPXO を使用する A3 Mega: これらのマシンでは、高帯域幅通信専用の GPU NIC 用に 8 つの個別の VPC が必要です。この構成を完了する手順の詳細については、VPC とサブネットを作成するをご覧ください。

  • GPUDirect-TCPX を使用する A3 High: これらのマシンでは、高帯域幅通信専用の GPU NIC 用に 4 つの個別の VPC が必要です。この構成を完了する手順の詳細については、VPC とサブネットを作成するをご覧ください。

このマルチ VPC 構成により、ストレージ オペレーションやその他のシステムタスクが、重要な GPU 間通信で帯域幅を競合しないようにします。

設定する必要があるマルチ VPC ネットワーク構成は、GPU マシンタイプによって異なります。サポートされているすべての GPU マシンタイプのネットワーク構成、帯域幅速度、NIC の詳細なガイドについては、ネットワーキングと GPU マシンをご覧ください。

次の図は、GPU マシンのネットワーク アーキテクチャを示しています。汎用トラフィックと専用の GPU 間トラフィックが異なるネットワーク プレーンに分離されていることがわかります。

AI ハイパーコンピュータ GPU マシンのネットワーク アーキテクチャ。

上の図に示すように、GPU マシンはさまざまなタイプのトラフィックに専用のネットワーク パスを使用します。管理アクセスやストレージ アクセスなどの汎用トラフィックは、VPC に接続された Google Titanium NIC を通過します。高性能 GPU 間通信では、RDMA などのテクノロジーで最適化された個別のネットワーク インターフェースと VPC を使用し、AI と ML のワークロードで高帯域幅と低レイテンシを実現します。

ネットワーキング ライブラリとコンポーネント

ネットワーク帯域幅とパフォーマンスを最大化するために、次のネットワーキング ライブラリとコンポーネントを使用すると、Google のネットワーキング スタックで GPU を使用できます。

  • gVNIC: Google Virtual NIC(gVNIC)は、Compute Engine 専用に設計された仮想ネットワーク インターフェースです。gVNIC は、パフォーマンスの向上、一貫性の向上、ノイジー ネイバー問題の軽減を実現します。すべてのマシン ファミリー、マシンタイプ、世代でサポートおよび推奨されており、ホスト間通信に推奨される vNIC です。詳細については、Google Virtual NIC の使用をご覧ください。
  • NCCL: NVIDIA Collective Communications Library(NCCL)は、グループ通信オペレーション用に最適化されたプリミティブを提供します。これは、NVIDIA GPU とネットワーキングを使用して、マルチ GPU とマルチノード環境向けに特別に設計されています。NCCL テストを実行して、デプロイされたクラスタのパフォーマンスを評価します。詳細については、NCCCL テストをデプロイして実行するをご覧ください。
  • GKE マルチネットワーキング: Pod のマルチネットワーク サポートにより、GKE クラスタ内のノードと Pod で複数のインターフェースを有効にできます。GPUDirect のコンテキストでマルチネットワーキングを設定する方法の詳細については、Standard モードのクラスタで GPU ネットワーク帯域幅を最大化するGPUDirect RDMA を使用したクラスタ構成オプションをご覧ください。

使用可能なソフトウェア スタックの詳細については、OS と Docker イメージをご覧ください。

次のステップ