Per scoprire di più sulla creazione in blocco, consulta Informazioni sulla creazione in blocco delle VM. Per scoprire di più sulla creazione delle VM con GPU collegate, consulta la Panoramica della creazione di un'istanza con GPU collegate.
Prima di iniziare
- Per esaminare le limitazioni e i passaggi preliminari aggiuntivi per la creazione di istanze con GPU collegate, ad esempio la selezione di un'immagine sistema operativo e il controllo della quota di GPU, consulta la Panoramica della creazione di un'istanza con GPU collegate.
- Per esaminare le limitazioni per la creazione in blocco, consulta Informazioni sulla creazione in blocco delle VM.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per creare VM,
chiedi all'amministratore di concederti il
ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.createsul progetto -
Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnlysull'immagine -
Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnlysullo snapshot -
Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnlysul template di istanza -
Per specificare una subnet per la VM:
compute.subnetworks.usesul progetto o sulla subnet scelta -
Per specificare un indirizzo IP statico per la VM:
compute.addresses.usesul progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIpsul progetto o sulla subnet scelta -
Per assegnare una rete legacy alla VM:
compute.networks.usesul progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy:
compute.networks.useExternalIpsul progetto -
Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadatasul progetto -
Per impostare i tag per la VM:
compute.instances.setTagssulla VM -
Per impostare le etichette per la VM:
compute.instances.setLabelssulla VM -
Per impostare un service account che la VM possa utilizzare:
compute.instances.setServiceAccountsulla VM -
Per creare un nuovo disco per la VM:
compute.disks.createsul progetto -
Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura:
compute.disks.usesul disco -
Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnlysul disco
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Panoramica
Quando crei VM con GPU collegate utilizzando il metodo di creazione in blocco, puoi scegliere
di creare VM in una regione (ad esempio us-central1) o in una zona specifica come
(us-central1-a).
Se scegli di specificare una regione, Compute Engine posiziona le VM in qualsiasi zona all'interno della regione che supporta le GPU.
Tipi di macchine
La famiglia di macchine ottimizzate per l'acceleratore contiene più tipi di macchine.
A ogni tipo di macchina ottimizzata per l'acceleratore è collegato un modello specifico di GPU NVIDIA per supportare il tipo di workload consigliato.
| Workload AI e ML | Grafica e visualizzazione |
|---|---|
|
I tipi di macchina della serie A ottimizzati per l'acceleratore sono progettati per workload di computing ad alte prestazioni (HPC), intelligenza artificiale (AI) e machine learning (ML).
Per questi tipi di macchine, il modello di GPU viene collegato automaticamente all'istanza. |
I tipi di macchina della serie G ottimizzati per l'acceleratore sono progettati per carichi di lavoro
come quelli di simulazione NVIDIA Omniverse, applicazioni ad alta intensità grafica,
transcodifica video e desktop virtuali. Questi tipi di macchine supportano
le workstation virtuali (vWS) NVIDIA RTX.
Per questi tipi di macchine, il modello di GPU viene collegato automaticamente all'istanza. |
|
Crea gruppi di A4X, A4 e A3 Ultra
Per creare istanze collettivamente per le serie di macchine A4X, A4 e A3 Ultra, consulta la Panoramica delle opzioni di deployment nella documentazione di AI Hypercomputer.
Crea gruppi di VM A3, A2, G4 e G2
Questa sezione spiega come creare istanze in blocco per le serie di macchine A3 High, A3 Mega, A3 Edge, A2 Standard, A2 Ultra, G4 e G2 utilizzando Google Cloud CLI o REST.
gcloud
Per creare un gruppo di VM, utilizza il comando
gcloud compute instances bulk create. Per saperne
di più sui parametri e su come utilizzare questo comando, consulta
Crea più VM in blocco.
Esempio
Questo esempio crea due VM con GPU collegate utilizzando le seguenti specifiche:
- Nomi VM:
my-test-vm-1,my-test-vm-2 - A ogni VM sono collegate due GPU, specificate utilizzando il tipo di macchina ottimizzato per l'acceleratore appropriato.
gcloud compute instances bulk create \
--name-pattern="my-test-vm-#" \
--region=REGION \
--count=2 \
--machine-type=MACHINE_TYPE \
--boot-disk-size=200 \
--image=IMAGE \
--image-project=IMAGE_PROJECT \
--on-host-maintenance=TERMINATE
Sostituisci quanto segue:
REGION: la regione delle VM. Questa regione deve supportare il tipo di macchina ottimizzato per l'acceleratore selezionato.MACHINE_TYPE: il tipo di macchina selezionato. Scegli una delle seguenti opzioni:- Un tipo di macchina A3 High
- Un tipo di macchina A3 Mega
- Un tipo di macchina A3 Edge
- Un tipo di macchina standard A2
- Un tipo di macchina A2 Ultra
- Un tipo di macchina G4
- Un tipo di macchina G2
I tipi di macchine G2 supportano anche la memoria personalizzata. La memoria deve essere un multiplo
di 1024 MB e rientrare nell'intervallo di memoria supportato. Ad esempio, per
creare una VM con 4 vCPU e 19 GB di memoria, specifica
--machine-type=g2-custom-4-19456.
IMAGE: un'immagine sistema operativo che supporta le GPU.Se vuoi utilizzare l'immagine più recente in una famiglia di immagini, sostituisci il flag
--imagecon il flag--image-familye imposta il relativo valore su una famiglia di immagini che supporta le GPU. Ad esempio:--image-family=rocky-linux-8-optimized-gcp.Puoi anche specificare un'immagine personalizzata o delle Deep Learning VM Image.
IMAGE_PROJECT: il progetto di immagini di Compute Engine a cui appartiene l'immagine sistema operativo. Se utilizzi un'immagine personalizzata o delle Deep Learning VM Images, specifica il progetto a cui appartengono queste immagini.VWS_ACCELERATOR_COUNT: il numero di GPU virtuali di cui hai bisogno.
Se l'esito è positivo, l'output è simile al seguente:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
Flag facoltativi
Per configurare ulteriormente l'istanza in modo che soddisfi le esigenze del workload o del sistema operativo, includi uno o più dei seguenti flag quando esegui il comando gcloud compute instances bulk create.
| Funzionalità | Descrizione |
|---|---|
| Modello di provisioning | Imposta il modello di provisioning per l'istanza. Puoi specificare STANDARD o SPOT. Se non specifichi un modello di provisioning, Compute Engine imposta
il valore su STANDARD. Per saperne di più, consulta
Modelli di provisioning delle istanze Compute Engine.
--provisioning-model=PROVISIONING_MODEL |
| Workstation virtuale | Specifica le workstation virtuali (vWs) NVIDIA RTX per i workload grafici.
Questa funzionalità è supportata solo per le istanze G4 e G2.
--accelerator=type=VWS_ACCELERATOR_TYPE,count=VWS_ACCELERATOR_COUNT Sostituisci quanto segue:
|
| SSD locale | Collega una o più unità SSD locali all'istanza. Gli SSD locali possono essere utilizzati per dischi temporanei veloci o per inviare dati alle GPU evitando al contempo i colli di bottiglia I/O.
--local-ssd=interface=nvme \
--local-ssd=interface=nvme \
--local-ssd=interface=nvme ... |
| Interfaccia di rete | Collega più interfacce di rete all'istanza. Per le istanze g4-standard-384,
puoi collegare fino a due interfacce di rete. Puoi utilizzare questo flag per creare un'istanza con
due interfacce di rete (2 x 200 Gbps). Ogni interfaccia di rete deve trovarsi in una rete VPC unica.
--network-interface=network=VPC_NAME_1,subnet=SUBNET_NAME_1,nic-type=GVNIC \ --network-interface=network=VPC_NAME_2,subnet=SUBNET_NAME_2,nic-type=GVNIC Le interfacce di rete dual sono supportate solo sui tipi di macchine Sostituisci quanto segue:
|
| Policy di posizionamento | Controlla il posizionamento dell'istanza all'interno di una zona. Puoi specificare una
policy compatta per ridurre al minimo la latenza di rete nelle istanze G2 o una
policy di distribuzione per migliorare la resilienza delle istanze G4 o G2 contro interruzioni specifiche della zona.
--resource-policies=POLICY_NAME Sostituisci |
REST
Utilizza il metodo
instances.bulkInsert con i
parametri richiesti per creare più VM in una zona. Per saperne
di più sui parametri e su come utilizzare questo comando, consulta
Crea più VM in blocco.
Esempio
Questo esempio crea due VM con GPU collegate utilizzando le seguenti specifiche:
- Nomi VM:
my-test-vm-1,my-test-vm-2 A ogni VM sono collegate due GPU, specificate utilizzando il tipo di macchina ottimizzato per l'acceleratore appropriato.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":MACHINE_TYPE, "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":SOURCE_IMAGE_URI }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", ["automaticRestart":true] } } }
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.REGION: la regione delle VM. Questa regione deve supportare il modello di GPU selezionato.MACHINE_TYPE: il tipo di macchina selezionato. Scegli una delle seguenti opzioni:- Un tipo di macchina A3 High
- Un tipo di macchina A3 Mega
- Un tipo di macchina A3 Edge
- Un tipo di macchina standard A2
- Un tipo di macchina A2 Ultra
- Un tipo di macchina G4
- Un tipo di macchina G2.
Anche i tipi di macchine G2
supportano la memoria personalizzata. La memoria deve essere un multiplo di 1024 MB e
rientrare nell'intervallo di memoria supportato. Ad esempio, il nome del tipo di macchina
per un'istanza con 4 vCPU e 19 GB di memoria sarebbe
g2-custom-4-19456.
SOURCE_IMAGE_URI: l'URI per l'immagine o la famiglia di immagini specifica che vuoi utilizzare.Ad esempio:
- Immagine specifica:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719" - Famiglia di immagini:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
Quando specifichi una famiglia di immagini, Compute Engine crea una VM dall'immagine più recente non deprecata del sistema operativo all'interno di quella famiglia. Per sapere di più su quando utilizzare le famiglie di immagini, consulta le best practice per le famiglie di immagini.
- Immagine specifica:
Campi facoltativi
Per configurare ulteriormente l'istanza in base alle esigenze del workload o del sistema operativo, includi uno o più
dei seguenti flag quando esegui il
metodo instances.bulkInsert.
| Funzionalità | Descrizione |
|---|---|
| Modello di provisioning | Per ridurre i costi, puoi specificare un modello di provisioning diverso aggiungendo il campo
"provisioningModel": "PROVISIONING_MODEL" all'oggetto
scheduling nella richiesta. Per saperne di più, consulta
Modelli di provisioning delle istanze Compute Engine.
"scheduling":
{
"onHostMaintenance": "TERMINATE",
"provisioningModel": "PROVISIONING_MODEL"
}
Sostituisci
|
| Workstation virtuale | Specifica le workstation virtuali (vWS) NVIDIA RTX per i workload grafici.
Questa funzionalità è supportata solo per le istanze G4 e G2.
"guestAccelerators":
[
{
"acceleratorCount": VWS_ACCELERATOR_COUNT,
"acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE"
}
]
Sostituisci quanto segue:
|
| SSD locale | Collega una o più unità SSD locali all'istanza. Gli SSD locali possono essere utilizzati per dischi temporanei veloci o per inviare dati alle GPU evitando al contempo i colli di bottiglia I/O.
{
"type": "SCRATCH",
"autoDelete": true,
"initializeParams": {
"diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/local-nvme-ssd"
}
}
|
| Interfaccia di rete | Collega più interfacce di rete all'istanza. Per le istanze g4-standard-384,
puoi collegare fino a due interfacce di rete. In questo modo viene creata un'istanza con due interfacce di rete
(2 x 200 Gbps). Ogni interfaccia di rete deve trovarsi in una rete VPC unica.
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/VPC_NAME_1",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_1",
"nicType": "GVNIC"
},
{
"network": "projects/PROJECT_ID/global/networks/VPC_NAME_2",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_2",
"nicType": "GVNIC"
}
]
Le interfacce di rete dual sono supportate solo sui tipi di macchine Sostituisci quanto segue:
|
| Policy di posizionamento | Controlla il posizionamento dell'istanza all'interno di una zona. Puoi specificare una
policy compatta per ridurre al minimo la latenza di rete nelle istanze G2 o una
policy di distribuzione per migliorare la resilienza delle istanze G4 o G2 contro interruzioni specifiche della zona.
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
Sostituisci quanto segue:
|
Crea gruppi di VM N1 per uso generico
Puoi creare un gruppo di VM con GPU collegate utilizzando Google Cloud CLI o REST.
Questa sezione descrive come creare più VM utilizzando i seguenti tipi di GPU:
GPU NVIDIA:
- NVIDIA T4:
nvidia-tesla-t4 - NVIDIA P4:
nvidia-tesla-p4 - NVIDIA P100:
nvidia-tesla-p100 - NVIDIA V100:
nvidia-tesla-v100
Workstation virtuale (vWS) NVIDIA RTX (precedentemente nota come NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws - NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vws NVIDIA P100 Virtual Workstation:
nvidia-tesla-p100-vwsPer queste workstation virtuali, all'istanza viene aggiunta automaticamente una licenza per workstation virtuale (vWS) NVIDIA RTX.
gcloud
Per creare un gruppo di VM, utilizza il comando
gcloud compute instances bulk create.
Per ulteriori informazioni sui parametri e su come utilizzare questo comando, consulta
Crea più VM in blocco.
Esempio
L'esempio seguente crea due VM con GPU collegate utilizzando le seguenti specifiche:
- Nomi VM:
my-test-vm-1,my-test-vm-2 - VM create in qualsiasi zona in
us-central1che supporta le GPU - A ogni VM sono collegate due GPU T4, specificate utilizzando i flag di tipo di acceleratore e di conteggio degli acceleratori
- In ogni VM sono installati i driver GPU
- Ogni VM utilizza la Deep Learning VM image
pytorch-latest-gpu-v20211028-debian-10
gcloud compute instances bulk create \
--name-pattern="my-test-vm-#" \
--count=2 \
--region=us-central1 \
--machine-type=n1-standard-2 \
--accelerator type=nvidia-tesla-t4,count=2 \
--boot-disk-size=200 \
--metadata="install-nvidia-driver=True" \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--image=pytorch-latest-gpu-v20211028-debian-10 \
--image-project=deeplearning-platform-release \
--on-host-maintenance=TERMINATE --restart-on-failure
Se l'esito è positivo, l'output è simile al seguente:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
Utilizza il metodo
instances.bulkInsert con i
parametri richiesti per creare più VM in una zona.
Per ulteriori informazioni sui parametri e su come utilizzare questo comando, consulta
Crea più VM in blocco.
Esempio
L'esempio seguente crea due VM con GPU collegate utilizzando le seguenti specifiche:
- Nomi VM:
my-test-vm-1,my-test-vm-2 - VM create in qualsiasi zona in
us-central1che supporta le GPU - A ogni VM sono collegate due GPU T4, specificate utilizzando i flag di tipo di acceleratore e di conteggio degli acceleratori
- In ogni VM sono installati i driver GPU
- Ogni VM utilizza la Deep Learning VM image
pytorch-latest-gpu-v20211028-debian-10
Sostituisci PROJECT_ID con l'ID progetto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/instances/bulkInsert
{
"namePattern":"my-test-vm-#",
"count":"2",
"instanceProperties": {
"machineType":"n1-standard-2",
"disks":[
{
"type":"PERSISTENT",
"initializeParams":{
"diskSizeGb":"200",
"sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10"
},
"boot":true
}
],
"name": "default",
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/default"
}
],
"guestAccelerators":
[
{
"acceleratorCount": 2,
"acceleratorType": "nvidia-tesla-t4"
}
],
"scheduling":{
"onHostMaintenance":"TERMINATE",
"automaticRestart":true
},
"metadata":{
"items":[
{
"key":"install-nvidia-driver",
"value":"True"
}
]
}
}
}
Passaggi successivi
Scopri come monitorare le prestazioni della GPU.
Scopri come utilizzare una larghezza di banda di rete maggiore.
Scopri come gestire gli eventi di manutenzione degli host GPU.