このドキュメントでは、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 クラスタを作成する手順は次のとおりです。
始める前に
作業を始める前に、次のタスクが完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API を有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化します。gcloud CLI をインストール済みの場合は、
gcloud components updateコマンドを実行して最新のバージョンを取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。
必要なロール
GKE クラスタの作成と管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Kubernetes Engine 管理者(
roles/container.admin) - Compute 管理者(
roles/compute.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
使用オプションを選択して容量を取得する
使用オプションを選択します。GPU リソースの取得方法と使用方法に基づいて選択します。詳細については、消費オプションを選択するをご覧ください。
GKE の場合は、使用量オプションを選択する際に次の追加情報を考慮してください。
- Flex Start(プレビュー)と GKE の詳細については、Flex Start での GPU の取得可能性についてをご覧ください。
- Flex Start はベスト エフォートのコンパクト プレースメントを使用します。トポロジを確認するには、GKE クラスタ内のノードの物理トポロジを表示するをご覧ください。
- Spot VM を使用してトポロジ情報を取得できるのは、コンパクト プレースメントを構成した場合のみです。
容量を取得する。使用オプションの容量を取得する方法を学習する。
要件
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以降
- 1.35:
- 1 つ以上の GPU を備えたマシンタイプ:
- 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以降
- 1.35:
- 1 つ以上の GPU を備えたマシンタイプ:
- 標準モード:
- GPU ドライバ:
- G2(NVIDIA L4)ノードでは、NVIDIA ドライバ バージョン
535以降を使用する必要があります。 - G4(NVIDIA RTX PRO 6000)ノードでは、NVIDIA ドライバ バージョン
580以降を使用する必要があります。
- G2(NVIDIA L4)ノードでは、NVIDIA ドライバ バージョン
制限事項
汎用 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の場合:- Ubuntu ノードイメージを使用できません。
- マルチインスタンス GPU、NVIDIA MPS、GPU タイム シェアリングは使用できません。
GKE 環境を作成する
Autopilot モードまたは標準モードでクラスタを作成できます。
Autopilot
Autopilot クラスタを作成するには、次のコマンドを実行します。
gcloud container clusters create-auto CLUSTER_NAME \
--region=REGION
次のように置き換えます。
CLUSTER_NAME: クラスタの名前。REGION: クラスタのリージョン。
Standard
Standard クラスタと GPU ノードプールを作成します。
Standard クラスタを作成するには、次のコマンドを実行します。
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-alias次のように置き換えます。
CLUSTER_NAME: クラスタの名前。REGION: クラスタのリージョン。
ノードプールを作成します。クラスタを作成したら、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_COUNTG4(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_COUNTG4 仮想ワークステーション(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 を選択する必要があります。
ノードセレクタを使用して、選択した 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 の容量予約の名前。共有予約、または予約の特定のブロックとサブブロックを使用するには、予約済みゾーンパスリソースを使用するの該当するセクションをご覧ください。
GPU をリクエストするコンテナに次のリソースを追加します。
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTAMOUNTは、コンテナが使用する GPU の数に置き換えます。Autopilot クラスタで 1 つ未満の GPU(g4-standard-6、g4-standard-12、g4-standard-24)を持つ G4 マシンタイプをリクエストするには、マシンタイプを指定するカスタムComputeClassを使用し、nvidia.com/gpuを1に設定する必要があります。手順については、GPU が 1 つ未満の G4 マシンタイプをリクエストするをご覧ください。