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: A3 High または G4 マシンタイプのアクセラレータ最適化 Spot VM インスタンスを作成します。詳細な手順については、標準(オンデマンド)モデルまたは Spot モデルをご覧ください。
Flex Start: A3 High または G4 マシンタイプのマネージド インスタンス グループ(MIG)を作成します。詳細な手順については、Flex-start モデルをご覧ください。
標準(オンデマンド)モデルまたはスポットモデル
gcloud
gcloud CLI を使用してアクセラレータ最適化標準(オンデマンド)または Spot VM インスタンスを作成するには、--provisioning-model フラグを指定して instances create サブコマンドを使用します。
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: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY_NAME: Confidential VM でサポートされるオペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
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: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY: Confidential VM でサポートされるオペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
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: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY_NAME: 使用する Confidential VM 対応オペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
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: サポートされているオペレーティング システム イメージを含むプロジェクト。次のいずれかを選択します。A3 High マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はconfidential-vm-images。G4 マシンタイプ: Ubuntu イメージの場合は
ubuntu-os-cloud、Container-Optimized OS イメージの場合はcos-cloud。
IMAGE_FAMILY_NAME: 使用する Confidential VM 対応オペレーティング システム イメージのファミリー。マシンタイプに基づいてイメージ ファミリーを選択します。A3 High マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2204-lts。Container-Optimized OS イメージ プロジェクトの
cos-tdx-113-lts。
G4 マシンタイプ:
Ubuntu イメージ プロジェクトの
ubuntu-2404-lts-amd64。Container-Optimized OS イメージ プロジェクトの
cos-125-lts。
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 とプリエンプティブルの数量に基づく割り当てをご覧ください。