Crea un'istanza ottimizzata per l'AI con A4X

Questo documento descrive i passaggi per creare istanze di macchine virtuali (VM) autonome che utilizzano i tipi di macchina A4X. Per saperne di più su questo tipo di macchina, vedi A4X.

Per scoprire altri modi per creare VM o cluster, vedi Panoramica delle opzioni di deployment.

Limitazioni

Quando crei una VM A4X autonoma, si applicano le seguenti limitazioni:

Consulta anche le limitazioni per le norme di posizionamento.

Prima di iniziare

Prima di creare le VM, se non l'hai ancora fatto, completa i seguenti passaggi:

  1. Scegli un'opzione di consumo: la tua scelta determina come ottenere e utilizzare le risorse GPU. Per saperne di più, consulta Scegliere un'opzione di consumo.
  2. Ottenere capacità: la procedura per ottenere capacità varia a seconda dell'opzione di consumo. Per scoprire di più sulla procedura per ottenere la capacità per l'opzione di consumo scelta, consulta Panoramica della capacità.

Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

Console

Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.

gcloud

Nella console Google Cloud , attiva Cloud Shell.

Attiva Cloud Shell

Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

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

Elementi di base di A4X

Un cluster A4X è organizzato in una gerarchia di blocchi e sottoblocchi per facilitare le prestazioni di rete non bloccanti su larga scala. Comprendere questa topologia è fondamentale quando si riserva la capacità e si eseguono i deployment dei workload.

Istanza A4X
Un'istanza A4X è un singolo tipo di macchina A4X a cui sono collegate 4 GPU.
Blocco secondario
Un sottoblocco è l'unità fondamentale della capacità A4X. Per A4X, un sottoblocco è costituito da 18 istanze A4X (72 GPU); queste istanze formano un dominio NVLink e sono connesse utilizzando un sistema NVLink multi-nodo. Crea un sottoblocco A4X applicando una policy di posizionamento compatto che specifica una topologia 1x72.
Blocca
Un blocco A4X è composto da 25 sottoblocchi (domini NVLink), per un totale di 450 istanze A4X (1800 GPU). I sottoblocchi sono allineati alle guide per una scalabilità efficiente. Ogni sottoblocco richiede una policy di posizionamento compatto. Pertanto, per un singolo blocco A4X, puoi creare 25 policy di posizionamento compatto.

La tabella seguente mostra le opzioni di topologia supportate per le istanze A4X:

Topologia (gpuTopology) Numero di GPU Numero di istanze
1x72 72 18

Panoramica

La creazione di un'istanza con il tipo di macchina A4X include i seguenti passaggi:

  1. Crea reti VPC
  2. Crea una policy di posizionamento compatto
  3. Crea un'istanza
  4. Installa i driver della GPU
  5. (Facoltativo) Attiva la modalità GPU multi-istanza NVIDIA

Crea reti VPC

Per configurare la rete per i tipi di macchine A4X, crea tre reti VPC per le seguenti interfacce di rete:

  • 2 reti VPC standard per le interfacce di rete (NIC) gVNIC. Le NIC utilizzano quindi queste reti VPC per la comunicazione host-to-host.
  • 1 rete VPC con il profilo di rete RoCE per le NIC CX-7 quando crei più sottoblocchi A4X. La rete VPC RoCE per le istanze VM deve avere 4 subnet, una per ogni NIC CX-7. Queste NIC utilizzano RDMA su Converged Ethernet (RoCE), fornendo la comunicazione a bassa latenza e ad alta larghezza di banda essenziale per lo scale out a più sottoblocchi A4X.

Per ulteriori informazioni sulla disposizione del NIC, consulta Controlla la larghezza di banda della rete e la disposizione del NIC.

Crea le reti manualmente seguendo le guide alle istruzioni o automaticamente utilizzando lo script fornito.

Guide con istruzioni

Per creare le reti, puoi utilizzare le seguenti istruzioni:

Per queste reti VPC, imposta l'unità massima di trasmissione (MTU) su un valore maggiore. Per i tipi di macchine A4X, l'MTU consigliata è 8896 byte. Per esaminare le impostazioni MTU consigliate per altri tipi di macchine GPU, consulta Impostazioni MTU per i tipi di macchine GPU.

Script

Per creare le reti, segui questi passaggi.

Per queste reti VPC, imposta l'unità massima di trasmissione (MTU) su un valore maggiore. Per i tipi di macchine A4X, l'MTU consigliata è 8896 byte. Per esaminare le impostazioni MTU consigliate per altri tipi di macchine GPU, consulta Impostazioni MTU per i tipi di macchine GPU.

  1. Utilizza il seguente script per creare reti VPC regolari per le gVNIC.

    
    
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --range=192.168.$N.0/24
    
          gcloud 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=192.168.0.0/16
        done
    
        # Create SSH firewall rules
        gcloud 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 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
    
    
          
  2. Se hai bisogno di più sottoblocchi A4X, utilizza il seguente script per creare la rete VPC RoCE per le istanze VM (roce) e le subnet per le quattro NIC CX-7 su ogni istanza A4X.

    
    
        #!/bin/bash
    
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for RDMA NICs
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 3); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=192.168.$((N+2)).0/24 # offset to avoid overlap with gVNICs
        done
    
    
          
  3. Sostituisci quanto segue:

    • GVNIC_NAME_PREFIX: il prefisso del nome personalizzato da utilizzare per le reti VPC e le subnet regolari per le gVNIC.
    • RDMA_NAME_PREFIX: il prefisso del nome personalizzato da utilizzare per la rete VPC RoCE per le istanze VM (roce) e le subnet per le NIC CX-7.
    • ZONE: specifica una zona in cui è disponibile il tipo di macchina che vuoi utilizzare, ad esempio us-central1-a. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.
    • REGION: la regione in cui vuoi creare le subnet. Questa regione deve corrispondere alla zona specificata. Ad esempio, se la tua zona è us-central1-a, la tua regione è us-central1.
    • IP_RANGE: l'intervallo IP da utilizzare per le regole firewall SSH.
  4. (Facoltativo) Per verificare che le risorse della rete VPC siano state create correttamente, controlla le impostazioni della rete nella console Google Cloud :
    1. Nella console Google Cloud , vai alla pagina Reti VPC.

      Vai a Reti VPC

    2. Cerca nell'elenco le reti che hai creato nel passaggio precedente.
    3. Per visualizzare le subnet, le regole firewall e altre impostazioni della rete, fai clic sul nome della rete.

Crea una policy di posizionamento compatto

Per creare una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

gcloud

Per creare una policy di posizionamento compatto, utilizza il comando gcloud beta compute resource-policies create group-placement:

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --gpu-topology=1x72 \
    --region=REGION

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy di posizionamento compatto.
  • REGION: la regione in cui vuoi creare la policy di posizionamento compatto. Specifica la regione che contiene la zona in cui prevedi di creare istanze e verifica che il tipo di macchina che vuoi utilizzare sia disponibile in quella regione. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.

REST

Per creare una policy di posizionamento compatto, invia una richiesta POST al metodo resourcePolicies.insert beta.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
  {
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
      "collocation": "COLLOCATED",
      "gpuTopology": "1x72"
    }
  }

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • POLICY_NAME: il nome della policy di posizionamento compatto.
  • REGION: la regione in cui vuoi creare la policy di posizionamento compatto. Specifica la regione che contiene la zona in cui prevedi di creare istanze e verifica che il tipo di macchina che vuoi utilizzare sia disponibile in quella regione. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.

Crea un'istanza A4X

Scegli l'opzione di creazione in linea con l'architettura del tuo workload:

  • Crea un'istanza in un dominio NVLink con 72 GPU (topologia 1x72): ideale per l'addestramento distribuito su larga scala, il perfezionamento e i carichi di lavoro di inferenza multi-nodo che richiedono una comunicazione GPU a larghezza di banda elevata e bassa latenza su un massimo di 18 istanze (72 GPU) tramite il fabric NVLink multi-nodo. Devi utilizzare una policy di posizionamento compatto.
  • Crea un'istanza autonoma con 4 GPU (NVL4): ideale per carichi di lavoro a nodo singolo, inferenza di modelli più piccoli, elaborazione batch e sviluppo interattivo che rientrano in quattro GPU e richiedono solo il peering NVLink intra-nodo. Devi scegliere come target un blocco secondario di prenotazione specifico per partizionarlo in istanze autonome. Non hai bisogno di una policy di posizionamento compatto.

Crea un'istanza in un dominio NVLink con 72 GPU (topologia 1x72)

Per ottenere una topologia GPU di 1x72, crea 18 istanze A4X. Quando crei le istanze, applica la policy di posizionamento compatto che specifica il campo gpuTopology. L'applicazione del criterio garantisce che Compute Engine crei tutte le 18 istanze A4X in un unico sottoblocco per utilizzare un dominio NVLink. Se un sottoblocco non ha capacità per un'istanza A4X, la richiesta di creare l'istanza non va a buon fine.

Per creare un'istanza A4X che si connette alle 18 istanze all'interno del dominio NVLink, applica la policy di posizionamento compatto e configura il networking RDMA multi-NIC.

Per creare un'istanza A4X, seleziona una delle seguenti opzioni.

I seguenti comandi impostano anche l'ambito di accesso per le tue istanze. Per semplificare la gestione delle autorizzazioni, Google consiglia di impostare l'ambito di accesso di un'istanza su cloud-platform e poi utilizzare i ruoli IAM per definire i servizi a cui l'istanza può accedere. Per saperne di più, consulta le best practice per gli ambiti.

gcloud

Per creare l'istanza A4X, utilizza il comando gcloud compute instances create.

Le istanze A4X supportano i seguenti tipi di prenotazioni:

  • Prenotazioni future in AI Hypercomputer
  • Prenotazioni future in modalità calendario

Per utilizzare questi tipi di prenotazioni, un'istanza deve utilizzare il modello di provisioning con prenotazione. Ad esempio, utilizza i seguenti parametri di creazione.

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=a4x-highgpu-4g \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --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 \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure \
    --resource-policies=POLICY_NAME

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza A4X.
  • IMAGE_FAMILY: la famiglia di immagini dell'immagine del sistema operativo che vuoi utilizzare. Per un elenco di tutti i sistemi operativi supportati, vedi Sistemi operativi supportati.
  • IMAGE_PROJECT: l'ID progetto dell'immagine del sistema operativo.
  • ZONE: la zona in cui è disponibile il tipo di macchina che vuoi utilizzare. Devi utilizzare una zona nella stessa regione della policy di posizionamento compatto. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.
  • DISK_SIZE: le dimensioni del disco di avvio in GB. Per ulteriori informazioni, consulta Limiti di dimensioni di Google Cloud Hyperdisk o Limiti di dimensioni di Persistent Disk in base al tipo di disco.
  • GVNIC_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet standard che utilizzano gVNIC.
  • RDMA_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet che utilizzano NIC RDMA.
  • RESERVATION: il nome della prenotazione, di un blocco o di un sottoblocco all'interno di una prenotazione. Per ottenere il nome della prenotazione o i blocchi disponibili, vedi Visualizzare la capacità riservata. In base ai tuoi requisiti per il posizionamento delle istanze, scegli una delle seguenti opzioni:
    • Per creare istanze A4X su un singolo blocco:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • Per creare istanze A4X su un blocco specifico:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • Per creare istanze A4X in un sottoblocco specifico:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          
  • TERMINATION_ACTION: indica se Compute Engine arresta (STOP) o elimina (DELETE) l'istanza A4X al termine del periodo di prenotazione.

  • POLICY_NAME: il nome della policy di posizionamento compatto.

REST

Per creare l'istanza A4X, invia una richiesta POST al metodo instances.insert.

Le istanze A4X supportano i seguenti tipi di prenotazioni:

  • Prenotazioni future in AI Hypercomputer
  • Prenotazioni future in modalità calendario

Per utilizzare questi tipi di prenotazioni, un'istanza deve utilizzare il modello di provisioning con prenotazione. Ad esempio, utilizza i seguenti parametri di creazione.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-highgpu-4g",
  "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"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      }
     ],
  "reservationAffinity": {
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values": [
      "RESERVATION"
    ]
  },
  "scheduling": {
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  },
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto del progetto in cui vuoi creare l'istanza A4X.
  • ZONE: la zona in cui è disponibile il tipo di macchina che vuoi utilizzare. Devi utilizzare una zona nella stessa regione della policy di posizionamento compatto. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.
  • INSTANCE_NAME: il nome dell'istanza A4X.
  • DISK_SIZE: le dimensioni del disco di avvio in GB. Per ulteriori informazioni, consulta Limiti di dimensioni di Google Cloud Hyperdisk o Limiti di dimensioni di Persistent Disk in base al tipo di disco.
  • 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 un elenco di tutti i sistemi operativi supportati, vedi Sistemi operativi supportati.
  • NETWORK_PROJECT_ID: l'ID progetto della rete.
  • GVNIC_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet standard che utilizzano gVNIC.
  • REGION: la regione della subnet.
  • RDMA_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet che utilizzano NIC RDMA.
  • RESERVATION: il nome della prenotazione, di un blocco o di un sottoblocco all'interno di una prenotazione. Per ottenere il nome della prenotazione o i blocchi disponibili, vedi Visualizzare la capacità riservata. In base ai tuoi requisiti per il posizionamento delle istanze, scegli una delle seguenti opzioni:
    • Per creare istanze A4X su un singolo blocco:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • Per creare istanze A4X su un blocco specifico:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • Per creare istanze A4X in un sottoblocco specifico:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          
  • TERMINATION_ACTION: indica se Compute Engine arresta (STOP) o elimina (DELETE) l'istanza A4X al termine del periodo di prenotazione.

  • PROJECT_ID: l'ID progetto della policy di posizionamento compatto.
  • REGION: la regione della policy di posizionamento compatto.
  • POLICY_NAME: il nome della policy di posizionamento compatto.

Crea un'istanza autonoma con 4 GPU (NVL4)

NVL4 partiziona il dominio NVLink per creare istanze indipendenti sul fabric NVLink. Per creare istanze NVL4 autonome, devi specificare quale sottoblocco all'interno della prenotazione da partizionare. Poiché ogni istanza A4X funziona in modo indipendente, non è necessario utilizzare criteri di posizionamento compatti. La comunicazione NVLink a quattro GPU all'interno del nodo è completamente supportata per i carichi di lavoro all'interno dell'istanza.

Prima di creare istanze NVL4 autonome, tieni presente quanto segue:

  • Targeting di capacità e sottoblocchi: per creare istanze NVL4 autonome, devi scegliere come target un sottoblocco di prenotazione specifico. L'unità atomica di capacità riservata è un intero sottoblocco, ovvero un dominio NVLink di 18 istanze o 72 GPU. Non puoi prenotare singole istanze NVL4 individualmente. Quando esegui il deployment delle istanze NVL4, partizioni un sottoblocco riservato in un massimo di 18 nodi indipendenti. Puoi anche condividere una prenotazione di un sottoblocco da un progetto host con progetti consumer.
  • Modifiche statiche al partizionamento e alla configurazione: le implementazioni dei sottoblocchi sono statiche. Per modificare la configurazione di un sottoblocco, ad esempio passando da un dominio NVLink multimodale 1x72 a istanze NVL4 autonome o viceversa, devi eliminare tutte le istanze esistenti nel sottoblocco prima di ricrearle con la nuova configurazione.
  • Deployment misti in un sottoblocco: puoi allocare istanze all'interno della stessa prenotazione di sottoblocco sia per le istanze Compute Engine autonome sia per i pool di nodi GKE, ad esempio il provisioning di 12 istanze Compute Engine autonome per lo sviluppo e 6 istanze in un pool di nodi GKE.
  • Configurazione NCCL e NVLS: se esegui carichi di lavoro distribuiti utilizzando NCCL tra le istanze NVL4, disattiva NVLink SHARP impostando la variabile di ambiente NCCL_NVLS_ENABLE=0. Google Cloud non configura i gruppi multicast CUDA per la comunicazione multi-nodo su domini partizionati.

Se hai prenotato un intero sottoblocco, composto da 18 istanze o 72 GPU, e vuoi eseguire il deployment di tutte le 18 istanze A4X autonome, esegui il comando di creazione 18 volte e assicurati che ogni comando abbia come target lo stesso sottoblocco di prenotazione.

Per creare un'istanza A4X autonoma con quattro GPU, seleziona una delle seguenti opzioni:

gcloud

Per creare l'istanza A4X, utilizza il comando gcloud compute instances create.

Le istanze A4X supportano i seguenti tipi di prenotazioni:

  • Prenotazioni future in AI Hypercomputer
  • Prenotazioni future in modalità calendario

Per utilizzare questi tipi di prenotazioni, un'istanza deve utilizzare il modello di provisioning con prenotazione. Ad esempio, utilizza i seguenti parametri di creazione.

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=a4x-highgpu-4g \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --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 \
    --reservation-affinity=specific \
    --reservation=RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza A4X.
  • IMAGE_FAMILY: la famiglia di immagini dell'immagine del sistema operativo che vuoi utilizzare. Per un elenco di tutti i sistemi operativi supportati, vedi Sistemi operativi supportati.
  • IMAGE_PROJECT: l'ID progetto dell'immagine del sistema operativo.
  • ZONE: la zona in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.
  • DISK_SIZE: le dimensioni del disco di avvio in GB. Per ulteriori informazioni, consulta Limiti di dimensioni di Google Cloud Hyperdisk o Limiti di dimensioni di Persistent Disk in base al tipo di disco.
  • GVNIC_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet standard che utilizzano gVNIC.
  • RDMA_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet che utilizzano NIC RDMA.
  • RESERVATION_NAME: il nome della prenotazione.
  • BLOCK_NAME: il nome di un blocco specifico all'interno della prenotazione.
  • SUB_BLOCK_NAME: il nome del sottoblocco specifico all'interno del blocco.
  • TERMINATION_ACTION: indica se Compute Engine arresta (STOP) o elimina (DELETE) l'istanza A4X al termine del periodo di prenotazione.

REST

Per creare l'istanza A4X, invia una richiesta POST al metodo instances.insert.

Le istanze A4X supportano i seguenti tipi di prenotazioni:

  • Prenotazioni future in AI Hypercomputer
  • Prenotazioni future in modalità calendario

Per utilizzare questi tipi di prenotazioni, un'istanza deve utilizzare il modello di provisioning con prenotazione. Ad esempio, utilizza i seguenti parametri di creazione.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-highgpu-4g",
  "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"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      }
     ],
  "reservationAffinity": {
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values": [
      "RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME"
    ]
  },
  "scheduling": {
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto del progetto in cui vuoi creare l'istanza A4X.
  • ZONE: la zona in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni, vedi Disponibilità delle GPU per regioni e zone.
  • INSTANCE_NAME: il nome dell'istanza A4X.
  • DISK_SIZE: le dimensioni del disco di avvio in GB. Per ulteriori informazioni, consulta Limiti di dimensioni di Google Cloud Hyperdisk o Limiti di dimensioni di Persistent Disk in base al tipo di disco.
  • 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 un elenco di tutti i sistemi operativi supportati, vedi Sistemi operativi supportati.
  • NETWORK_PROJECT_ID: l'ID progetto della rete.
  • GVNIC_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet standard che utilizzano gVNIC.
  • REGION: la regione della subnet.
  • RDMA_NAME_PREFIX: il prefisso del nome che hai specificato durante la creazione delle reti VPC e delle subnet che utilizzano NIC RDMA.
  • RESERVATION_NAME: il nome della prenotazione.
  • BLOCK_NAME: il nome di un blocco specifico all'interno della prenotazione.
  • SUB_BLOCK_NAME: il nome del sottoblocco specifico all'interno del blocco.
  • TERMINATION_ACTION: indica se Compute Engine arresta (STOP) o elimina (DELETE) l'istanza A4X al termine del periodo di prenotazione.

Installa i driver della GPU

Dopo aver creato un'istanza, questa non può utilizzare le GPU a meno che non siano già installati i driver GPU corretti. Se non hai specificato un'immagine del sistema operativo che include i driver GPU, consulta la sezione Installare i driver GPU nella documentazione di Compute Engine.

(Facoltativo) Attiva la modalità GPU multi-istanza NVIDIA

La modalità GPU multi-istanza (MIG) è una funzionalità che puoi attivare per una GPU NVIDIA supportata. Dopo aver creato un'istanza, puoi attivare la modalità MIG su una singola GPU collegata alla tua macchina. Con la modalità MIG attivata, la singola GPU viene partizionata in un massimo di sette istanze GPU indipendenti. Ogni istanza viene eseguita contemporaneamente, ognuna con la propria memoria, cache e multiprocessori streaming. Puoi quindi eseguire in parallelo diversi carichi di lavoro su queste istanze GPU. Per ulteriori informazioni sull'utilizzo della modalità MIG, consulta la Guida dell'utente per le GPU multi-istanza (MIG) nella documentazione NVIDIA.

Passaggi successivi