Confidential VM インスタンスで GPU を使用するには、サポートされているマシンタイプとインスタンス プロビジョニング モデルを使用して VM インスタンスを作成する必要があります。VM インスタンスを作成したら、接続されている GPU で Confidential Computing モードを有効にします。
NVIDIA GPU を搭載した Confidential VM インスタンスは、次のマシンタイプで使用できます。
A3 High マシンタイプ: Intel TDX を搭載した NVIDIA H100 GPU。Spot プロビジョニング モデルと Flex Start プロビジョニング モデルをサポートしています。
G4 マシンタイプ: AMD SEV を搭載した NVIDIA RTX PRO 6000。標準 (オンデマンド)、Spot、Flex Start のプロビジョニング モデルと 予約をサポートしています。
Confidential G4 VM インスタンスで NVIDIA RTX Pro 6000 GPU を使用すると、NVIDIA Confidential Computing ソフトウェアとサービスのライセンス料金が自動的に発生します。詳細については、 GPU を使用した Confidential Computing の料金をご覧ください。
GPU を使用して Confidential VM インスタンスを作成する前に、十分な GPU 割り当てがあることを確認してください。詳細については、 割り当てをご覧ください。
GPU を使用して Confidential VM インスタンスを作成する
GPU を接続した Confidential VM インスタンスを作成するには、次のいずれかのプロビジョニング モデルを使用します。
標準(オンデマンド): 標準(オンデマンド)アクセラレータ最適化 VM インスタンスを作成します。このモデルは、G4 マシンタイプでのみ使用できます。詳細な手順については、 標準(オンデマンド)モデルまたは Spot モデルをご覧ください。
Spot: アクセラレータ最適化 Spot VM インスタンスを A3 High または G4 マシンタイプで作成します。詳細な手順については、 標準(オンデマンド)モデルまたは Spot モデルをご覧ください。
Flex Start: A3 High または G4 マシンタイプの マネージド インスタンス グループ(MIG) を作成します。詳細な手順については、 Flex Start モデルをご覧ください。
標準(オンデマンド)モデルまたは Spot モデル
gcloud
gcloud CLI を使用してアクセラレータ最適化された標準(オンデマンド)または
Spot VM インスタンスを作成するには、
instances create
サブコマンドと --provisioning-model フラグを使用します。
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=PROVISIONING_MODEL \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
セキュアブートを有効にするには、
VM インスタンスの起動に --shielded-secure-boot フラグを使用します。
次の値を指定します。
INSTANCE_NAME: 新しい VM インスタンスの名前。PROVISIONING_MODEL: マシンタイプでサポートされているプロビジョニング モデル。次のいずれかを選択します。A3 High マシンタイプ: Spot VM インスタンスの場合は
SPOT。G4 マシンタイプ: 標準(オンデマンド)VM インスタンスの場合は
STANDARD、Spot VM インスタンスの場合はSPOT。指定しない場合、この値はデフォルトでSTANDARDになります。
CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジー のタイプ。次のいずれかを選択します。A3 High マシンタイプ (
a3-highgpu-1g):TDXG4 マシンタイプ (
g4-standard-48):SEV
MACHINE_TYPE_NAME: VM マシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48
ZONE_NAME: VM を作成する サポート対象ゾーン 。IMAGE_PROJECT: GPU 用の Confidential VM 対応オペレーティング システム イメージを含むプロジェクト。IMAGE_FAMILY_NAME: GPU 用の Confidential VM 対応オペレーティング システム イメージのファミリー。
REST
標準(オンデマンド)または Spot VM インスタンスを作成するには、適切な本文コンテンツを含む次の POST リクエストを送信します。
次の HTTP メソッドと URL を使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
次のリクエスト JSON 本文を使用します。
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"automaticRestart": true,
"provisioningModel": "PROVISIONING_MODEL"
},
"disks": [
{
"boot": true,
"autoDelete": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
"diskSizeGb": "30"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
次の値を指定します。
PROJECT_ID: 省略可。VM を作成するプロジェクトの ID。ZONE: VM を作成する サポート対象ゾーン 。INSTANCE_NAME: 新しい VM インスタンスの名前。MACHINE_TYPE_NAME: VM マシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48
CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジー のタイプ。次のいずれかを選択します。A3 High マシンタイプ (
a3-highgpu-1g):TDXG4 マシンタイプ (
g4-standard-48):SEV
PROVISIONING_MODEL: マシンシリーズでサポートされているプロビジョニング モデル。次のいずれかを選択します。A3 High マシンタイプ: Spot VM インスタンスの場合は
SPOT。G4 マシンタイプ: 標準(オンデマンド)VM インスタンスの場合は
STANDARD、Spot VM インスタンスの場合はSPOT。指定しない場合、この値はデフォルトでSTANDARDになります。
IMAGE_PROJECT: GPU 用の Confidential VM 対応オペレーティング システム イメージを含むプロジェクト。IMAGE_FAMILY: GPU 用の Confidential VM 対応オペレーティング システム イメージのファミリー。
Flex Start モデル
Flex Start モデルを使用するには、 まずインスタンス テンプレートを作成し、そのテンプレートを使用して マネージド インスタンス グループ(MIG)を作成します。 その後、 サイズ変更リクエストを使用して GPU VM インスタンスを MIG に追加できます。
Flex Start プロビジョニング モデルで MIG サイズ変更リクエストを使用すると、GPU VM インスタンスの取得可能性が向上します。詳細については、 MIG のサイズ変更リクエストについてをご覧ください。
始める前に
- MIG の作成については、 MIG の前提条件をご覧ください。
- MIG でサイズ変更リクエストを作成する場合は、 サイズ変更リクエストの制限事項をご覧ください。
GPU VM インスタンスを使用して MIG を作成する
インスタンス テンプレートを作成し、そのテンプレートを使用して MIG を作成するには、次の手順を完了します。
インスタンス テンプレートを作成します。
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \ --machine-type=MACHINE_TYPE_NAME \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_ID次の値を指定します。
INSTANCE_TEMPLATE_NAME: 新しい VM インスタンス テンプレートの名前。CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジー のタイプ。次のいずれかを選択します。A3 High マシンタイプ (
a3-highgpu-1g):TDXG4 マシンタイプ (
g4-standard-48):SEV
MACHINE_TYPE_NAME: VM マシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48
IMAGE_PROJECT: GPU 用の Confidential VM 対応オペレーティング システム イメージを含むプロジェクト。IMAGE_FAMILY_NAME: 使用する GPU 用の Confidential VM 対応オペレーティング システム イメージのファミリー。RUN_DURATION: リクエストされた VM インスタンスを実行する期間。値は、日数、時間、分、秒の後にそれぞれd、h、m、sを付けてフォーマットする必要があります。例:6d8h44m。PROJECT_ID: VM を作成するプロジェクトの ID。
REST
Confidential VM インスタンス テンプレートを作成するには、適切な本文コンテンツを含む次の POST リクエストを送信します。
次の HTTP メソッドと URL を使用します。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates次のリクエスト JSON 本文を使用します。
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY" }, "machineType": "MACHINE_TYPE_NAME", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": "RUN_DURATION_IN_SECONDS" }, "automaticRestart": true, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START", "preemptible": false }, "disks": [ { "autoDelete": true, "index": 0, "boot": true, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME", "diskSizeGb": "30" }, "type": "PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default" } ], "canIpForward": false } }セキュアブートを有効にするには、VM インスタンスの起動に次のオブジェクトを含めます。
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }次の値を指定します。
PROJECT_ID: テンプレートを作成するプロジェクトの ID。REGION: テンプレートを作成するリージョン。INSTANCE_TEMPLATE_NAME: 新しい VM インスタンス テンプレートの名前。CONFIDENTIAL_COMPUTING_TECHNOLOGY: 使用する Confidential Computing テクノロジー のタイプ。次のいずれかを選択します。A3 High マシンタイプ (
a3-highgpu-1g):TDXG4 マシンタイプ (
g4-standard-48):SEV
MACHINE_TYPE_NAME: VM マシンタイプ。次のいずれかを選択します。a3-highgpu-1gg4-standard-48
RUN_DURATION_IN_SECONDS: リクエストされた VM インスタンスを実行する期間(秒単位)。値は600秒から604800秒の間で指定する必要があります。IMAGE_PROJECT: GPU 用の Confidential VM 対応オペレーティング システム イメージを含むプロジェクト。IMAGE_FAMILY_NAME: 使用する GPU 用の Confidential VM 対応オペレーティング システム イメージのファミリー。
MIG とサイズ変更リクエストを作成して 、GPU VM インスタンスを一度に追加します。
MIG に存在するインスタンスを一覧表示します。
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID次の値を指定します。
INSTANCE_GROUP_NAME: MIG の名前。ZONE_NAME: VM インスタンスのリストを取得する サポート対象ゾーン 。PROJECT_ID: 省略可。VM インスタンスのリストを取得するプロジェクトの ID。
REST
すべてのテンプレートを一覧表示するには、次の GET リクエストを送信します。
次の HTTP メソッドと URL を使用します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplatesインスタンスのリストを特定のゾーンに絞り込むには、次の GET リクエストを送信します。
次の HTTP メソッドと URL を使用します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates次の値を指定します。
ZONE_NAME: VM インスタンスのリストを取得する サポート対象ゾーン 。PROJECT_ID: VM インスタンスのリストを取得するプロジェクトの ID。
Confidential VM インスタンスで予約を使用する
予約を使用すると、予約を使用すると、 G4 マシンタイプでのみ Confidential VM インスタンスの容量を確保できます。
Confidential VM インスタンスで予約を使用するには:
サポートされているゾーンに標準予約を作成します。 予約の作成時に
--require-specific-reservationフラグを使用すると、インスタンスがこの予約を使用する方法を制御できます。予約を使用する Confidential VM インスタンスを作成します。 VM インスタンスを作成するときに、
--confidential-compute-type=SEVフラグを含めて、Confidential VM インスタンスにします。このインスタンスが予約を使用する方法は、予約のアフィニティ設定によって異なります。
次の例は、Confidential VM インスタンスで予約を使用する方法を示しています。予約を使用する方法は、予約の作成方法によって異なります。
自動使用:
--require-specific-reservationフラグを指定せずに予約を作成した場合は、一致するプロパティ(マシンタイプやゾーンなど)を持つ G4 Confidential VM インスタンス を作成して、予約を自動的に使用できます。特定の使用: 予約を
--require-specific-reservationフラグを指定して作成した場合は、インスタンスの作成時に--reservation-affinity=specificと--reservation=RESERVATION_NAMEフラグを使用して予約をターゲットにする必要があります。gcloud compute instances create INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE_NAME \ --machine-type=g4-standard-48 \ --confidential-compute-type=SEV \ --image-project=ubuntu-os-cloud \ --image-family=ubuntu-2404-lts-amd64 \ --reservation-affinity=specific \ --reservation=RESERVATION_NAME次の値を指定します。
INSTANCE_NAME: 新しい VM インスタンスの名前。PROJECT_ID: 省略可。VM を作成するプロジェクトの ID。ZONE_NAME: VM を作成する サポート対象ゾーン 。RESERVATION_NAME: 予約の名前。
VM インスタンスが予約を使用する方法とアフィニティの仕組みについては、 予約を使用するをご覧ください。
GPU で Confidential Computing モードを有効にする
gcloud compute ssh コマンドを使用して、MIG 内の VM インスタンスに接続します。
gcloud compute sshパッケージ リストを更新し、必要なツールとライブラリをインストールします。
sudo apt-get update --yes sudo apt-get install linux-headers-$(uname -r) sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12VM インスタンスに適切な GPU ドライバをインストールします。 セキュアブートが有効になっている VM インスタンスについては、 GPU ドライバをインストールする(セキュアブート VM)をご覧ください。 NVIDIA オープンカーネル モジュール ドライバのバージョン 580 以降を使用することをおすすめします。
GPU と GPU ドライバ間の安全な通信を構成するには、Linux Kernel Crypto API(LKCA)を有効にします。
echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf sudo update-initramfs -u永続モードを有効にして、GPU と GPU ドライバ間の安全な Security Protocol and Data Model(SPDM)接続を確立します。
sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service sudo systemctl daemon-reloadVM インスタンスを再起動して、LKCA と永続モードの構成を適用します。
sudo rebootgcloud compute ssh コマンドを使用して、MIG 内の VM インスタンスに接続します。
gcloud compute ssh(省略可)必要なドライバ バージョンをサポートする CUDA サンプルをインストールします。
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz tar xzvf cuda-samples.tar.gz
次のステップ
GPU で情報保護モードが有効になっていることを確認する方法を 学習する。
GPU 割り当てについて学習する。
割り当ての使用量については、 GPU VM とプリエンプティブルの数量に基づく割り当てをご覧ください。