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, devi attivare la modalità di calcolo confidenziale 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 (anteprima): NVIDIA RTX PRO 6000 con AMD SEV. Supporta i modelli di provisioning standard (on demand), spot e avvio flessibile e le prenotazioni.
Prima di creare un'istanza Confidential VM con GPU, assicurati di disporre di una quota GPU sufficiente. Per saperne di più, consulta Requisito di quota di GPU.
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 gli acceleratori. Questo modello è disponibile solo per il tipo di macchina G4 (anteprima). Per la procedura dettagliata, vedi Modello standard (on demand) o spot.
Spot: crea un'istanza di VM spot ottimizzata per l'acceleratore per i tipi di macchine A3 High o G4 (anteprima). Per la procedura dettagliata, vedi Modello standard (on demand) o spot.
Avvio flessibile: crea un gruppo di istanze gestite (MIG) per i tipi di macchine A3 High o G4 (anteprima). Per i passaggi dettagliati, consulta Modello di avvio flessibile.
Modello standard (on demand) o spot
gcloud
Per creare un'istanza VM standard (on demand) o VM spot ottimizzata per l'acceleratore con gcloud CLI, utilizza il sottocomando instances create con il flag --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
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 (anteprima):
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 della VM. Scegli una delle seguenti opzioni:a3-highgpu-1gg4-standard-48(anteprima)
ZONE_NAME: la zona supportata in cui creare la VM.IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:Tipo di macchina A3 High:
ubuntu-os-cloudper le immagini Ubuntu oconfidential-vm-imagesper le immagini Container-Optimized OS.Tipo di macchina G4 (anteprima):
ubuntu-os-cloudper le immagini Ubuntu ocos-cloudper le immagini Container-Optimized OS.
IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM. Scegli la famiglia di immagini in base al tipo di macchina:Tipo di macchina A3 High:
ubuntu-2204-ltsper i progetti di immagini Ubuntu.cos-tdx-113-ltsper i progetti di immagini Container-Optimized OS.
Tipo di macchina G4 (anteprima):
ubuntu-2404-lts-amd64per i progetti di immagini Ubuntu.cos-125-ltsper i progetti di immagini Container-Optimized OS.
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 della VM. Scegli uno dei seguenti:a3-highgpu-1gg4-standard-48(anteprima)
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 (anteprima):
STANDARDper istanze VM standard (on demand) oSPOTper istanze VM spot. Se non specificato, questo valore è impostato suSTANDARDper impostazione predefinita.
IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:Tipo di macchina A3 High:
ubuntu-os-cloudper le immagini Ubuntu oconfidential-vm-imagesper le immagini Container-Optimized OS.Tipo di macchina G4 (anteprima):
ubuntu-os-cloudper le immagini Ubuntu ocos-cloudper le immagini Container-Optimized OS.
IMAGE_FAMILY: la famiglia dell'immagine del sistema operativo supportata da Confidential VM. Scegli la famiglia di immagini in base al tipo di macchina:Tipo di macchina A3 High:
ubuntu-2204-ltsper i progetti di immagini Ubuntu.cos-tdx-113-ltsper i progetti di immagini Container-Optimized OS.
Tipo di macchina G4 (anteprima):
ubuntu-2404-lts-amd64per i progetti di immagini Ubuntu.cos-125-ltsper i progetti di immagini Container-Optimized OS.
Modello di avvio flessibile
Per utilizzare il modello di avvio flessibile, crea prima un template di istanza, quindi utilizzalo per creare un gruppo di istanze gestite (MIG). 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 l'ottenibilità delle 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 per il MIG.
- Per creare 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 gruppo di istanze gestite, 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 \ --reservation-affinity=none \ --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 della VM. Scegli una delle seguenti opzioni:a3-highgpu-1gg4-standard-48(anteprima)
IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:Tipo di macchina A3 High:
ubuntu-os-cloudper le immagini Ubuntu oconfidential-vm-imagesper le immagini Container-Optimized OS.Tipo di macchina G4 (anteprima):
ubuntu-os-cloudper le immagini Ubuntu ocos-cloudper le immagini Container-Optimized OS.
IMAGE_FAMILY_NAME: la famiglia per l'immagine del sistema operativo supportato dalla Confidential VM da utilizzare. Scegli la famiglia di immagini in base al tipo di macchina:Tipo di macchina A3 High:
ubuntu-2204-ltsper i progetti di immagini Ubuntu.cos-tdx-113-ltsper i progetti di immagini Container-Optimized OS.
Tipo di macchina G4 (anteprima):
ubuntu-2404-lts-amd64per i progetti di immagini Ubuntu.cos-125-ltsper i progetti di immagini Container-Optimized OS.
RUN_DURATION: la durata per cui vuoi eseguire le istanze VM richieste. Devi formattare il valore come numero di giorni, ore, minuti o secondi seguiti rispettivamente dad,h,mes. 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" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "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 della VM. Scegli una delle seguenti opzioni:a3-highgpu-1gg4-standard-48(anteprima)
RUN_DURATION_IN_SECONDS: la durata, in secondi, per cui vuoi eseguire le istanze VM richieste. Il valore deve essere compreso tra600e604800secondi.IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:Tipo di macchina A3 High:
ubuntu-os-cloudper le immagini Ubuntu oconfidential-vm-imagesper le immagini Container-Optimized OS.Tipo di macchina G4 (anteprima):
ubuntu-os-cloudper le immagini Ubuntu ocos-cloudper le immagini Container-Optimized OS.
IMAGE_FAMILY_NAME: la famiglia per l'immagine del sistema operativo supportato dalla Confidential VM da utilizzare. Scegli la famiglia di immagini in base al tipo di macchina:Tipo di macchina A3 High:
ubuntu-2204-ltsper i progetti di immagini Ubuntu.cos-tdx-113-ltsper i progetti di immagini Container-Optimized OS.
Tipo di macchina G4 (anteprima):
ubuntu-2404-lts-amd64per i progetti di immagini Ubuntu.cos-125-ltsper i progetti di immagini Container-Optimized OS.
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_IDFornisci 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 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 recuperare un elenco di istanze VM.PROJECT_ID: l'ID del progetto da cui recuperare un elenco di istanze VM.
Utilizzare 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 (anteprima).
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. La modalità di consumo della prenotazione da parte di questa istanza 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 flag
--require-specific-reservation, puoi creare un'istanza VM confidenziale G4 con proprietà corrispondenti (come il tipo di macchina o la zona) per utilizzare automaticamente la prenotazione.Utilizzo specifico: se una prenotazione viene creata con il flag
--require-specific-reservation, devi impostarla come target utilizzando i flag--reservation-affinity=specifice--reservation=RESERVATION_NAMEquando 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 Avvio protetto, consulta Installare i driver GPU (VM con Avvio protetto). Ti consigliamo di utilizzare la versione 580 o successive dei driver del modulo del 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 -uAttiva la modalità di persistenza per stabilire una connessione sicura SPDM (Security Protocol and Data Model) 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 della modalità di persistenza e LKCA.
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
Prezzi
Durante l'anteprima, le tariffe aggiuntive per le istanze Confidential VM sul tipo di macchina G4 sono offerte senza costi. Queste tariffe includono il supplemento per Confidential Computing e la tariffa di licenza NVIDIA. Vengono comunque applicati gli addebiti standard per le risorse Compute Engine sottostanti, come il tipo di macchina G4, la GPU e lo spazio di archiviazione. Queste tariffe aggiuntive per Confidential Computing vengono applicate al termine del periodo di anteprima in disponibilità generale. Per informazioni dettagliate sui prezzi, consulta Prezzi di Confidential VM.
Passaggi successivi
Scopri come verificare che la modalità riservata sia attivata sulle GPU.
Scopri di più sul requisito di quota GPU.
Per comprendere il consumo della quota, consulta VM GPU e quote di allocazione preemptible.