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

AI Hypercomputer は、選択した GPU マシンタイプによって決まる特定のネットワーク サービスを使用します。これらのサービスを理解することで、パフォーマンスとグッドプット(機械学習トレーニング タスクの有効な進捗)を最適化できます。

インフラストラクチャによるネットワーキング

デプロイのネットワーク アーキテクチャは、選択するインフラストラクチャ(汎用 GPU またはクラスタ化された GPU)によって異なります。

汎用 GPU の標準 VPC ネットワーキング

汎用 GPU は標準の Google Cloud VPC ネットワーキングを使用します。

  • アーキテクチャ: 推論、モデルの提供、探索的研究に標準のマルチテナント VPC 設計を使用します。
  • プロトコル: Google Virtual NIC(gVNIC)経由で TCP/IP を使用します。

クラスタ化された 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 GPU と別のデバイス間のデータ交換に直接パスを使用できるようにします。A4X Max インスタンスと A4X インスタンスの場合、このネットワーキング スタックは RoCE を使用します。詳細については、Cluster 構成オプションと GPUDirect RDMA をご覧ください。
GPUDirect-TCPXO TCP プロトコルをオフロードすることで、GPUDirect-TCPX を 改善します。GPUDirect-TCPXO を使用すると、A3 Mega マシンタイプ では、A3 High と比較して 2 倍のネットワーク帯域幅を使用できます。GPUDirect-TCPXO を使用する GKE クラスタでネットワーク帯域幅を最大化する方法については、Standard モードのクラスタで GPU ネットワーク帯域幅を最大化するに移動して、[GPUDirect-TCPXO] タブを選択してください。
GPUDirect-TCPX データパケットのペイロードを GPU メモリからネットワーク インターフェースに直接転送できるため、ネットワーク パフォーマンスが向上します。GPUDirect-TCPX を使用する GKE クラスタでネットワーク帯域幅を最大化する方法については、[Standard モードのクラスタで GPU ネットワーク帯域幅を最大化する]に移動して、[GPUDirect-TCPX] タブを選択してください。
標準 TCP/IP 汎用(Standard)ワークロードのベースライン ネットワーキング プロトコル。高い信頼性と、標準の VPC サービスとの幅広い互換性を提供します。
  • A2(A100)
  • G4(RTX PRO 6000)
  • G2(L4)
  • N1(T4 または V100)

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

マルチ GPU インスタンスでは、コンピューティング インスタンスとの通信と GPU 間情報処理で異なるネットワーク構成が必要です。

別のネットワーク パス(「ノースサウス ネットワーク 」または「フロントエンド ネットワーク」とも呼ばれます)は、コンピューティング インスタンスとのすべての通信を処理します。この トラフィックには、ディスク アクセス、VM 内通信、インターネット アクセス、 Cloud Storage へのアクセス、ホストレベルの管理、他の Google Cloud サービスとの通信が含まれます。

このトラフィックを管理するために、GPU マシンタイプは Google Titanium NIC を介して Google Virtual NIC(gVNIC)構成を使用します。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: これらのマシンは、汎用トラフィックをサポートする NIC と RDMA トラフィックをサポートする NIC の 2 つの物理 NIC によってサポートされています。汎用物理 NIC(nic0 インターフェースと追加のネットワーク インターフェース)にマッピングされるインスタンス vNIC は、通常の VPC ネットワークに接続されます。RDMA 対応の物理 NIC にマッピングされる RDMA vNIC は、GPUDirect RDMA を活用するために、RDMA ネットワーク プロファイルを持つ別の VPC ネットワークに接続されます。これらのマシンタイプでは、合計 3 つの VPC ネットワークが必要です。このネットワーク インフラストラクチャの設定方法については、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 Hypercomputer GPU マシンのネットワーク アーキテクチャ。 上の図に示すように、これらの GPU マシンは、さまざまな種類のトラフィックに専用のネットワーク パスを使用します。管理やストレージ アクセスなどの汎用トラフィックは、VPC に接続された Google Titanium NIC を通過します。高パフォーマンスの GPU 間通信では、RDMA などのテクノロジーで最適化された個別のネットワーク インターフェースと VPC を使用し、AI および ML ワークロードの高帯域幅と低レイテンシを確保します。

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

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

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

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

次のステップ