Crea un'istanza VM TPU

Questo documento descrive come creare un'istanza di macchina virtuale (VM) TPU. Una VM TPU è chiamata anche slice TPU a host singolo.

Per creare un gruppo di slice single-host, consulta Crea un MIG con slice TPU single-host.

Prima di iniziare

  • 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 prevedi di utilizzare i campioni in questa pagina:

    gcloud

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

      gcloud init

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

Prerequisiti

Prima di procedere alla creazione di un'istanza TPU, devi:

  1. Scegli la versione della TPU: seleziona la versione della TPU adatta al tuo workload. Per un elenco delle versioni TPU per tipo di workload, consulta Versioni TPU consigliate per tipo di workload.

  2. Verifica la disponibilità di TPU nella tua località preferita: le TPU sono disponibili in regioni specifiche Google Cloud . Per utilizzare una versione della TPU, assicurati che sia disponibile nella regione che preferisci. Per un elenco delle località TPU, consulta la sezione Disponibilità delle TPU.

  3. Assicurati che il tuo progetto disponga di una quota TPU sufficiente: se stai creando un'istanza TPU con VM on demand, Flex-start o spot, devi disporre di una quota TPU sufficiente nella regione che vuoi utilizzare. La creazione di un'istanza TPU che utilizza una prenotazione TPU non richiede alcuna quota TPU, poiché la quota viene utilizzata al momento della creazione della prenotazione. Per un elenco dei nomi delle quote TPU, consulta Quota TPU e per istruzioni su come visualizzare la quota, consulta Visualizza e gestisci le quote.

  4. Scegli un'opzione di consumo TPU: seleziona un'opzione di consumo più adatta al tuo workload, alla sua durata e alle tue esigenze di costo. Per un elenco delle opzioni di consumo disponibili per versione di TPU, consulta Opzioni di consumo TPU.

Crea un'istanza VM TPU

I parametri utilizzati per creare un'istanza VM TPU dipendono dall'opzione di consumo che utilizzi: on demand, spot, con prenotazione o con avvio flessibile. Per maggiori informazioni, vedi Informazioni sui modelli di provisioning delle VM .

Crea un'istanza VM TPU on demand

Per creare un'istanza VM TPU on demand, utilizza il comando gcloud compute instances create:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • TPU_NAME: Un nome per la VM TPU.
  • MACHINE_TYPE: il tipo di macchina per la VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag --image. Per ulteriori informazioni sulle immagini sistema operativo, consulta Immagini sistema operativo.
  • IMAGE_PROJECT: Il progetto che contiene l'immagine sistema operativo. Per le immagini TPU, questo valore è ubuntu-os-accelerator-images.
  • ZONE: la zona per la VM TPU (ad esempio us-central1-b).

Crea un'istanza VM spot TPU

Per creare un'istanza VM spot TPU, utilizza il comando gcloud compute instances create con il flag --provisioning-model=SPOT:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=SPOT \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • TPU_NAME: Un nome per la VM TPU.
  • MACHINE_TYPE: il tipo di macchina per la VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag --image. Per ulteriori informazioni sulle immagini sistema operativo, consulta Immagini sistema operativo.
  • IMAGE_PROJECT: Il progetto che contiene l'immagine sistema operativo. Per le immagini TPU, questo valore è ubuntu-os-accelerator-images.
  • ZONE: la zona per la VM TPU (ad esempio us-central1-b).

Creare un'istanza VM TPU utilizzando una prenotazione

Per creare un'istanza VM TPU utilizzando l'opzione di consumo Con prenotazione, utilizza il comando gcloud compute instances create con i flag --reservation-affinity=specific e --reservation:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=reservation-bound \
  --reservation-affinity=specific \
  --reservation=RESERVATION_NAME \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "RESERVATION_BOUND",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "SPECIFIC_RESERVATION",
      "key": "compute.googleapis.com/reservation-name",
      "values": [
        "RESERVATION_NAME"
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • TPU_NAME: Un nome per la VM TPU.
  • MACHINE_TYPE: il tipo di macchina per la VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag --image. Per ulteriori informazioni sulle immagini sistema operativo, consulta Immagini sistema operativo.
  • IMAGE_PROJECT: Il progetto che contiene l'immagine sistema operativo. Per le immagini TPU, questo valore è ubuntu-os-accelerator-images.
  • ZONE: la zona per la VM TPU (ad esempio us-central1-b).
  • RESERVATION_NAME: il nome della prenotazione specifica da utilizzare. Per le prenotazioni in modalità Tutta la capacità, puoi scegliere come target un blocco o un sottoblocco specificando l'URL per prenotare nel seguente modo:

    • Specifica un blocco:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
      
    • Specifica un blocco secondario:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
      

Crea una VM TPU Flex-start

Per creare un'istanza VM TPU Flex-start, utilizza il comando gcloud compute instances create con il flag --provisioning-model=FLEX_START:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=FLEX_START \
  --max-run-duration=MAX_RUN_DURATION \
  --request-valid-for-duration=VALID_DURATION \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "params": {
      "requestValidForDuration": {
        "seconds": VALID_DURATION
      }
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START",
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": MAX_RUN_DURATION
      }
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • TPU_NAME: Un nome per la VM TPU.
  • MACHINE_TYPE: il tipo di macchina per la VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag --image. Per ulteriori informazioni sulle immagini sistema operativo, consulta Immagini sistema operativo.
  • IMAGE_PROJECT: Il progetto che contiene l'immagine sistema operativo. Per le immagini TPU, questo valore è ubuntu-os-accelerator-images.
  • ZONE: la zona per la VM TPU (ad esempio us-central1-b).
  • MAX_RUN_DURATION: la durata massima di esecuzione della VM TPU (ad esempio 6h). Per REST, specifica questo valore come numero di secondi (ad esempio 21600 per 6 ore).
  • VALID_DURATION: la durata massima per cui la richiesta è valida. Per REST, specifica questo valore come numero di secondi (ad esempio 3600 per 1 ora).

Per saperne di più sulla creazione di istanze Compute Engine, consulta Crea e avvia un'istanza Compute Engine.

Limitazioni

  • Operazioni del ciclo di vita: non puoi arrestare, avviare, riprendere o sospendere le istanze TPU. Per modificare le configurazioni che richiedono un riavvio o per interrompere l'addebito dei costi, devi eliminare le istanze.

  • Aggiorna i dettagli della VM: puoi aggiornare le proprietà che richiedono solo un'azione di aggiornamento (REFRESH). Se una configurazione richiede un riavvio (RESTART), devi ricreare l'istanza.

  • Riavvio automatico: nella modalità Tutta la capacità, non devi disattivare il riavvio automatico impostando il campo scheduling.automaticRestart su false.

Passaggi successivi