Crea un'istanza A3 Ultra o A4


Questo documento descrive come creare istanze con GPU collegate della serie di macchine A3 Ultra o A4. Per scoprire di più sulla creazione di istanze con GPU collegate, consulta la Panoramica della creazione di un'istanza con GPU collegate.

Prima di iniziare

  • Per esaminare le limitazioni e i passaggi di prerequisito aggiuntivi per la creazione di istanze con GPU collegate, ad esempio la selezione di un'immagine del sistema operativo e il controllo della quota GPU, consulta la Panoramica della creazione di un'istanza con GPU collegate.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. Google Cloud 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.

Prima di iniziare

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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Set a default region and zone.

REST

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

    After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare istanze, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare istanze. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare istanze 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 modello di istanza per creare la VM: compute.instanceTemplates.useReadOnly nel modello di istanza
  • Per assegnare una rete legacy alla VM: compute.networks.use nel progetto
  • Per specificare un indirizzo IP statico per la VM: compute.addresses.use nel progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy: compute.networks.useExternalIp nel progetto
  • Per specificare una subnet per la VM: compute.subnetworks.use nel progetto o nella subnet scelta
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp nel progetto o nella subnet scelta
  • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata nel 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 account di servizio da utilizzare per la VM: compute.instances.setServiceAccount sulla VM
  • Per creare un nuovo disco per la VM: compute.disks.create nel 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.

Crea un'istanza A3 Ultra o A4

Le istanze A3 Ultra o A4 sono disponibili tramite le seguenti opzioni di creazione, ciascuna con procedure di creazione, disponibilità delle risorse e prezzi diversi. Identifica l'opzione che vuoi utilizzare in base al tuo carico di lavoro.

  • Se esegui carichi di lavoro di IA e ML di lunga durata, come l'addestramento e l'inferenza di modelli di grandi dimensioni che richiedono la latenza più bassa, ti consigliamo di utilizzare Hypercompute Cluster (anteprima). Con Hypercompute Cluster, puoi prenotare macchine con allocazione elevata che forniscono pianificazione basata sulla topologia e monitoraggio e manutenzione avanzati di questa capacità riservata. Per scoprire di più su Hypercompute Cluster, consulta Hypercompute Cluster nella documentazione di AI Hypercomputer.

    Per istruzioni su come creare istanze A3 Ultra o A4 utilizzando Hypercompute Cluster, consulta la Panoramica della creazione di VM e cluster nella documentazione di AI Hypercomputer.

  • Se esegui carichi di lavoro di IA e ML di priorità inferiore che sono tolleranti alle interruzioni della disponibilità, puoi ottenere sconti significativi utilizzando le VM Spot. Sebbene tu possa creare ed eliminare le VM spot in base alle tue esigenze, queste sono risorse limitate che potrebbero non essere sempre disponibili e Compute Engine potrebbe prerilasciare (interrompere o eliminare automaticamente) le VM spot in qualsiasi momento. Per scoprire di più sulle VM spot, consulta VM spot.

    Per istruzioni su come creare istanze A3 Ultra o A4 utilizzando le VM spot, consulta la sezione Creare un'istanza A3 Ultra o A4 utilizzando le VM spot di questo documento.

Creare un'istanza A3 Ultra o A4 utilizzando le VM spot

Per creare un'istanza A3 Ultra o A4 utilizzando le VM spot, completa i passaggi nelle sezioni seguenti:

  1. Crea reti VPC.
  2. Crea la VM spot.
  3. Prepara una VM Spot con GPU collegate per l'utilizzo.

Crea reti VPC

In base al tipo di macchina che vuoi utilizzare e al numero di interfacce di rete nel tipo di macchina, devi creare reti Virtual Private Cloud (VPC) come segue:

Tipo di macchina Numero di NIC fisiche* Interfacce di rete Numero di reti VPC da creare
a4-highgpu-8g 10
  • 2 interfacce di rete gVNIC utilizzate per la comunicazione da host a host
  • 1 interfaccia di rete RDMA (collegata a una rete con 8 subnet) per la comunicazione tra GPU
3
a3-ultragpu-8g 10
  • 2 interfacce di rete gVNIC utilizzate per la comunicazione da host a host.
  • 1 interfaccia di rete RDMA (collegata a una rete con 8 subnet) per la comunicazione tra GPU.
3

* Per ulteriori informazioni sull'organizzazione delle NIC, consulta Esaminare la larghezza di banda di rete e l'organizzazione delle NIC.
Per ulteriori informazioni sulle interfacce di rete, consulta Utilizzare la NIC virtuale di Google e Profili di rete RDMA.

Configura le emittenti manualmente seguendo le guide alle istruzioni o automaticamente utilizzando lo script fornito.

Guide di istruzioni

Per creare le reti, puoi utilizzare le seguenti istruzioni:

Script

Per creare le reti, puoi utilizzare il seguente script.

  #!/bin/bash

  # Create standard VPCs (network and subnets) for the gVNICs
  for N in $(seq 0 1); do
    gcloud beta compute networks create GVNIC_NAME_PREFIX-net-$N \
      --subnet-mode=custom

    gcloud beta compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
      --network=GVNIC_NAME_PREFIX-net-$N \
      --region=REGION \
      --range=10.$N.0.0/16

    gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
      --network=GVNIC_NAME_PREFIX-net-$N \
      --action=ALLOW \
      --rules=tcp:0-65535,udp:0-65535,icmp \
      --source-ranges=10.0.0.0/8
  done

  # Create SSH firewall rules
  gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
    --network=GVNIC_NAME_PREFIX-net-0 \
    --action=ALLOW \
    --rules=tcp:22 \
    --source-ranges=IP_RANGE

  # Assumes that an external IP is only created for vNIC 0
  gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
    --network=GVNIC_NAME_PREFIX-net-0 \
    --action=ALLOW \
    --rules=icmp \
    --source-ranges=IP_RANGE

  # List and make sure network profiles exist
  gcloud beta compute network-profiles list

  # Create network for CX-7
  gcloud beta compute networks create RDMA_NAME_PREFIX-mrdma \
    --network-profile=ZONE-vpc-roce \
    --subnet-mode custom

  # Create subnets.
  for N in $(seq 0 7); do
    gcloud beta compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
      --network=RDMA_NAME_PREFIX-mrdma \
      --region=REGION \
      --range=10.$((N+2)).0.0/16  # offset to avoid overlap with gVNICs
  done
  

Sostituisci quanto segue:

  • GVNIC_NAME_PREFIX: il prefisso del nome da utilizzare per le reti VPC e le subnet standard che utilizzano NIC gVNIC.
  • RDMA_NAME_PREFIX: il prefisso del nome da utilizzare per le reti e le subnet VPC che utilizzano NIC RDMA.
  • ZONE: specifica una zona in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni, consulta Regioni e zone GPU.
  • REGION: la regione in cui vuoi creare le reti. Deve corrispondere alla zona specificata. Ad esempio, se la tua zona è europe-west1-b, la tua regione è europe-west1.
  • IP_RANGE: l'intervallo IP da utilizzare per le regole del firewall SSH.

Crea la VM Spot

Per creare la VM spot, utilizza uno dei seguenti metodi:

Console

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

    Vai a Crea un'istanza

    Viene visualizzata la schermata Crea un'istanza, che mostra il riquadro Configurazione macchina.

  2. Nel riquadro Configurazione macchina, completa i seguenti passaggi:

    1. Specifica un nome per l'istanza. Consulta Convenzione di denominazione delle risorse.
    2. Seleziona la Regione e la Zona in cui vuoi prenotare la capacità. Consulta l'elenco delle regioni e delle zone GPU disponibili.
    3. Fai clic sulla scheda GPU e completa i seguenti passaggi:
      1. Nell'elenco Tipo di GPU, seleziona il tipo di GPU.
        • Per le istanze A4, seleziona NVIDIA B200
        • Per le istanze A3 Ultra, seleziona NVIDIA H200 141GB
      2. Nell'elenco Numero di GPU, seleziona 8.
  3. Nel menu di navigazione, fai clic su Sistema operativo e spazio di archiviazione. Nel riquadro OS e archiviazione visualizzato, completa i seguenti passaggi:

    1. Fai clic su Cambia. Viene visualizzato il riquadro Configurazione del disco di avvio.
    2. Nella scheda Immagini pubbliche, seleziona un'immagine consigliata. Per un elenco delle immagini consigliate, consulta Sistemi operativi.
    3. Per confermare le opzioni del disco di avvio, fai clic su Seleziona.
  4. Per creare un'istanza con più NIC, completa i seguenti passaggi. In caso contrario, per creare un'istanza con una sola NIC, salta questi passaggi.

    1. Nel menu di navigazione, fai clic su Networking. Nel riquadro Networking visualizzato, completa i seguenti passaggi:

      1. Nella sezione Interfacce di rete, completa i seguenti passaggi:

      2. Elimina l'interfaccia di rete predefinita. Per eliminare l'interfaccia, fai clic su Elimina.

      3. Fai clic su Aggiungi un'interfaccia di rete. Utilizza questa opzione per aggiungere le reti gVNIC e RDMA che hai creato nella sezione precedente. Quando aggiungi le emittenti, ricorda quanto segue:

        • Specifica le reti host negli elenchi Rete e Subnet e imposta l'elenco Scheda di interfaccia di rete su gVNIC.
        • Specifica le reti GPU negli elenchi Rete e Sottorete e imposta l'elenco Scheda di interfaccia di rete su MRDMA per queste reti.
  5. Nel menu di navigazione, fai clic su Avanzate. Nel riquadro Avanzate visualizzato, completa i seguenti passaggi:

    1. Nella sezione Modello di provisioning, seleziona Spot nell'elenco Modello di provisioning delle VM.

    2. (Facoltativo) Per specificare l'azione da eseguire quando Compute Engine preleva l'istanza (arresto (predefinito) o eliminazione), completa i seguenti passaggi:

      1. Espandi la sezione Impostazioni avanzate del modello di provisioning delle VM.
      2. Nell'elenco Al termine della VM, seleziona un'opzione.
  6. Per creare e avviare l'istanza, fai clic su Crea.

gcloud

Per creare l'istanza, utilizza il comando gcloud beta compute instances create:

gcloud beta compute instance create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.
  • MACHINE_TYPE: il tipo di macchina da utilizzare per l'istanza, a3-ultragpu-8g o a4-highgpu-8g.
  • IMAGE_FAMILY: la famiglia di immagini dell'immagine del sistema operativo che vuoi utilizzare. Per le opzioni, vedi Dettagli sul sistema operativo.
  • IMAGE_PROJECT: l'ID progetto dell'immagine del sistema operativo.
  • TERMINATION_ACTION: facoltativo. Specifica l'azione da intraprendere quando Compute Engine esegue la preemption dell'istanza, STOP (comportamento predefinito) o DELETE.
  • ZONE: la zona in cui vuoi creare l'istanza. Per le opzioni, consulta Regioni e zone GPU.
  • DISK_SIZE: le dimensioni del disco di avvio in GB.

REST

Per creare l'istanza, invia una richiesta POST al metodo instances.insert come segue:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/
{
  {
    "machineType":"projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
    "name":"INSTANCE_NAME",
    "disks":[
        {
          "boot":true,
          "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          },
          "mode":"READ_WRITE",
          "type":"PERSISTENT"
        }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
      }
      ],
    "scheduling":{
      "provisioningModel":"SPOT",
      "instanceTerminationAction":"TERMINATION_ACTION"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare l'istanza.
  • ZONE: la zona in cui vuoi creare l'istanza. Per le opzioni, consulta Regioni e zone GPU.
  • MACHINE_TYPE: il tipo di macchina da utilizzare per l'istanza, a3-ultragpu-8g o a4-highgpu-8g.
  • INSTANCE_NAME: il nome dell'istanza.
  • DISK_SIZE: le dimensioni del disco di avvio in GB.
  • IMAGE_PROJECT: l'ID progetto dell'immagine del sistema operativo.
  • IMAGE_FAMILY: la famiglia di immagini dell'immagine del sistema operativo che vuoi utilizzare. Per le opzioni, vedi Dettagli sul sistema operativo.
  • TERMINATION_ACTION: facoltativo. Specifica l'azione da intraprendere quando Compute Engine esegue la preemption dell'istanza, STOP (comportamento predefinito) o DELETE.

Preparare una VM spot con GPU collegate per l'utilizzo

Per preparare una VM Spot con GPU collegate per l'utilizzo, completa i seguenti passaggi:

  1. Per consentire a un'istanza di utilizzare le GPU collegate, sono necessari i driver GPU. A meno che tu non abbia specificato un'immagine che includa già i driver GPU richiesti, segui la procedura per installare i driver GPU.
  2. Per preparare una VM spot per l'utilizzo, completa i seguenti passaggi:

Passaggi successivi