このドキュメントでは、GPU が接続され、N1 マシン ファミリーを使用する VM の作成方法について説明します。N1 shared-core
を除くほとんどの N1 マシンタイプを使用できます。
始める前に
- OS イメージの選択や GPU 割り当ての確認など、その他の前提条件を確認するには、概要のドキュメントをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
-
必要なロール
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
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
概要
N1 マシン ファミリーを使用する VM に接続できる GPU モデルは次のとおりです。
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 に自動的に追加されます。
GPU が接続された VM を作成する
GPU が接続された N1 VM を作成するには、Google Cloud コンソール、Google Cloud CLI、または REST を使用します。
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
VM の名前を指定します。リソースの命名規則をご覧ください。
GPU が利用可能なリージョンとゾーンを選択します。利用可能な GPU ゾーンのリストをご覧ください。
[マシンの構成] セクションで、[GPU] マシン ファミリーを選択し、次の操作を行います。
- [GPU のタイプ] リストで、N1 マシンでサポートされている GPU モデルのいずれかを選択します。
- [GPU の数] リストで、GPU の数を選択します。
GPU モデルがグラフィック ワークロード用の NVIDIA RTX 仮想ワークステーション(vWS)をサポートし、この VM でグラフィックを多用するワークロードを実行する予定がある場合は、[仮想ワークステーション(NVIDIA GRID)を有効にする] を選択します。
[マシンタイプ] リストで、プリセットの N1 マシンタイプのいずれかを選択します。または、カスタム マシンタイプを指定することもできます。
[ブートディスク] セクションで [変更] をクリックします。[ブートディスクの構成] ページが表示されます。
[ブートディスクの構成] ページで、次の操作を行います。
- [公開イメージ] タブで、サポートされている Compute Engine イメージまたは Deep Learning VM Image を選択します。
- ブートディスク サイズは 40 GB 以上で指定します。
- ブートディスクのオプションを確認するには、[選択] をクリックします。
省略可: プロビジョニング モデルを構成します。たとえば、ワークロードがフォールト トレラントで、VM のプリエンプションが発生する可能性がある場合は、Spot VM を使用して VM とアタッチされた GPU のコストを削減することを検討してください。詳細については、Spot VM 上の GPU をご覧ください。その方法は次のとおりです。
- [可用性ポリシー] セクションで、[VM プロビジョニング モデル] リストから [スポット] を選択します。これを選択すると、VM の自動再起動とホスト メンテナンス オプションが無効になります。
- 省略可: [VM の終了時] リストで、Compute Engine が VM をプリエンプトしたときの動作を選択します。
- プリエンプション中に VM を停止するには、[停止] を選択します(デフォルト)。
- プリエンプション中に VM を削除するには、[削除] をクリックします。
VM を作成して起動するには、[作成] をクリックします。
VM を作成して起動するには、次のフラグを指定して、gcloud compute instances create
コマンドを使用します。
ワークロードがフォールト トレラントで、VM のプリエンプションが発生する可能性がある場合は、Spot VM を使用して VM とアタッチされた GPU のコストを削減することを検討してください。詳細については、Spot VM 上の GPU をご覧ください。--provisioning-model=SPOT
は、VM を Spot VM として構成するオプション フラグです。Spot VM の場合、自動再起動とホスト メンテナンスのオプション フラグは無効になります。
gcloud compute instances createVM_NAME \ --machine-typeMACHINE_TYPE \ --zoneZONE \ --boot-disk-sizeDISK_SIZE \ --accelerator type=ACCELERATOR_TYPE ,count=ACCELERATOR_COUNT \ [--imageIMAGE | --image-familyIMAGE_FAMILY ] \ --image-projectIMAGE_PROJECT \ --maintenance-policy TERMINATE \ [--provisioning-model=SPOT]
次のように置き換えます。
VM_NAME
: 新しい VM の名前。MACHINE_TYPE
: VM に選択したマシンタイプ。ZONE
: VM のゾーン。このゾーンは GPU タイプをサポートしている必要があります。DISK_SIZE
: 起動ディスクのサイズ(GB 単位)。ブートディスク サイズは 40 GB 以上で指定します。GPU をサポートする
IMAGE
またはIMAGE_FAMILY
。次のいずれかを指定します。IMAGE
: 公開イメージの必須バージョン。例:--image debian-10-buster-v20200309
IMAGE_FAMILY
: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージから VM が作成されます。たとえば、--image-family debian-10
を指定すると、Compute Engine は Debian 10 イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。
カスタム イメージまたは Deep Learning VM Image を指定することもできます。
IMAGE_PROJECT
: イメージ ファミリーが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。ACCELERATOR_COUNT
: VM に追加する GPU の数。VM のマシンタイプに基づく GPU 制限の一覧については、Compute Engine の GPU をご覧ください。ACCELERATOR_TYPE
: 使用する 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 T4:
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 に自動的に追加されます。
- NVIDIA T4 仮想ワークステーション:
例
たとえば、us-east1-d
ゾーンで 1 つの NVIDIA T4 GPU と 2 つの vCPU を使用する Ubuntu 22.04 VM を起動するには、次の gcloud
コマンドを使用できます。
gcloud compute instances create gpu-instance-1 \ --machine-type n1-standard-2 \ --zone us-east1-d \ --boot-disk-size 40GB \ --accelerator type=nvidia-tesla-t4,count=1 \ --image-family ubuntu-2204-lts \ --image-project ubuntu-os-cloud \ --maintenance-policy TERMINATE
VM に追加する GPU タイプを特定します。GET リクエストを発行し、特定のゾーンのプロジェクトで使用可能な GPU タイプをリストします。
ワークロードがフォールト トレラントで、VM のプリエンプションが発生する可能性がある場合は、Spot VM を使用して VM とアタッチされた GPU のコストを削減することを検討してください。詳細については、Spot VM 上の GPU をご覧ください。"provisioningModel": "SPOT"
は、VM を Spot VM として構成するオプションのパラメータです。Spot VM の場合、自動再起動とホスト メンテナンスのオプション フラグは無効になります。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /acceleratorTypes
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。ZONE
: 使用可能な GPU タイプをリストするゾーン。
instances.insert
メソッドに POST リクエストを送信します。使用する GPU タイプを指定する acceleratorType
パラメータを組み込み、追加する GPU の数を指定する acceleratorCount
パラメータを組み込みます。また、onHostMaintenance
パラメータを TERMINATE
に設定します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances { "machineType": "projects/PROJECT_ID /zones/ZONE /machineTypes/MACHINE_TYPE ", "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskSizeGb": "DISK_SIZE ", "sourceImage": "projects/IMAGE_PROJECT /global/images/family/IMAGE_FAMILY " }, "boot": true } ], "name": "VM_NAME ", "networkInterfaces": [ { "network": "projects/PROJECT_ID /global/networks/NETWORK " } ], "guestAccelerators": [ { "acceleratorCount":ACCELERATOR_COUNT , "acceleratorType": "projects/PROJECT_ID /zones/ZONE /acceleratorTypes/ACCELERATOR_TYPE " } ], "scheduling": { ["automaticRestart": true], "onHostMaintenance": "TERMINATE", ["provisioningModel": "SPOT"] }, }
次のように置き換えます。
VM_NAME
: VM の名前。PROJECT_ID
: プロジェクト ID。ZONE
: VM のゾーン。このゾーンは GPU タイプをサポートしている必要があります。MACHINE_TYPE
: VM に選択したマシンタイプです。希望する GPU 数に基づいた使用可能なマシンタイプについては、Compute Engine の GPU をご覧ください。IMAGE
またはIMAGE_FAMILY
: 次のいずれかを指定します。IMAGE
: 公開イメージの必須バージョン。たとえば、"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
IMAGE_FAMILY
: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージから VM が作成されます。たとえば、"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
を指定すると、Compute Engine は Debian 10 イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。
カスタム イメージまたは Deep Learning VM Image を指定することもできます。
IMAGE_PROJECT
: イメージ ファミリーが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。DISK_SIZE
: 起動ディスクのサイズ(GB 単位)。ブートディスク サイズは 40 GB 以上で指定します。NETWORK
: VM に使用する VPC ネットワーク。default
を指定して、デフォルト ネットワークを使用できます。ACCELERATOR_COUNT
: VM に追加する GPU の数。VM のマシンタイプに基づく GPU 制限の一覧については、Compute Engine の GPU をご覧ください。ACCELERATOR_TYPE
: 使用する 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 T4:
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 に自動的に追加されます。
- NVIDIA T4 仮想ワークステーション:
ドライバをインストールする
ドライバをインストールするには、次のいずれかのオプションを選択します。
- ゲームや可視化など、グラフィックを多用するワークロードを実行する場合は、NVIDIA RTX 仮想ワークステーション用のドライバをインストールします。
- ほとんどのワークロードでは、GPU ドライバをインストールします。
次のステップ
- GPU プラットフォームの詳細を学習する。
- ローカル SSD をインスタンスに追加する。アプリで高性能のストレージが必要な場合に、ローカル SSD デバイスを GPU と効率的に組み合わせる。
- GPU ドライバをインストールする。NVIDIA RTX 仮想ワークステーションを有効にした場合は、仮想ワークステーション用のドライバをインストールする。
- GPU ホスト メンテナンスを処理する。GPU ホスト メンテナンス イベントの処理をご覧ください。