一括作成プロセスを使用して、画像処理装置(GPU)がアタッチされている仮想マシン(VM)のグループを作成できます。一括作成プロセスでは、リクエストが不可能な場合に失敗する検証を事前で行います。また、リージョン フラグを使用する場合、一括作成 API は、リクエストに対応できる容量のあるゾーンを自動的に選択します。一括作成の詳細については、VM の一括作成についてをご覧ください。
始める前に
- OS イメージの選択や GPU 割り当ての確認など、その他の前提条件を確認するには、概要のドキュメントをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
必要なロール
VM の作成に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼します。ロールの付与の詳細については、アクセス権の管理をご覧ください。
この事前定義ロールには、VM の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM を作成するには、次の権限が必要です。
- プロジェクトに対する
compute.instances.create
-
カスタム イメージを使用して VM を作成する: イメージに対する
compute.images.useReadOnly
-
スナップショットを使用して VM を作成する: スナップショットに対する
compute.snapshots.useReadOnly
-
インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する
compute.instanceTemplates.useReadOnly
- VM にレガシー ネットワークを割り当てる: プロジェクトに対する
compute.networks.use
-
VM の静的 IP アドレスを指定する: プロジェクトに対する
compute.addresses.use
-
レガシー ネットワークを使用する際に VM に外部 IP アドレスを割り当てる: プロジェクトに対する
compute.networks.useExternalIp
- VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.use
-
VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.useExternalIp
-
VM の VM インスタンス メタデータを設定する: プロジェクトに対する
compute.instances.setMetadata
-
VM にタグを設定する: VM に対する
compute.instances.setTags
-
VM にラベルを設定する: VM に対する
compute.instances.setLabels
-
VM が使用するサービス アカウントを設定する: VM に対する
compute.instances.setServiceAccount
-
VM 用の新しいディスクを作成する: プロジェクトに対する
compute.disks.create
-
既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する
compute.disks.use
-
既存のディスクを読み取り専用モードでアタッチする: ディスクに対する
compute.disks.useReadOnly
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
概要
一括作成メソッドを使用して GPU が接続された VM を作成する場合は、リージョン(us-central1
など)または特定のゾーン(us-central1-a
など)に VM を作成できます。
リージョンを指定すると、Compute Engine は GPU をサポートするリージョン内の任意のゾーンに VM を配置します。
アクセラレータ最適化 VM のグループを作成する
アクセラレータ最適化マシン ファミリーは、A3 High、A3 Mega、A2 Standard、A2 Ultra、G2 の各マシンタイプで使用できます。
各アクセラレータ最適化マシンタイプには、特定モデルの NVIDIA GPU が割り当てられています。
- A3 アクセラレータ最適化マシンタイプには、NVIDIA H100 80 GB GPU がアタッチされます。次のオプションが用意されています。
- A3 Standard(
a3-highgpu-8g
): このマシンタイプには H100 80 GB GPU が割り当てられています。 - A3 Mega(
a3-megagpu-8g
): このマシンタイプには、H100 80 GB Mega GPU が割り当てられています。
- A3 Standard(
- A2 アクセラレータ最適化マシンタイプには、NVIDIA A100 GPU がアタッチされます。次のオプションが用意されています。
- A2 Standard(
a2-highgpu-*
、a2-megagpu-*
): これらのマシンタイプには A100 40 GB GPU がアタッチされています。 - A2 Ultra(
a2-ultragpu-*
): これらのマシンタイプには A100 80 GB GPU がアタッチされています。
- A2 Standard(
- G2 アクセラレータ最適化マシンタイプ(
g2-standard-*
)には、NVIDIA L4 GPU がアタッチされます。
アクセラレータ最適化 VM のグループを作成するには、Google Cloud CLI または REST を使用します。
gcloud
VM のグループを作成するには、gcloud compute instances bulk create
コマンドを使用します。パラメータとこのコマンドの使用方法については、VM の一括作成をご覧ください。
コマンドの例では、以下のオプションのフラグが示されています。
VM をプリエンプティブル VM インスタンスとして構成する
--preemptible
フラグ。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル インスタンスの GPU をご覧ください。仮想ワークステーションを指定する
--accelerator
フラグ。NVIDIA RTX 仮想ワークステーション(vWS)は、G2 VM でのみサポートされています。
例
この例では、次の仕様を使用して、GPU が接続された 2 つの VM を作成します。
- VM 名:
my-test-vm-1
、my-test-vm-2
- 各 VM には 2 つの GPU が接続され、適切なアクセラレータ最適化マシンタイプを使用して指定されます。
gcloud compute instances bulk create \ --name-pattern="my-test-vm-#" \ --region=REGION \ --count=2 \ --machine-type=MACHINE_TYPE \ --boot-disk-size=200 \ --image=IMAGE \ --image-project=IMAGE_PROJECT \ --on-host-maintenance=TERMINATE --restart-on-failure \ [--preemptible] \ [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]
次のように置き換えます。
REGION
: VM のリージョン。このリージョンは、選択した GPU モデルをサポートしている必要があります。MACHINE_TYPE
: 選択したマシンタイプ。次のいずれかを選択します。IMAGE
: GPU をサポートするオペレーティング システム イメージ。イメージ ファミリーの最新イメージを使用する場合は、
--image
フラグを--image-family
フラグに置き換え、その値を GPU をサポートするイメージ ファミリーに設定します。例:--image-family=rocky-linux-8-optimized-gcp
。カスタム イメージまたは Deep Learning VM Image を指定することもできます。
IMAGE_PROJECT
: OS イメージが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。VWS_ACCELERATOR_COUNT
: 必要な仮想 GPU の数。
成功すると、出力は次のようになります。
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
必須パラメータによる instances.bulkInsert
メソッドを使用して、1 つのゾーンに複数の VM を作成します。パラメータとこのコマンドの使用方法については、VM の一括作成をご覧ください。
例
この例では、次の仕様を使用して、GPU が接続された 2 つの VM を作成します。
- VM 名:
my-test-vm-1
、my-test-vm-2
各 VM には 2 つの GPU が接続され、適切なアクセラレータ最適化マシンタイプを使用して指定されます。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":MACHINE_TYPE, "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":SOURCE_IMAGE_URI }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", "automaticRestart":true } } }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDREGION
: VM のリージョン。このリージョンは、選択した GPU モデルをサポートしている必要があります。MACHINE_TYPE
: 選択したマシンタイプ。次のいずれかを選択します。SOURCE_IMAGE_URI
: 使用する特定のイメージまたはイメージ ファミリーの URI。次に例を示します。
- 特定のイメージ:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- イメージ ファミリー:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
。
イメージ ファミリーを指定すると、Compute Engine はそのファミリー内のサポート対象の最新の OS イメージから VM を作成します。イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
- 特定のイメージ:
追加の設定:
プリエンプティブル VM を使用すると、VM とそれに接続される GPU のコストを削減できます。詳細については、プリエンプティブル VM インスタンスの GPU をご覧ください。VM をプリエンプティブルとして設定するには、リクエストに
"preemptible": true
オプションを追加します。"scheduling": { "onHostMaintenance": "terminate", "automaticRestart": true, "preemptible": true }
G2 VM の場合、NVIDIA RTX 仮想ワークステーション(vWS)がサポートされています。仮想ワークステーションを指定するには、リクエストに
guestAccelerators
オプションを追加します。VWS_ACCELERATOR_COUNT
は、必要な仮想 GPU の数に置き換えます。"guestAccelerators": [ { "acceleratorCount": VWS_ACCELERATOR_COUNT, "acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws" } ]
制限事項
A3 VM
A3 High マシンタイプと A3 Mega マシンタイプを使用する VM には、次の制限が適用されます。
- A3 マシンタイプを使用する VM は、継続利用割引とフレキシブル確約利用割引の対象外となります。
- A3 マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- A3 マシンタイプを使用する VM では、リージョン Persistent Disk を使用できません。
- A3 マシンタイプは、Sapphire Rapids プラットフォームでのみ使用できます。
- VM が A3 マシンタイプを使用している場合、マシンタイプを変更することはできません。マシンタイプを変更するには、新しい VM を作成する必要があります。
- VM のマシンタイプを A3 マシンタイプに変更することはできません。A3 マシンタイプを使用する VM が必要な場合は、新しい VM を作成する必要があります。
- A3 マシンタイプは、単一テナンシーをサポートしません。
- A3 マシンタイプでは Windows オペレーティング システムを実行できません。
- A3 マシンタイプの予約は、特定の予約からのみ可能です。 .
A2 標準 VM
- A2 標準マシンタイプを使用する VM は、継続利用割引とフレキシブル確約利用割引の対象外となります。
- A2 標準マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- A2 標準マシンタイプを使用する VM では、リージョン Persistent Disk を使用できません。
- A2 標準マシンタイプは、Cascade Lake プラットフォームでのみ使用できます。
- VM が A2 標準マシンタイプを使用している場合は、ある A2 標準マシンタイプから別の A2 標準マシンタイプにのみ切り替えることができます。他のマシンタイプには変更できません。詳細については、アクセラレータ最適化 VM を変更するをご覧ください。
- <codea2-megagpu-16g< code="" dir="ltr" translate="no">A2 標準マシンタイプでは Windows オペレーティング システムを使用できません。Windows オペレーティング システムを使用する場合は、別の A2 標準マシンタイプを選択する必要があります。</codea2-megagpu-16g<>
- A2 標準マシンタイプを使用する Windows VM では、アタッチされたローカル SSD のクイック フォーマットを行うことができません。これらのローカル SSD をフォーマットするには、diskpart ユーティリティを使用し、
format fs=ntfs label=tmpfs
を指定して完全フォーマットを行う必要があります。 - A2 標準マシンタイプは、単一テナンシーをサポートしません。
A2 Ultra VM
- A2 Ultra マシンタイプを使用する VM は、継続利用割引とフレキシブル確約利用割引の対象外となります。
- A2 Ultra マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- A2 Ultra マシンタイプを使用する VM では、リージョン Persistent Disk を使用できません。
- A2 Ultra マシンタイプは、Cascade Lake プラットフォームでのみ使用できます。
- VM が A2 Ultra マシンタイプを使用している場合、マシンタイプを変更することはできません。別の A2 Ultra マシンタイプやその他のマシンタイプを使用するには、新しい VM を作成する必要があります。
- 他のマシンタイプを A2 Ultra マシンタイプに変更することはできません。A2 Ultra マシンタイプを使用する VM が必要な場合は、新しい VM を作成する必要があります。
- A2 Ultra マシンタイプを使用する Windows VM では、アタッチされたローカル SSD のクイック フォーマットを行うことができません。これらのローカル SSD をフォーマットするには、diskpart ユーティリティを使用し、
format fs=ntfs label=tmpfs
を指定して完全フォーマットを行う必要があります。
G2 VM
- G2 マシンタイプを使用する VM は、継続利用割引とフレキシブル確約利用割引の対象外となります。
- G2 マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- G2 マシンタイプを使用する VM では、リージョン Persistent Disk を使用できません。
- G2 マシンタイプは、Cascade Lake プラットフォームでのみ使用できます。
- 標準 Persistent Disk(
pd-standard
)は、G2 標準マシンタイプを使用する VM ではサポートされません。サポートされているディスクタイプについては、G2 でサポートされているディスクタイプをご覧ください。 - G2 マシンタイプでマルチインスタンス GPU を作成することはできません。
- G2 VM のマシンタイプを変更する必要がある場合は、アクセラレータ最適化 VM を変更するをご覧ください。
- G2 マシンタイプを使用する VM のブートディスクに Deep Learning VM Image を使用することはできません。
- Container-Optimized OS の現在のデフォルト ドライバは、G2 マシンタイプで実行される L4 GPU をサポートしていません。Container-Optimized OS は、特定のドライバセットのみをサポートしています。G2 マシンタイプで Container-Optimized OS を使用する場合は、次の点に注意してください。
- 推奨される最小の NVIDIA ドライバ バージョン
525.60.13
以降をサポートする Container-Optimized OS のバージョンを使用します。詳細については、Container-Optimized OS のリリースノートをご覧ください。 - ドライバをインストールするときに、L4 GPU で動作する最新のバージョンを指定します。例:
sudo cos-extensions install gpu -- -version=525.60.13
。
- 推奨される最小の NVIDIA ドライバ バージョン
- 次のシナリオでは、Google Cloud CLI または REST を使用して G2 VM を作成する必要があります。
- カスタムメモリ値を指定する必要があります。
- 表示可能な CPU コアの数をカスタマイズする必要があります。
N1 汎用 VM のグループを作成する
GPU が接続された VM のグループを作成するには、Google Cloud CLI または ERST を使用します。
このセクションでは、次の GPU タイプを使用して VM を作成する方法について説明します。
NVIDIA GPU:
- NVIDIA T4:
nvidia-tesla-t4
- NVIDIA P4:
nvidia-tesla-p4
- NVIDIA P100:
nvidia-tesla-p100
- NVIDIA V100:
nvidia-tesla-v100
NVIDIA RTX 仮想ワークステーション(vWS)(旧称 NVIDIA GRID):
- NVIDIA T4 仮想ワークステーション:
nvidia-tesla-t4-vws
- NVIDIA P4 仮想ワークステーション:
nvidia-tesla-p4-vws
NVIDIA P100 仮想ワークステーション:
nvidia-tesla-p100-vws
これらの仮想ワークステーションの場合、NVIDIA RTX 仮想ワークステーション(vWS)ライセンスが VM に自動的に追加されます。
gcloud
VM のグループを作成するには、gcloud compute instances bulk create
コマンドを使用します。パラメータとこのコマンドの使用方法については、VM の一括作成をご覧ください。
例
次の例では、以下の仕様を使用して、GPU が接続された 2 つの VM を作成します。
- VM 名:
my-test-vm-1
、my-test-vm-2
- GPU をサポートする
us-central1
の任意のゾーンに作成された VM - 各 VM に 2 つの T4 GPU が接続されています。この GPU は、アクセラレータ タイプとアクセラレータ数のフラグを使用して指定します。
- 各 VM に GPU ドライバがインストールされている
- 各 VM が Deep Learning VM イメージ
pytorch-latest-gpu-v20211028-debian-10
を使用する
gcloud compute instances bulk create \ --name-pattern="my-test-vm-#" \ --count=2 \ --region=us-central1 \ --machine-type=n1-standard-2 \ --accelerator type=nvidia-tesla-t4,count=2 \ --boot-disk-size=200 \ --metadata="install-nvidia-driver=True" \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --image=pytorch-latest-gpu-v20211028-debian-10 \ --image-project=deeplearning-platform-release \ --on-host-maintenance=TERMINATE --restart-on-failure
成功すると、出力は次のようになります。
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
必須パラメータによる instances.bulkInsert
メソッドを使用して、1 つのゾーンに複数の VM を作成します。パラメータとこのコマンドの使用方法については、VM の一括作成をご覧ください。
例
次の例では、以下の仕様を使用して、GPU が接続された 2 つの VM を作成します。
- VM 名:
my-test-vm-1
、my-test-vm-2
- GPU をサポートする
us-central1
の任意のゾーンに作成された VM - 各 VM に 2 つの T4 GPU が接続されています。この GPU は、アクセラレータ タイプとアクセラレータ数のフラグを使用して指定します。
- 各 VM に GPU ドライバがインストールされている
- 各 VM が Deep Learning VM イメージ
pytorch-latest-gpu-v20211028-debian-10
を使用する
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/us-central1/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":"n1-standard-2", "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10" }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-t4" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", "automaticRestart":true }, "metadata":{ "items":[ { "key":"install-nvidia-driver", "value":"True" } ] } } }
次のステップ
GPU のパフォーマンスをモニタリングする方法を確認する。
高いネットワーク帯域幅を使用する方法を確認する。
GPU ホスト メンテナンス イベントを処理する方法を確認する。
VM と GPU の実際の使用量と予測される使用量を表示する方法を確認する。