Crea una VM N1 con GPU collegate

Questo documento spiega come creare una VM con GPU collegate che utilizza una famiglia di macchine N1. Puoi utilizzare la maggior parte dei tipi di macchine N1, ad eccezione di N1 shared-core.

Prima di iniziare

  • Per esaminare ulteriori passaggi preliminari, come la selezione di un'immagine sistema operativo e la verifica della quota GPU, consulta il documento di panoramica.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    2. Set a default region and zone.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticarsi per l'utilizzo di 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.create sul progetto
  • Per utilizzare un'immagine personalizzata per creare la VM: compute.images.useReadOnly sull'immagine
  • Per utilizzare uno snapshot per creare la VM: compute.snapshots.useReadOnly sullo snapshot
  • Per utilizzare un template di istanza per creare la VM: compute.instanceTemplates.useReadOnly sul template di istanza
  • Per specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
  • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
  • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy: compute.networks.useExternalIp sul progetto
  • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata sul progetto
  • Per impostare i tag per la VM: compute.instances.setTags sulla VM
  • Per impostare le etichette per la VM: compute.instances.setLabels sulla VM
  • Per impostare un service account che la VM possa utilizzare: compute.instances.setServiceAccount sulla VM
  • Per creare un nuovo disco per la VM: compute.disks.create sul progetto
  • Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura: compute.disks.use sul disco
  • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Panoramica

I seguenti modelli di GPU possono essere collegati alle VM che utilizzano famiglie di macchine N1.

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-vws

    Per queste workstation virtuali, all'istanza viene aggiunta automaticamente una licenza per workstation virtuale (vWS) NVIDIA RTX.

Crea una VM con GPU collegate

Puoi creare una VM N1 con GPU collegate utilizzando la consoleGoogle Cloud , Google Cloud CLI o REST.

Console

  1. Nella console Google Cloud , vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Specifica un Nome per la VM. Consulta Convenzione di denominazione delle risorse.

  3. Seleziona una regione e una zona in cui sono disponibili le GPU. Consulta l'elenco delle zone GPU disponibili.

  4. Nella sezione Configurazione macchina, seleziona la famiglia di macchine GPU, quindi segui questi passaggi:

    1. Nell'elenco Tipo di GPU, seleziona uno dei modelli di GPU supportati sulle macchine N1.
    2. Nell'elenco Numero di GPU, seleziona il numero di GPU.
    3. Se il tuo modello di GPU supporta le workstation virtuali (vWS) NVIDIA RTX per i workload grafici e prevedi di eseguire workload ad alta intensità di grafica su questa VM, seleziona Attiva workstation virtuale (NVIDIA GRID).

    4. Nell'elenco Tipo di macchina, seleziona uno dei tipi di macchina N1 predefiniti. In alternativa, puoi anche specificare impostazioni per i tipi di macchine personalizzate.

  5. Nella sezione Disco di avvio, fai clic su Cambia. Viene visualizzata la pagina Configurazione del disco di avvio.

  6. Nella pagina Configurazione del disco di avvio, segui questi passaggi:

    1. Nella scheda Immagini pubbliche, scegli un'immagine Compute Engine supportata o Deep Learning VM Images.
    2. Specifica una dimensione del disco di avvio di almeno 40 GB.
    3. Per confermare le opzioni del disco di avvio, fai clic su Seleziona.
  7. (Facoltativo) Nell'elenco Modello di provisioning delle VM, seleziona un modello di provisioning.

  8. Per creare e avviare la VM, fai clic su Crea.

gcloud

Per creare e avviare una VM, utilizza il comando gcloud compute instances create con i seguenti flag.

Se il tuo workload è a tolleranza di errore o può essere avviato in qualsiasi momento, valuta l'utilizzo di un modello di provisioning diverso per ridurre i costi. Per modificare il modello di provisioning, includi il flag --provisioning-model=<var>PROVISIONING_MODEL</var> nel comando. Per ulteriori informazioni sui modelli disponibili, consulta Modelli di provisioning delle istanze Compute Engine.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE \
    [--provisioning-model=PROVISIONING_MODEL]

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM.
  • MACHINE_TYPE: il tipo di macchina che hai selezionato per la VM.
  • ZONE: la zona per la VM. Questa zona deve supportare il tipo di GPU.
  • DISK_SIZE: le dimensioni del disco di avvio in GB. Specifica una dimensione del disco di avvio di almeno 40 GB.
  • IMAGE o IMAGE_FAMILY che supporta le GPU. Specifica una delle seguenti opzioni:

    • IMAGE: la versione richiesta di un'immagine pubblica. Ad esempio, --image debian-10-buster-v20200309.
    • IMAGE_FAMILY: una famiglia di immagini. In questo modo, la VM viene creata dall'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi --image-family debian-10, Compute Engine crea una VM dall'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 10.

    Puoi anche specificare un'immagine personalizzata o delle Deep Learning VM Image.

  • IMAGE_PROJECT: il progetto di immagini di Compute Engine a cui appartiene la famiglia di immagini. Se utilizzi un'immagine personalizzata o delle Deep Learning VM Image, specifica il progetto a cui appartengono queste immagini.

  • PROVISIONING_MODEL: il modello di provisioning per la VM. Specifica SPOT o FLEX_START. Se non specifichi un modello di provisioning, viene utilizzato quello standard. Questo flag è facoltativo.

  • ACCELERATOR_COUNT: il numero di GPU che vuoi aggiungere alla VM. Per un elenco dei limiti delle GPU in base al tipo di macchina della VM, consulta GPU su Compute Engine.

  • ACCELERATOR_TYPE: il modello di GPU che vuoi utilizzare. Se prevedi di eseguire workload ad alta intensità di grafica su questa VM, utilizza uno dei modelli di workstation virtuale.

    Scegli uno dei seguenti valori:

    • 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-vws

        Per queste workstation virtuali, all'istanza viene aggiunta automaticamente una licenza per workstation virtuale (vWS) NVIDIA RTX.

Esempio

Ad esempio, puoi utilizzare il seguente comando gcloud per avviare una VM Ubuntu 22.04 con 1 GPU NVIDIA T4 e 2 vCPU nella zona us-east1-d.

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE

REST

Identifica il tipo di GPU che vuoi aggiungere alla VM. Invia una richiesta GET per generare un elenco dei tipi di GPU disponibili per il tuo progetto in una zona specifica.

Per creare VM a un prezzo scontato, puoi specificare un modello di provisioning diverso aggiungendo il campo "provisioningModel": "PROVISIONING_MODEL" all'oggetto scheduling nella richiesta. Per ulteriori informazioni sui modelli disponibili, consulta Modelli di provisioning delle istanze Compute Engine.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes

Sostituisci quanto segue:

  • PROJECT_ID: ID progetto.
  • ZONE: zona da cui vuoi generare un elenco dei tipi di GPU disponibili.

Invia una richiesta POST al metodo instances.insert. Includi il parametro acceleratorType per specificare il tipo di GPU che vuoi utilizzare e il parametro acceleratorCount per specificare quante GPU vuoi aggiungere. Imposta anche il parametro onHostMaintenance su TERMINATE.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "DISK_SIZE",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    "provisioningModel": "PROVISIONING_MODEL"
  },
}

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • PROJECT_ID: il tuo ID progetto.
  • ZONE: la zona per la VM. Questa zona deve supportare il tipo di GPU.
  • MACHINE_TYPE: il tipo di macchina che hai selezionato per la VM. Consulta la sezione GPU su Compute Engine per scoprire quali tipi di macchine sono disponibili in base al numero di GPU che hai scelto.
  • IMAGE o IMAGE_FAMILY: specifica una delle seguenti opzioni:

    • IMAGE: la versione richiesta di un'immagine pubblica. Ad esempio, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY: una famiglia di immagini. In questo modo, la VM viene creata dall'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crea una VM dall'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 10.

    Puoi anche specificare un'immagine personalizzata o delle Deep Learning VM Image.

  • IMAGE_PROJECT: il progetto di immagini di Compute Engine a cui appartiene la famiglia di immagini. Se utilizzi un'immagine personalizzata o delle Deep Learning VM Image, specifica il progetto a cui appartengono queste immagini.

  • DISK_SIZE: le dimensioni del disco di avvio in GB. Specifica una dimensione del disco di avvio di almeno 40 GB.

  • NETWORK: la rete VPC che vuoi utilizzare per la VM. Puoi specificare default per utilizzare la rete predefinita.

  • ACCELERATOR_COUNT: il numero di GPU che vuoi aggiungere alla VM. Per un elenco dei limiti delle GPU in base al tipo di macchina della VM, consulta GPU su Compute Engine.

  • ACCELERATOR_TYPE: il modello di GPU che vuoi utilizzare. Se prevedi di eseguire workload ad alta intensità di grafica su questa VM, utilizza uno dei modelli di workstation virtuale.

    Scegli uno dei seguenti valori:

    • 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-vws

        Per queste workstation virtuali, all'istanza viene aggiunta automaticamente una licenza per workstation virtuale (vWS) NVIDIA RTX.

  • PROVISIONING_MODEL: il modello di provisioning per la VM. Specifica SPOT o FLEX_START. Se non specifichi un modello di provisioning, viene utilizzato quello standard. Questa proprietà è facoltativa. Per ulteriori informazioni sui modelli di provisioning, consulta Modelli di provisioning delle istanze Compute Engine.

Installa i driver

Per installare i driver, scegli una delle seguenti opzioni:

Passaggi successivi