G2 または G4 を使用する AI 最適化 GKE クラスタを作成する

このドキュメントでは、G2(NVIDIA L4)または G4(NVIDIA RTX PRO 6000)アクセラレータ最適化マシンシリーズを使用して、人工知能(AI)と ML のワークロードをサポートする AI 最適化 Google Kubernetes Engine(GKE)クラスタを作成する方法について説明します。G2 と G4 は汎用 GPU マシンシリーズで、小規模から中規模の推論やグラフィック処理を多用するアプリケーションなどの主流の AI タスク用に設計された独立したコンピューティング リソースを提供します。G4 マシンシリーズは、シングル GPU マシンタイプとマルチ GPU マシンタイプに加えて、GPU が 1 つ未満のマシンタイプで仮想 GPU(vGPU)をサポートしています。

  • g4-standard-6(GPU の 8 分の 1)
  • g4-standard-12(GPU の 4 分の 1)
  • g4-standard-24(GPU の半分)

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(NVIDIA RTX PRO 6000)マシンには、次の最小 GKE バージョンが必要です。
    • 標準モード:
      • 1 つ以上の GPU を備えたマシンタイプ: 1.34.0-gke.1662000 以降
      • GPU が 1 つ未満のマシンタイプ(g4-standard-6、g4-standard-12、g4-standard-24):
        • 1.35: 1.35.8-gke.1518000 以降
        • 1.36 以降: 1.36.4-gke.1082000 以降
    • Autopilot モード:
      • 1 つ以上の GPU を備えたマシンタイプ: 1.34.1-gke.1829001 以降
      • GPU が 1 つ未満のマシンタイプ(g4-standard-6、g4-standard-12、g4-standard-24):
        • 1.35: 1.35.8-gke.1518000 以降
        • 1.36 以降: 1.36.4-gke.1082000 以降
  • GPU ドライバ:
    • G2(NVIDIA L4)ノードでは、NVIDIA ドライバ バージョン 535 以降を使用する必要があります。
    • G4(NVIDIA RTX PRO 6000)ノードでは、NVIDIA ドライバ バージョン 580 以降を使用する必要があります。

制限事項

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

  • ローカル SSD: G2 と G4 のマシンタイプには、デフォルトでローカル SSD ディスクが含まれていません。必要に応じて手動で添付する必要があります。g4-standard-6(GPU の 8 分の 1)マシンタイプはローカル 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 を使用))を使用することをおすすめします。
  • 1 つ未満の GPU を備えた G4 マシンタイプ: g4-standard-6、g4-standard-12、g4-standard-24 の場合:

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、単一 GPU G4 マシンの場合は g4-standard-48、1 つ未満の GPU を備えた G4 マシンタイプ(nvidia-rtx-pro-6000 アクセラレータ タイプ)の場合は g4-standard-6、g4-standard-12、g4-standard-24 など)。
    • AMOUNT: 各ノードに接続する GPU の数。1 つ未満の GPU(g4-standard-6、g4-standard-12、g4-standard-24)または g4-standard-48(1 つの GPU)を備えた G4 マシンタイプを使用する場合は、AMOUNT を 1 に設定する必要があります。
    • LOCAL_SSD_COUNT: 各ノードでプロビジョニングするローカル SSD ボリュームの数。g4-standard-6 マシンタイプを使用する場合は、--local-ssd-count フラグを省略します。これは、g4-standard-6 がローカル 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 の数に置き換えます。Autopilot クラスタで 1 つ未満の GPU(g4-standard-6、g4-standard-12、g4-standard-24)を持つ G4 マシンタイプをリクエストするには、マシンタイプを指定するカスタム ComputeClass を使用し、nvidia.com/gpu を 1 に設定する必要があります。手順については、GPU が 1 つ未満の G4 マシンタイプをリクエストするをご覧ください。

次のステップ