AI Hypercomputer は、選択した GPU マシンタイプによって決定される特定のネットワーク サービスを使用します。これらのサービスを理解することで、パフォーマンスとグッドプット(ML トレーニング タスクの効果的な進行)を最適化できます。
インフラストラクチャ別のネットワーキング
デプロイのネットワーク アーキテクチャは、インフラストラクチャの選択(一般的な GPU またはクラスタ化された GPU)によって異なります。
一般的な GPU 向けの標準 VPC ネットワーキング
一般的な GPU は、標準の Google CloudVPC ネットワーキングを使用します。
- アーキテクチャ: 推論、モデル提供、探索的研究に標準のマルチテナント VPC 設計を使用します。
- プロトコル: Google Virtual NIC(gVNIC)を介して TCP/IP を使用します。
クラスタ化された GPU 向けのハイ パフォーマンス ファブリック
AI Hypercomputer は、階層型のレールアライメント ネットワーク アーキテクチャを使用する GPU マシンのデプロイに役立ちます。この設計の予測可能で高性能な接続性により、通信のオーバーヘッドが最小限に抑えられます。これにより、GPU がデータの待機ではなくコンピュートに多くの時間を費やすことができるため、グッドプットが直接向上します。
クラスタ化された GPU のレール整列型の配置には、次の 3 つのコンポーネントが含まれます。
- サブブロック: 単一ブロック上に物理的に同居するホスト群。トップオブラック(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 と別のデバイス間でデータを交換するための直接パスを有効にします。A5X、A4X Max、A4X インスタンスの場合、このネットワーク スタックは RoCE を使用します。詳細については、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 | 一般(標準)ワークロードのベースライン ネットワーキング プロトコル。高い信頼性と、標準の VPC サービスとの幅広い互換性を備えています。 |
|
ホストおよびストレージ データプレーン ネットワーク
マルチ GPU インスタンスでは、コンピューティング インスタンスとの通信と GPU 間の情報処理に異なるネットワーク構成が必要です。
別のネットワーク パス(North-South ネットワークまたはフロントエンド ネットワークとも呼ばれます)が、コンピューティング インスタンスとのすべての通信を処理します。このトラフィックには、ディスク アクセス、VM 内通信、インターネット アクセス、Cloud Storage へのアクセス、ホストレベルの管理、他の Google Cloudサービスとの通信が含まれます。
このトラフィックを管理するために、GPU マシンタイプは Google Virtual NIC(gVNIC)を使用します。A5X および A4X Max ベアメタル インスタンスの場合は、Google Titanium NIC を介して Intel Infrastructure Data Path Function(IDPF)ネットワーク インターフェースを使用します。Titanium NIC は、CPU からネットワーク処理タスクをオフロードし、CPU がワークロードに集中できるようにします。この分離により、汎用ホスト トラフィックと専用の GPU 間トラフィックが異なる物理インターフェースを使用し、同じシステム リソースを競合することがなくなります。
マルチ VPC 環境
すべてのワークロードは Google Cloudの Virtual Private Cloud(VPC)内で動作します。
高パフォーマンスのアクセラレータ マシンは、複数の物理ネットワーク インターフェースを使用してさまざまなタイプのトラフィックを処理する、特殊なハードウェア設計を特徴としています。この特化されたハードウェア設計に対処するには、ワークロードの実行に Slurm、GKE、Compute Engine のいずれを使用するかにかかわらず、マルチ VPC 環境が必要です。
具体的なマルチ VPC 構成は、GPU マシンタイプとそのネットワーキング スタックによって異なります。
GPUDirect RDMA を備えた A5X、A4X Max、A4X、A4、A3 Ultra: これらのマシンは、汎用トラフィックをサポートする物理 NIC と、RDMA トラフィックをサポートする物理 NIC の 2 種類の物理 NIC を基盤としています。汎用物理 NIC(
nic0インターフェースと追加のネットワーク インターフェース)にマッピングされるネットワーク インターフェースは、通常の VPC ネットワークに接続されます。RDMA 対応の物理 NIC にマッピングされる RDMA ネットワーク インターフェースは、GPUDirect RDMA を使用するために、RDMA ネットワーク プロファイルを持つ別の VPC ネットワークに接続されます。これらのマシンタイプは、合計で最大 3 つの VPC ネットワークを使用します。単一のサブブロック内の A5X、A4X Max、A4X のデプロイでは、マルチノード NVLink ファブリックが GPU 間通信を処理するため、RDMA 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 間トラフィックが異なるネットワーク プレーンに分離されていることがわかります。
上の図に示すように、これらの 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 イメージをご覧ください。
次のステップ
- デプロイを保護する方法については、サービス アカウントの使用に関するベスト プラクティスをご覧ください。
- ネットワークを強化する方法については、VPC ファイアウォール ルールをご覧ください。
- アクセラレータの接続の詳細については、GPU ネットワーキングの概要をご覧ください。