このページでは、NVIDIA Collective Communication Library(NCCL)Fast Socket プラグインを使用して、Google Kubernetes Engine(GKE)クラスタでより効率的なワークロードを実行する方法について説明します。
Autopilot クラスタは NCCL Fast Socket をサポートしていません。
始める前に
始める前に、次の作業が完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
制限事項
- Compute Engine の制限事項が適用されます。
- gVNIC の制限が適用されます。
- NCCL Fast Socket は、ハードウェア アクセラレータが有効になっているノードプールでのみサポートされます。
要件
- NCCL Fast Socket を使用するには、ノードプールで gVNIC を有効にする必要があります。
- GKE ノードでは Container-Optimized OS ノードイメージを使用する必要があります。
- クラスタで GKE バージョン 1.25.2-gke.1700 以降を実行している必要があります。
クラスタの作成
新しいクラスタを作成します。
gcloud container clusters create CLUSTER_NAME \
--cluster-version=VERSION \
--region=COMPUTE_REGION
次のように置き換えます。
CLUSTER_NAME
: 新しいクラスタの名前。VERSION
: GKE バージョン。1.25.2-gke.1700 以降にする必要があります。また、--release-channel
フラグを使用してリリース チャンネルを選択することもできます。リリース チャンネルには、デフォルトのバージョン 1.25.2-gke.1700 以降が必要です。COMPUTE_REGION
: 新しいクラスタの Compute Engine のリージョン。ゾーンクラスタの場合は、--zone=COMPUTE_ZONE
を使用します。
NCCL Fast Socket を有効にする
NCCL Fast Socket プラグインを使用するノードプールを作成します。gcloud container node-pools update
を使用して既存のノードプールを更新することもできます。
gcloud container node-pools create NODEPOOL_NAME \
--accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
--machine-type=MACHINE_TYPE \
--cluster=CLUSTER_NAME \
--enable-fast-socket \
--enable-gvnic
次のように置き換えます。
NODEPOOL_NAME
: 新しいノードプールの名前。CLUSTER_NAME
: クラスタの名前。ACCELERATOR_TYPE
: 使用する GPU アクセラレータのタイプ。例:nvidia-tesla-t4
。ACCELERATOR_COUNT
: ノードあたりの GPU の数。MACHINE_TYPE
: 使用するマシンのタイプ。NCCL Fast Socket は、メモリ最適化マシンタイプではサポートされていません。
NVIDIA GPU デバイス ドライバをインストールする
NVIDIA GPU デバイス ドライバのインストールの手順に沿って、必要な NVIDIA デバイス ドライバをノードにインストールします。
NCCL Fast Socket が有効になっていることを確認する
NCCL Fast Socket が有効になっていることを確認するには、kube-system Pod を表示します。
kubectl get pods -n kube-system
出力は次のようになります。
NAME READY STATUS RESTARTS AGE
nccl-fastsocket-installer-qvfdw 2/2 Running 0 10m
nccl-fastsocket-installer-rtjs4 2/2 Running 0 10m
nccl-fastsocket-installer-tm294 2/2 Running 0 10m
この出力で、Pod の数はノードプール内のノードの数と等しくなります。
NCCL Fast Socket を無効にする
NCCL Fast Socket を無効にするには、次のコマンドを実行します。
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
既存のノードには引き続きプラグインがインストールされています。ワークロードを新しいノードに移行するには、手動でノードプールのサイズを変更する必要があります。
トラブルシューティング
gVNIC のトラブルシューティングについては、Google Virtual NIC のトラブルシューティングをご覧ください。
次のステップ
- ネットワーク ポリシー ロギングを使用して、クラスタのネットワーク ポリシーによって Pod への接続が許可または拒否される時間を記録する。