G2 または G4 を使用する AI 向けに最適化されたカスタム GKE クラスタを作成する

このドキュメントでは、G2(NVIDIA L4)または G4(NVIDIA RTX PRO 6000)アクセラレータ最適化マシンシリーズを使用して、人工知能(AI)と機械学習(ML)のワークロードをサポートするカスタム Google Kubernetes Engine(GKE)クラスタを作成する方法について説明します。 G2 と G4 は一般的な GPU マシンシリーズであり、 小規模から中規模の推論やグラフィックを多用するアプリケーションなど、主流の AI タスク向けに設計された独立したコンピューティング リソースを提供します。

GKE は、組織のさまざまなワークロードを実行するための単一のプラットフォーム サーフェスを提供し、複数のプラットフォームを管理する運用上の負担を軽減します。

G2 または G4 を使用して AI 最適化 GKE クラスタを作成するには、次の操作を行います。

  1. GKE 環境を作成する
  2. クラスタに接続する
  3. Pod マニフェストを構成する

始める前に

始める前に、次のタスクが完了していることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、 インストールして 初期化する gcloud CLI。gcloud CLI をインストール済みの場合は、最新の バージョンをgcloud components updateコマンドを実行して取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。

必要なロール

GKE クラスタの作成と管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

ロールの付与の詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

使用オプションを選択して容量を取得する

  1. 使用オプションを選択します 。GPU リソースの取得方法と使用方法に基づいて選択します。詳細については、使用 オプションを選択するをご覧ください。

    GKE の場合は、使用オプションを選択する際に次の追加情報を考慮してください。

  2. 容量を取得します 。 使用オプションの容量を取得 する方法を確認してください。

要件

G2 または G4 を使用する AI 最適化 GKE クラスタを作成するには、次の要件を満たしていることを確認してください。

  • GKE バージョン: G4(RTX PRO 6000)マシンには、GKE バージョン 1.32.4-gke.1698000 以降が必要です。
  • GPU ドライバ: GPU ノードでは、NVIDIA ドライバ バージョン 535 以降を使用する必要があります。

制限事項

一般的な GPU マシンシリーズとして、G2 と G4 には次の制限が適用されます。

  • ローカル SSD: G2 マシンタイプと G4 マシンタイプには、デフォルトでローカル SSD ディスクが含まれていません。必要に応じて手動で接続する必要があります。
  • NCCL Fast Socket: GKE の G2 マシンまたは G4 マシンで NCCL Fast Socket を使用することはできません。G2 マシンと G4 マシンはマルチノード通信をサポートしていますが、標準の VPC ネットワーキングを使用します。 最大ネットワーク スループットを必要とする大規模な分散トレーニングの場合は、 クラスタ化された GPU マシンシリーズを使用することをおすすめします。たとえば、A3 High や A3 Mega(GPUDirect TCPX を使用)や A3 Ultra や A4 (GPUDirect RDMA を使用)などです。

GKE 環境を作成する

クラスタは、Autopilot モードまたは標準モードで作成できます。

Autopilot

Autopilot クラスタを作成するには、次のコマンドを実行します。

gcloud container clusters create-auto CLUSTER_NAME \
    --region=REGION

次のように置き換えます。

  • CLUSTER_NAME: クラスタの名前。
  • REGION: クラスタのリージョン。

Standard

Standard クラスタと GPU ノードプールを作成します。

  1. Standard クラスタを作成するには、次のコマンドを実行します。

    gcloud container clusters create CLUSTER_NAME \
        --region=REGION \
        --enable-ip-alias
    

    次のように置き換えます。

    • CLUSTER_NAME: クラスタの名前。
    • REGION: クラスタのリージョン。
  2. ノードプールを作成します。 クラスタを作成したら、G2 または G4 を使用してノードプールを追加できます。G2(L4)または G4(RTX PRO 6000)を使用する マルチノード ワークロードの場合は、 コンパクト プレースメント ポリシー を使用してノード間のネットワーク レイテンシを最小限に抑えることをおすすめします。

    ノードプールを作成するには、次のコマンドを使用します。

    G2(NVIDIA L4)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4(NVIDIA RTX PRO 6000)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4 仮想ワークステーション(vWS)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    次のように置き換えます。

    • NODE_POOL_NAME: ノードプールの名前。
    • CLUSTER_NAME: クラスタの名前。
    • REGION: クラスタのリージョン。
    • ZONE: リクエストされた GPU が使用可能なリージョン内の 1 つ以上のゾーン(us-central1-a など)。コンパクト プレースメントを使用する場合は必須です。
    • MACHINE_TYPE: ノードのマシンタイプ(G2 マシンの場合は g2-standard-4、G4 マシンの場合は g4-standard-48 など)。
    • AMOUNT: 各ノードに接続する GPU の数。
    • LOCAL_SSD_COUNT: 各ノードでプロビジョニングするローカル SSD ボリュームの数。

クラスタに接続する

次のセクションで kubectl コマンドを実行できるように、クラスタに接続します。

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=REGION

次のように置き換えます。

  • CLUSTER_NAME: クラスタの名前。
  • REGION: クラスタのリージョン。

詳細については、kubectl をインストールしてクラスタ アクセスを構成するをご覧ください。

Pod マニフェストを構成する(Autopilot のみ)

Autopilot クラスタを作成した場合は、GKE がハードウェアをプロビジョニングできるように、Pod マニフェストで適切な GPU を選択する必要があります。

  1. ノードセレクタを使用して、選択した GPU タイプと特定の予約を指定します。

    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: ACCELERATOR
        cloud.google.com/gke-gpu-driver-version: latest
        # Optional: Include if using reserved capacity
        cloud.google.com/reservation-name: RESERVATION_NAME
        cloud.google.com/reservation-affinity: "specific"
    

    次のように置き換えます。

    • ACCELERATOR: 予約したアクセラレータ。nvidia-l4(G2 の場合)、nvidia-rtx-pro-6000(G4 の場合)、nvidia-rtx-pro-6000-vws(仮想ワークステーションを使用する G4 の場合)を使用する必要があります。
    • RESERVATION_NAME: Compute Engine の容量予約の名前。共有予約、または予約の特定のブロックとサブブロックを使用するには、予約済みゾーンパスリソースの使用の該当するセクションをご覧ください。
  2. GPU をリクエストするコンテナに次のリソースを追加します。

    containers:
      - name: my-container
        resources:
          limits:
            nvidia.com/gpu: AMOUNT
    

    AMOUNT は、各ノードに接続する GPU の数に置き換えます。

次のステップ