Per utilizzare le GPU con Confidential VM, devi creare un'istanza Confidential VM utilizzando il modello di provisioning spot o flessibile basato sul tipo di macchina a3-highgpu-1g e utilizzare Intel TDX. Dopo aver creato l'istanza VM, devi attivare la modalità Confidential Computing sulla GPU collegata.
Requisito di quota GPU
Prima di creare un'istanza Confidential VM con GPU, assicurati di disporre di una quota GPU sufficiente allocata al tuo progetto Google Cloud. Per creare correttamente un'istanza Confidential VM con GPU, devi disporre di una quota sufficiente nei seguenti tipi di quota:
Quota prerilasciabile per i modelli di GPU che vuoi creare in ogni regione.
Quota globale per il numero totale di GPU di tutti i tipi in tutte le regioni.
Per richiedere un aumento di queste quote di GPU, consulta Richiedere una quota preemptible e Richiedere una quota globale.
Richiedere una quota preemptive
Per richiedere un aumento della quota di GPU NVIDIA H100 prerilasciabili a livello di regione, procedi nel seguente modo:
Nella console Google Cloud , vai alla pagina Quote.
Nella casella Filtro, inserisci
PREEMPTIBLE_NVIDIA_H100_GPUS
e poi premi il tasto Invio.Nella colonna Dimensioni della tabella, individua la riga con la regione la cui quota vuoi aumentare.
In quella riga, fai clic su
Altre azioni e poi su Modifica quota.Nel riquadro Modifiche alla quota, inserisci il numero di GPU che vuoi nella casella Nuovo valore.
Fai clic su Invia richiesta.
Richiedere la quota globale
Per richiedere un aumento della quota globale:
Nella console Google Cloud , vai alla pagina Quote.
Nella casella Filtro, inserisci
GPUS_ALL_REGIONS
e premi il tasto Invio.Nella riga risultante, fai clic su
Altre azioni e poi su Modifica quota.Nel riquadro Modifiche alla quota, inserisci il numero di GPU che vuoi nella casella Nuovo valore.
Fai clic su Invia richiesta.
Cosa succede dopo una richiesta di quota
Se la richiesta di quota va a buon fine, ti viene inviata un'email di approvazione. Attendi 15 minuti dopo aver ricevuto l'email, quindi aggiorna la pagina Quote per verificare la quota aggiornata. Se la quota non è ancora stata aggiornata dopo 15 minuti, contatta l'assistenza clienti Google Cloud.
Se la tua richiesta di quota viene rifiutata, potresti ricevere un'email che spiega i passaggi successivi che puoi intraprendere. Per richiedere nuovamente una quota maggiore, segui le istruzioni riportate nell'email.
Crea un'istanza Confidential VM con GPU
Per creare un'istanza VM utilizzando il modello spot o flex-start:
Per utilizzare il modello spot, crea un'istanza VM spot ottimizzata per l'acceleratore. Per la procedura dettagliata, vedi Modello spot.
Per utilizzare il modello di avvio flessibile, crea un gruppo di istanze gestite (MIG). Per la procedura dettagliata, vedi Modello di avvio flessibile.
Modello spot
gcloud
Per creare un'istanza VM spot ottimizzata per gli acceleratori con
gcloud CLI, utilizza il
sottocomando instances create
con il 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
Fornisci i seguenti valori:
INSTANCE_NAME
: il nome della nuova istanza VM.IMAGE_PROJECT
: Il progetto contenente l'immagine del sistema operativo supportato. Ti consigliamo di utilizzare il progetto di immaginiubuntu-os-cloud
per le immagini Ubuntu. Se vuoi, puoi utilizzare il progetto di immaginiconfidential-vm-images
per le immagini di Container-Optimized OS.IMAGE_FAMILY_NAME
: la famiglia per l'immagine del sistema operativo supportata da Confidential VM. Quando utilizzi il progetto di immaginiubuntu-os-cloud
, ti consigliamo di utilizzare la famiglia di immaginiubuntu-2204-lts
. Per le immagini Container-Optimized OS del progettoconfidential-vm-images
, utilizza la famiglia di immaginicos-tdx-113-lts
.ZONE_NAME
: la zona supportata in cui creare la VM.
REST
Per creare un'istanza VM spot, invia la seguente richiesta POST con il contenuto del corpo appropriato.
Metodo HTTP e URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Corpo JSON della richiesta:
{
"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"
}
]
}
Fornisci i seguenti valori:
INSTANCE_NAME
: il nome del nuovo modello di istanza VM.IMAGE_PROJECT
: Il progetto contenente l'immagine del sistema operativo supportato. Ti consigliamo di utilizzare il progetto di immaginiubuntu-os-cloud
per le immagini Ubuntu. Se vuoi, puoi utilizzare il progetto di immaginiconfidential-vm-images
per le immagini di Container-Optimized OS.IMAGE_FAMILY_NAME
: la famiglia per l'immagine del sistema operativo supportata da Confidential VM. Quando utilizzi il progetto di immaginiubuntu-os-cloud
, ti consigliamo di utilizzare la famiglia di immaginiubuntu-2204-lts
. Per le immagini Container-Optimized OS del progettoconfidential-vm-images
, utilizza la famiglia di immaginicos-tdx-113-lts
.PROJECT_ID
: (Facoltativo) L'ID del progetto in cui creare la VM.ZONE_NAME
: la zona supportata in cui creare la VM.
Modello di avvio flessibile
Per utilizzare il modello di avvio flessibile, devi prima creare un modello di istanza e poi creare un gruppo di istanze gestite (MIG) utilizzando quel modello. A questo punto, puoi aggiungere istanze di VM GPU al MIG utilizzando le richieste di ridimensionamento.
L'utilizzo di una richiesta di ridimensionamento del MIG con il modello di provisioning di avvio flessibile migliora la disponibilità delle istanze VM GPU. Per ulteriori informazioni, consulta la pagina Informazioni sulle richieste di ridimensionamento in un MIG.
Prima di iniziare
Consulta i prerequisiti per la creazione di un MIG e le limitazioni per la creazione di una richiesta di ridimensionamento in un MIG.
Crea un MIG con istanze VM GPU
Per creare un template di istanza e poi utilizzarlo per creare un gruppo di istanze gestite, completa i seguenti passaggi.
Creare un modello di istanza.
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
Per abilitare Avvio protetto, puoi utilizzare facoltativamente il flag
--shielded-secure-boot
per gli avvii dell'istanza VM.Fornisci i seguenti valori:
INSTANCE_TEMPLATE_NAME
: il nome del nuovo template di istanza VM.IMAGE_PROJECT
: Il progetto contenente l'immagine del sistema operativo supportato. Ti consigliamo di utilizzare il progetto di immaginiubuntu-os-cloud
per le immagini Ubuntu. Se vuoi, puoi utilizzare il progetto di immaginiconfidential-vm-images
per le immagini di Container-Optimized OS.IMAGE_FAMILY_NAME
: la famiglia per l'immagine del sistema operativo supportata da Confidential VM. Quando utilizzi il progetto di immaginiubuntu-os-cloud
, ti consigliamo di utilizzare la famiglia di immaginiubuntu-2204-lts
. Per le immagini Container-Optimized OS del progettoconfidential-vm-images
, utilizza la famiglia di immaginicos-tdx-113-lts
.RUN_DURATION
: la durata per cui vuoi eseguire le istanze VM richieste. Devi formattare il valore come numero di giorni, ore, minuti o secondi seguito rispettivamente dad
,h
,m
es
. Ad esempio, specifica30m
per 30 minuti o1d2h3m4s
per un giorno, due ore, tre minuti e quattro secondi. Il valore deve essere compreso tra 10 minuti e sette giorni.PROJECT_ID
: (Facoltativo) L'ID del progetto in cui creare la VM.
REST
Per creare un template di istanza Confidential VM, invia la seguente richiesta POST con il contenuto del corpo appropriato.
Metodo HTTP e URL:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Corpo JSON della richiesta:
{ "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 } }
Per abilitare l'avvio protetto, puoi includere facoltativamente il seguente oggetto per gli avvii dell'istanza VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }
Fornisci i seguenti valori:
PROJECT_ID
: (Facoltativo) L'ID del progetto in cui creare la VM.ZONE_NAME
: la zona supportata in cui creare il MIG.INSTANCE_TEMPLATE_NAME
: il nome del nuovo template di istanza VM.IMAGE_PROJECT
: Il progetto contenente l'immagine del sistema operativo supportato. Ti consigliamo di utilizzare il progetto di immaginiubuntu-os-cloud
per le immagini Ubuntu. Se vuoi, puoi utilizzare il progetto di immaginiconfidential-vm-images
per le immagini Container-Optimized OS.IMAGE_FAMILY_NAME
: la famiglia per l'immagine del sistema operativo supportata da Confidential VM. Quando utilizzi il progetto di immaginiubuntu-os-cloud
, ti consigliamo di utilizzare la famiglia di immaginiubuntu-2204-lts
. Per le immagini Container-Optimized OS del progettoconfidential-vm-images
, utilizza la famiglia di immaginicos-tdx-113-lts
.RUN_DURATION
: la durata, in secondi, per cui vuoi che vengano eseguite le istanze VM richieste. Il valore deve essere compreso tra600
e604800
secondi, il che corrisponde a un intervallo compreso tra 10 minuti e 7 giorni.
Crea un MIG e una richiesta di ridimensionamento per aggiungere contemporaneamente istanze VM GPU.
Elenca le istanze presenti nel MIG.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
Fornisci i seguenti valori:
INSTANCE_GROUP_NAME
: il nome del MIG.ZONE_NAME
: la zona supportata da cui recuperare un elenco di istanze VM.PROJECT_ID
: (Facoltativo) L'ID del progetto da cui ottenere un elenco di istanze VM.
REST
Per elencare tutte le istanze, invia la seguente richiesta GET.
Metodo HTTP e URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Per restringere l'elenco delle istanze a una zona specifica, invia la seguente richiesta GET.
Metodo HTTP e URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Fornisci i seguenti valori:
ZONE_NAME
: la zona supportata da cui recuperare un elenco di istanze VM.PROJECT_ID
: l'ID del progetto da cui ottenere un elenco di istanze VM.
Abilita la modalità Confidential Computing sulla GPU
Connettiti a un'istanza VM nel MIG utilizzando il comando gcloud compute ssh.
gcloud compute ssh
Aggiorna l'elenco dei pacchetti e installa gli strumenti e le librerie necessari.
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
Installa i driver GPU appropriati sull'istanza VM. Per le istanze VM in cui è abilitato Avvio protetto, consulta Installare i driver GPU (VM con Avvio protetto). Ti consigliamo di utilizzare la versione del driver
nvidia-driver-575-open
.Per configurare una comunicazione sicura tra la GPU e il driver GPU, abilita l'API Linux Kernel Crypto (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
Attiva la modalità di persistenza per stabilire una connessione sicura Security Protocol and Data Model (SPDM) tra la GPU e il driver della GPU.
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
Riavvia l'istanza VM per applicare le configurazioni della modalità LKCA e di persistenza.
sudo reboot
(Facoltativo) Installa i seguenti esempi CUDA.
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
Passaggi successivi
Scopri come verificare che la modalità riservata sia attivata sulle GPU.
Scopri come controllare la quota di GPU.
Leggi VM GPU e quote di allocazione preemptible per comprendere il consumo della quota.