Wenn Sie GPUs mit Confidential VMs verwenden möchten, müssen Sie eine Confidential VM-Instanz mit dem Bereitstellungsmodell für Spot- oder Flex-Start-Instanzen auf Grundlage des Maschinentyps a3-highgpu-1g erstellen und Intel TDX verwenden. Nachdem Sie die VM-Instanz erstellt haben, aktivieren Sie den Confidential Computing-Modus auf der angehängten GPU.
Anforderung für GPU-Kontingent
Bevor Sie eine Confidential VM-Instanz mit GPU erstellen, müssen Sie sicherstellen, dass Ihrem Google Cloud-Projekt ein ausreichendes GPU-Kontingent zugewiesen ist. Sie benötigen ein ausreichendes Kontingent für die folgenden Kontingenttypen, um eine Confidential VM-Instanz mit GPU erfolgreich zu erstellen:
Kontingent für GPUs auf Abruf für die GPU-Modelle, die Sie in den einzelnen Regionen erstellen möchten.
Globales Kontingent für die Gesamtzahl der GPUs aller Typen in allen Regionen.
Informationen zum Anfordern einer Erhöhung dieser GPU-Kontingente finden Sie unter Kontingent auf Abruf anfordern und Globales Kontingent anfordern.
Preemptible-Kontingent anfordern
So fordern Sie eine regionale Kontingenterhöhung für NVIDIA H100-GPUs auf Abruf an:
Rufen Sie in der Google Cloud Console die Seite Kontingente auf.
Geben Sie im Feld Filter
PREEMPTIBLE_NVIDIA_H100_GPUS
ein und drücken Sie dann die Eingabe- bzw. Returntaste.Suchen Sie in der Spalte Dimensionen der Tabelle nach der Zeile mit der Region, deren Kontingent Sie erhöhen möchten.
Klicken Sie in dieser Zeile auf
Weitere Aktionen und dann auf Kontingent bearbeiten.Geben Sie im Bereich Kontingentänderungen die gewünschte Anzahl von GPUs in das Feld Neuer Wert ein.
Klicken Sie auf Anfrage senden.
Globales Kontingent anfordern
So beantragen Sie eine Erhöhung des globalen Kontingents:
Rufen Sie in der Google Cloud Console die Seite Kontingente auf.
Geben Sie im Feld Filter
GPUS_ALL_REGIONS
ein und drücken Sie dann die Eingabetaste oder Returntaste.Klicken Sie in der resultierenden Zeile auf
Weitere Aktionen und dann auf Kontingent bearbeiten.Geben Sie im Bereich Kontingentänderungen die gewünschte Anzahl von GPUs in das Feld Neuer Wert ein.
Klicken Sie auf Anfrage senden.
Was passiert nach einem Kontingentantrag?
Wenn Ihr Kontingentantrag erfolgreich ist, erhalten Sie eine Genehmigungs-E‑Mail. Warten Sie 15 Minuten nach Erhalt der E‑Mail und aktualisieren Sie dann die Seite Kontingente, um das aktualisierte Kontingent zu prüfen. Wenn das Kontingent nach 15 Minuten immer noch nicht aktualisiert wurde, wenden Sie sich an den Cloud Customer Care.
Wenn Ihr Kontingentantrag abgelehnt wird, erhalten Sie möglicherweise eine E‑Mail mit einer Erklärung der nächsten Schritte, die Sie unternehmen können. Folgen Sie der Anleitung in der E-Mail, um ein höheres Kontingent zu beantragen.
Confidential VM-Instanz mit GPU erstellen
So erstellen Sie eine VM-Instanz mit dem Spot- oder Flex-Start-Modell:
Wenn Sie das Spot-Modell verwenden möchten, erstellen Sie eine beschleunigungsoptimierte Spot-VM-Instanz. Eine detaillierte Anleitung finden Sie unter Spot-Modell.
Wenn Sie das Flex-Start-Modell verwenden möchten, erstellen Sie eine verwaltete Instanzgruppe (MIG). Eine ausführliche Anleitung finden Sie unter Flex-Start-Modell.
Spot-Modell
gcloud
Verwenden Sie zum Erstellen einer beschleunigungsoptimierten Spot-VM-Instanz mit der gcloud CLI den Unterbefehl instances create
mit dem Flag --provisioning-model
.
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=SPOT \
--confidential-compute-type=TDX \
--machine-type=a3-highgpu-1g \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
Geben Sie folgende Werte an:
INSTANCE_NAME
: Der Name der neuen VM-Instanz.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Image-Projekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.ZONE_NAME
: Die unterstützte Zone, in der die VM erstellt werden soll.
REST
Senden Sie die folgende POST-Anfrage mit dem entsprechenden Inhalt des Anfragetexts, um eine Spot-VM-Instanz zu erstellen.
Die HTTP-Methode und URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
JSON-Text anfordern:
{
"name": "INSTANCE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "TDX"
},
"machineType": "zones/ZONE_NAME/machineTypes/a3-highgpu-1g",
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT"
},
"disks": [
{
"autoDelete": true,
"boot": true,
"index": 0,
"initializeParams": {
"diskSizeGb": "30",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
},
"kind": "compute#attachedDisk",
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT",
"kind": "compute#accessConfig",
"networkTier": "PREMIUM"
}
],
"kind": "compute#networkInterface",
"name": "nic0",
"network": "projects/PROJECT_ID/global/networks/default"
}
]
}
Geben Sie folgende Werte an:
INSTANCE_NAME
: Name der neuen VM-Instanzvorlage.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Image-Projekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.ZONE_NAME
: Die unterstützte Zone, in der die VM erstellt werden soll.
Flex-Start-Modell
Wenn Sie das Flex-Start-Modell verwenden möchten, erstellen Sie zuerst eine Instanzvorlage und dann eine verwaltete Instanzgruppe (MIG) mit dieser Vorlage. Anschließend können Sie der MIG mithilfe von Anfragen zur Größenänderung GPU-VM-Instanzen hinzufügen.
Wenn Sie eine Anfrage zur Größenanpassung für eine MIG mit dem Bereitstellungsmodell „Flex-Start“ verwenden, wird die Verfügbarkeit von GPU-VM-Instanzen verbessert. Weitere Informationen finden Sie unter Anfragen zur Größenänderung in einer MIG.
Hinweise
Voraussetzungen für das Erstellen einer MIG und Beschränkungen für das Erstellen einer Anfrage zur Größenänderung in einer MIG
MIG mit GPU-VM-Instanzen erstellen
Führen Sie die folgenden Schritte aus, um eine Instanzvorlage zu erstellen und dann anhand der Vorlage eine MIG zu erstellen.
Erstellen Sie eine Instanzvorlage.
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=TDX \ --machine-type=a3-highgpu-1g \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --reservation-affinity=none \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_ID
Wenn Sie Secure Boot aktivieren möchten, können Sie optional das Flag
--shielded-secure-boot
für VM-Instanz-Boots verwenden.Geben Sie folgende Werte an:
INSTANCE_TEMPLATE_NAME
: Der Name der neuen VM-Instanzvorlage.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Image-Projekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.RUN_DURATION
: Die Dauer, für die die angeforderten VM-Instanzen ausgeführt werden sollen. Sie müssen den Wert als Anzahl der Tage, Stunden, Minuten oder Sekunden gefolgt vond
,h
,m
bzw.s
formatieren. Geben Sie beispielsweise30m
für 30 Minuten oder1d2h3m4s
für einen Tag, zwei Stunden, drei Minuten und vier Sekunden an. Der Wert muss zwischen 10 Minuten und 7 Tagen liegen.PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.
REST
Senden Sie zum Erstellen einer Vorlage für Confidential VM-Instanzen die folgende POST-Anfrage mit dem entsprechenden Inhalt des Anfragetexts.
Die HTTP-Methode und URL:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
JSON-Text anfordern:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "TDX" }, "machineType": "a3-highgpu-1g", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": RUN_DURATION }, "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" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "canIpForward": false } }
Wenn Sie Secure Boot aktivieren möchten, können Sie optional das folgende Objekt für VM-Instanz-Boots einfügen.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }
Geben Sie folgende Werte an:
PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.ZONE_NAME
: Die unterstützte Zone, in der die MIG erstellt werden soll.INSTANCE_TEMPLATE_NAME
: Der Name der neuen VM-Instanzvorlage.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Image-Projekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.RUN_DURATION
: Die Dauer in Sekunden, für die die angeforderten VM-Instanzen ausgeführt werden sollen. Der Wert muss zwischen600
und604800
Sekunden liegen, was einem Bereich zwischen 10 Minuten und 7 Tagen entspricht.
Erstellen Sie eine MIG und eine Anfrage zur Größenanpassung, um GPU-VM-Instanzen gleichzeitig hinzuzufügen.
Listen Sie die Instanzen in der MIG auf.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
Geben Sie folgende Werte an:
INSTANCE_GROUP_NAME
: Name der MIG.ZONE_NAME
: Die unterstützte Zone, aus der eine Liste von VM-Instanzen abgerufen werden soll.PROJECT_ID
: Optional. Die ID des Projekts, aus dem eine Liste von VM-Instanzen abgerufen werden soll.
REST
Senden Sie die folgende GET-Anfrage, um alle Instanzen aufzulisten.
Die HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Wenn Sie die Liste der Instanzen auf eine bestimmte Zone beschränken möchten, senden Sie die folgende GET-Anfrage.
Die HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Geben Sie folgende Werte an:
ZONE_NAME
: Die unterstützte Zone, aus der eine Liste von VM-Instanzen abgerufen werden soll.PROJECT_ID
: Die ID des Projekts, aus dem eine Liste der VM-Instanzen abgerufen werden soll.
Confidential Computing-Modus auf der GPU aktivieren
Stellen Sie mit dem Befehl „gcloud compute ssh“ eine Verbindung zu einer VM-Instanz in der MIG her.
gcloud compute ssh
Aktualisieren Sie die Paketliste und installieren Sie die erforderlichen Tools und Bibliotheken.
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
Installieren Sie die entsprechenden GPU-Treiber auf der VM-Instanz. Informationen zu VM-Instanzen mit aktiviertem Secure Boot finden Sie unter GPU-Treiber installieren (Secure Boot-VMs). Wir empfehlen die Verwendung der Treiberversion
nvidia-driver-575-open
.Aktivieren Sie die Linux Kernel Crypto API (LKCA), um eine sichere Kommunikation zwischen der GPU und dem GPU-Treiber zu konfigurieren.
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
Aktivieren Sie den Persistenzmodus, um eine sichere SPDM-Verbindung (Security Protocol and Data Model) zwischen der GPU und dem GPU-Treiber herzustellen.
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
Starten Sie die VM-Instanz neu, um die LKCA- und Persistenzmoduskonfigurationen anzuwenden.
sudo reboot
Optional: Installieren Sie die folgenden CUDA-Beispiele.
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.5.tar.gz tar xzvf cuda-samples.tar.gz
Nächste Schritte
So prüfen Sie, ob der Modus „Vertraulich“ auf GPUs aktiviert ist
Weitere Informationen zum Kontingentverbrauch finden Sie unter GPU-VMs und Zuteilungskontingente auf Abruf.