Per utilizzare le GPU con le istanze Confidential VM, devi creare un'istanza VM utilizzando un tipo di macchina e un modello di provisioning dell'istanza supportati. Dopo aver creato l'istanza VM, abilita la modalità Confidential Computing sulla GPU collegata.
Le istanze Confidential VM con GPU NVIDIA sono disponibili sui seguenti tipi di macchina:
Tipo di macchina A3 High: GPU NVIDIA H100 con Intel TDX. Supporta i modelli di provisioning spot e con avvio flessibile.
Tipo di macchina G4: NVIDIA RTX PRO 6000 con AMD SEV. Supporta i modelli di provisioning standard (on demand), spot e con avvio flessibile, nonché le prenotazioni.
L'utilizzo delle GPU NVIDIA RTX Pro 6000 con le istanze Confidential VM G4 comporta automaticamente una tariffa per la licenza per il software per computer e i servizi NVIDIA Confidential Computing. Per maggiori dettagli, consulta Prezzi di Confidential Computing con GPU.
Prima di creare un'istanza Confidential VM con GPU, assicurati di avere una quota GPU sufficiente. Per ulteriori informazioni, consulta Quote.
Crea un'istanza Confidential VM con GPU
Per creare un'istanza Confidential VM con una GPU collegata, utilizza uno dei seguenti modelli di provisioning:
Standard (on demand): crea un'istanza VM standard (on demand) ottimizzata per l'acceleratore. Questo modello è disponibile solo per il tipo di macchina G4. Per la procedura dettagliata, consulta Modello standard (on demand) o spot.
Spot: crea un'istanza VM spot ottimizzata per l'acceleratore per i tipi di macchina A3 High o G4. Per la procedura dettagliata, consulta Modello standard (on demand) o spot.
Avvio flessibile: crea un gruppo di istanze gestite (MIG) per i tipi di macchina A3 High o G4. Per la procedura dettagliata, consulta Modello con avvio flessibile.
Modello standard (on demand) o spot
gcloud
Per creare un'istanza VM standard (on demand) o
spot ottimizzata per l'acceleratore con gcloud CLI, utilizza il
instances create
sottocomando con il --provisioning-model flag.
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
Per abilitare l'avvio protetto,
puoi utilizzare il flag --shielded-secure-boot per gli avvii delle istanze VM.
Fornisci i seguenti valori:
INSTANCE_NAME: il nome della nuova istanza VM.PROVISIONING_MODEL: il modello di provisioning supportato dal tipo di macchina. Scegli una delle opzioni seguenti:Tipo di macchina A3 High:
SPOTper le istanze VM spot.Tipo di macchina G4:
STANDARDper le istanze VM standard (on demand) oSPOTper le istanze VM spot. Se non specificato, il valore predefinito èSTANDARD.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:Tipo di macchina A3 High (
a3-highgpu-1g):TDXTipo di macchina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: il tipo di macchina VM. Scegli una delle opzioni seguenti:a3-highgpu-1gg4-standard-48
ZONE_NAME: la zona supportata in cui creare la VM.IMAGE_PROJECT: il progetto che contiene l' immagine del sistema operativo supportata da Confidential VM per la GPU.IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM per la GPU.
REST
Per creare un'istanza VM standard (on demand) o spot, invia la seguente richiesta POST con il contenuto del corpo appropriato.
Utilizza il seguente metodo HTTP e URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Utilizza il seguente corpo JSON della richiesta:
{
"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"
}
]
}
Fornisci i seguenti valori:
PROJECT_ID: (facoltativo) L'ID del progetto in cui creare la VM.ZONE: la zona supportata in cui creare la VM.INSTANCE_NAME: il nome della nuova istanza VM.MACHINE_TYPE_NAME: il tipo di macchina VM. Scegli una delle opzioni seguenti:a3-highgpu-1gg4-standard-48
CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:Tipo di macchina A3 High (
a3-highgpu-1g):TDXTipo di macchina G4 (
g4-standard-48):SEV
PROVISIONING_MODEL: il modello di provisioning supportato dalla serie di macchine. Scegli una delle opzioni seguenti:Tipo di macchina A3 High:
SPOTper le istanze VM spot.Tipo di macchina G4:
STANDARDper istanze VM standard (on demand) oSPOTper istanze VM spot. Se non specificato, il valore predefinito èSTANDARD.
IMAGE_PROJECT: il progetto che contiene l' immagine del sistema operativo supportata da Confidential VM per la GPU.IMAGE_FAMILY: la famiglia dell' immagine del sistema operativo supportata da Confidential VM per la GPU.
Modello con avvio flessibile
Per utilizzare il modello con avvio flessibile, crea prima un template di istanza, quindi utilizzalo per creare un gruppo di istanze gestite (MIG). Puoi quindi aggiungere istanze VM GPU al MIG utilizzando le richieste di ridimensionamento.
L'utilizzo di una richiesta di ridimensionamento del MIG con il modello di provisioning con avvio flessibile migliora la possibilità di ottenere istanze VM GPU. Per ulteriori informazioni, consulta la pagina Informazioni sulle richieste di ridimensionamento in un MIG.
Prima di iniziare
- Per la creazione di un MIG, consulta i prerequisiti del MIG.
- Per la creazione di una richiesta di ridimensionamento in un MIG, consulta le limitazioni delle richieste di ridimensionamento.
Crea un MIG con istanze VM GPU
Per creare un template di istanza e poi utilizzarlo per creare un MIG, completa i seguenti passaggi.
Crea un template di istanza.
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_IDFornisci i seguenti valori:
INSTANCE_TEMPLATE_NAME: il nome del nuovo template di istanza VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:Tipo di macchina A3 High (
a3-highgpu-1g):TDXTipo di macchina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: il tipo di macchina VM. Scegli una delle opzioni seguenti:a3-highgpu-1gg4-standard-48
IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo supportata da Confidential VM per la GPU.IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM per GPU da utilizzare.RUN_DURATION: la durata di esecuzione delle istanze VM richieste. Devi formattare il valore come numero di giorni, ore, minuti o secondi seguito rispettivamente dad,h,m, es, rispettivamente. Ad esempio:6d8h44m.PROJECT_ID: 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.
Utilizza il seguente metodo HTTP e URL:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplatesUtilizza il seguente corpo JSON della richiesta:
{ "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 } }Per abilitare l'avvio protetto, puoi includere il seguente oggetto per gli avvii delle istanze VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }Fornisci i seguenti valori:
PROJECT_ID: l'ID del progetto in cui creare il modello.REGION: la regione in cui creare il modello.INSTANCE_TEMPLATE_NAME: il nome del nuovo template di istanza VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:Tipo di macchina A3 High (
a3-highgpu-1g):TDXTipo di macchina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: il tipo di macchina VM. Scegli una delle opzioni seguenti:a3-highgpu-1gg4-standard-48
RUN_DURATION_IN_SECONDS: la durata, in secondi, di esecuzione delle istanze VM richieste. Il valore deve essere compreso tra600e604800secondi.IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo supportata da Confidential VM per la GPU.IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM per GPU da utilizzare.
Crea un MIG e una richiesta di ridimensionamento per aggiungere in una sola volta le 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_IDFornisci i seguenti valori:
INSTANCE_GROUP_NAME: il nome del MIG.ZONE_NAME: La zona supportata da cui ottenere un elenco di istanze VM.PROJECT_ID: (facoltativo) L'ID del progetto da cui ottenere un elenco di istanze VM.
REST
Per elencare tutti i modelli, invia la seguente richiesta GET.
Utilizza il seguente metodo HTTP e URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplatesPer restringere l'elenco delle istanze a una zona specifica, invia la seguente richiesta GET.
Utilizza il seguente metodo HTTP e URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplatesFornisci i seguenti valori:
ZONE_NAME: La zona supportata da cui ottenere un elenco di istanze VM.PROJECT_ID: l'ID del progetto da cui ottenere un elenco di istanze VM.
Utilizza le prenotazioni con le istanze Confidential VM
Puoi utilizzare le prenotazioni per assicurarti di avere capacità per le tue istanze Confidential VM solo con il tipo di macchina G4.
Per utilizzare una prenotazione per l'istanza Confidential VM:
Crea una prenotazione standard nella zona supportata. Puoi controllare il modo in cui le istanze utilizzano questa prenotazione utilizzando il flag
--require-specific-reservationdurante la creazione della prenotazione.Crea un'istanza Confidential VM per utilizzare la prenotazione. Quando crei l'istanza VM, includi il flag
--confidential-compute-type=SEVper renderla un'istanza Confidential VM. Il modo in cui questa istanza utilizza la prenotazione dipende dalle impostazioni di affinità della prenotazione.
Gli esempi seguenti mostrano come utilizzare le prenotazioni con le istanze Confidential VM. Il metodo per utilizzare la prenotazione dipende da come è stata creata:
Utilizzo automatico: se una prenotazione viene creata senza il
--require-specific-reservationflag, puoi creare un'istanza Confidential VM G4 con proprietà corrispondenti (come tipo di macchina o zona) per utilizzare automaticamente la prenotazione.Utilizzo specifico: se una prenotazione viene creata con il
--require-specific-reservationflag, devi scegliere come target la prenotazione utilizzando i--reservation-affinity=specifice--reservation=RESERVATION_NAMEflag quando crei l' istanza: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_NAMEFornisci i seguenti valori:
INSTANCE_NAME: il nome della nuova istanza VM.PROJECT_ID: (facoltativo) L'ID del progetto in cui creare la VM.ZONE_NAME: la zona supportata in cui creare la VM.RESERVATION_NAME: il nome della prenotazione.
Per scoprire come le istanze VM utilizzano le prenotazioni e come funziona l'affinità, consulta Utilizzare le prenotazioni.
Abilita la modalità Confidential Computing sulla GPU
Connettiti a un'istanza VM nel MIG utilizzando il comando gcloud compute ssh.
gcloud compute sshAggiorna 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-12Installa i driver GPU appropriati sull'istanza VM. Per le istanze VM in cui è abilitato l'avvio protetto, consulta Installare i driver GPU (VM con avvio protetto). Ti consigliamo di utilizzare la versione 580 o successive dei driver del modulo kernel aperto NVIDIA.
Per configurare la comunicazione sicura tra la GPU e il driver della 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 -uAbilita 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-reloadRiavvia l'istanza VM per applicare le configurazioni LKCA e della modalità di persistenza.
sudo rebootConnettiti a un'istanza VM nel MIG utilizzando il comando gcloud compute ssh.
gcloud compute ssh(Facoltativo) Installa gli esempi CUDA che supportano la versione del driver di cui hai bisogno.
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
Passaggi successivi
Scopri come verificare che la modalità riservata sia abilitata sulle GPU.
Scopri di più sulla quota GPU.
Per comprendere l'utilizzo della quota, consulta VM GPU e quote di allocazione preemptible.