NCCL Fast Socket を使用してワークロードの効率を向上させる


このページでは、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 を実行して最新のバージョンを取得する。

制限事項

要件

  • 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 のトラブルシューティングをご覧ください。

次のステップ