如要搭配使用 GPU 和 Confidential VM 執行個體,您必須使用支援的機器類型和執行個體佈建模式建立 VM 執行個體。建立 VM 執行個體後,請在連接的 GPU 上啟用機密運算模式。
搭載 NVIDIA GPU 的 Confidential VM 執行個體適用於下列機器類型:
A3 High 機型:NVIDIA H100 GPU 搭配 Intel TDX。支援 Spot 和彈性啟動佈建模式。
G4 機型:NVIDIA RTX PRO 6000 搭配 AMD SEV。支援標準 (隨選)、Spot 和彈性啟動佈建模式,以及預留項目。
搭配使用 NVIDIA RTX Pro 6000 GPU 與 Confidential G4 VM 執行個體,會自動產生 NVIDIA 機密運算軟體和服務的授權費用。詳情請參閱「機密運算與 GPU 定價」。
建立具備 GPU 的 Confidential VM 執行個體前,請確認您有足夠的 GPU 配額。詳情請參閱「配額」。
建立搭載 GPU 的 Confidential VM 執行個體
如要建立附加 GPU 的 Confidential VM 執行個體,請使用下列其中一種佈建模型:
標準 (隨需):建立標準 (隨需) 加速器最佳化 VM 執行個體。這個模型僅適用於 G4 機型。如需詳細步驟,請參閱「標準 (隨選) 或 Spot 模式」。
Spot:為 A3 High 或 G4 機型建立加速器最佳化 Spot VM 執行個體。如需詳細步驟,請參閱「標準 (隨選) 或 Spot 模式」。
彈性啟動:為 A3 High 或 G4 機型建立代管執行個體群組 (MIG)。如需詳細步驟,請參閱「彈性啟動模型」。
標準 (隨選) 或 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
如要啟用「安全啟動」,您可以使用 --shielded-secure-boot 標記啟動 VM 執行個體。
提供以下這些值:
INSTANCE_NAME:新 VM 執行個體的名稱。PROVISIONING_MODEL:機器類型支援的佈建模型。選擇下列其中一個選項:A3 High 機型:Spot VM 執行個體為
SPOT。G4 機器類型:標準 (隨選) VM 執行個體為
STANDARD,Spot VM 執行個體則為SPOT。如未指定,這個值預設為STANDARD。
CONFIDENTIAL_COMPUTING_TECHNOLOGY:要使用的機密運算技術類型。選擇下列其中一個選項:A3 High 機型 (
a3-highgpu-1g):TDXG4 機器類型 (
g4-standard-48):SEV
MACHINE_TYPE_NAME:VM 機器類型。請選擇下列其中一項:a3-highgpu-1gg4-standard-48
ZONE_NAME:要在哪個支援的可用區建立 VM。IMAGE_PROJECT:包含支援 Confidential VM 的 GPU 作業系統映像檔的專案。IMAGE_FAMILY_NAME:支援 Confidential VM 的 GPU 作業系統映像檔系列。
REST
如要建立標準 (隨選) 或 Spot VM 執行個體,請傳送下列 POST 要求,並附上適當的主體內容。
請使用下列 HTTP 方法和網址:
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:要使用的機密運算技術類型。選擇下列其中一個選項:A3 High 機型 (
a3-highgpu-1g):TDXG4 機器類型 (
g4-standard-48):SEV
PROVISIONING_MODEL:機器系列支援的佈建模型。選擇下列其中一個選項:A3 High 機型:Spot VM 執行個體為
SPOT。G4 機器類型:
STANDARD適用於標準 (隨選) VM 執行個體,或SPOT適用於 Spot VM 執行個體。如未指定,這個值會預設為STANDARD。
IMAGE_PROJECT:包含支援 Confidential VM 的 GPU 作業系統映像檔的專案。IMAGE_FAMILY:支援 Confidential VM 的 GPU 作業系統映像檔系列。
彈性啟動模式
如要使用彈性啟動模式,請先建立執行個體範本,然後使用該範本建立代管執行個體群組 (MIG)。接著,您可以使用大小調整要求,將 GPU VM 執行個體新增至 MIG。
使用 MIG 大小調整要求搭配彈性啟動佈建模式,可提高 GPU VM 執行個體的取得率。詳情請參閱「關於 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:要使用的機密運算技術類型。選擇下列其中一個選項: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:要使用的 Confidential VM 支援 GPU 作業系統映像檔系列。RUN_DURATION:要求的 VM 執行個體應執行的時間長度。值的格式必須是天數、小時數、分鐘數或秒數,後面分別加上d、h、m和s。例如:6d8h44m。PROJECT_ID:要建立 VM 的專案 ID。
REST
如要建立 Confidential VM 執行個體範本,請傳送下列 POST 要求,並附上適當的主體內容。
請使用下列 HTTP 方法和網址:
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:要使用的機密運算技術類型。選擇下列其中一個選項: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:包含支援 Confidential VM 的 GPU 作業系統映像檔的專案。IMAGE_FAMILY_NAME:要使用的 Confidential VM 支援 GPU 作業系統映像檔系列。
建立 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 方法和網址:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates如要將執行個體清單縮小至特定區域,請傳送下列 GET 要求。
請使用下列 HTTP 方法和網址:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates提供以下這些值:
ZONE_NAME:要從中取得 VM 執行個體清單的支援區域。PROJECT_ID:要取得 VM 執行個體清單的專案 ID。
搭配機密 VM 執行個體使用預留資源
您可以使用預留項目,確保 Confidential VM 執行個體有足夠的容量,但僅限 G4 機型。
如要為 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 上啟用機密運算模式
使用 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-12在 VM 執行個體上安裝適當的 GPU 驅動程式。如果是已啟用安全啟動功能的 VM 執行個體,請參閱「安裝 GPU 驅動程式 (安全啟動 VM)」。建議使用 580 以上版本的 NVIDIA 開放式核心模組驅動程式。
如要設定 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 驅動程式之間建立安全的安全性通訊協定和資料模型 (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-reload重新啟動 VM 執行個體,套用 LKCA 和持續模式設定。
sudo reboot使用 gcloud 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 和先占分配配額」。