Crea VM TPU Flex-start con Compute Engine

Le VM TPU Flex-start, basate su Dynamic Workload Scheduler, offrono un modo flessibile ed economicamente vantaggioso per accedere alle risorse TPU per i carichi di lavoro AI fino a 7 giorni senza prenotazioni a lungo termine. Quando richiedi VM TPU Flex-start, la richiesta rimane in una coda finché la capacità non è disponibile. Una volta eseguito il provisioning, le VM TPU vengono eseguite per la durata specificata.

Le VM TPU con avvio flessibile sono adatte a sperimentazioni rapide, test su piccola scala, provisioning dinamico di TPU per carichi di lavoro di inferenza, perfezionamento del modello ed esecuzioni di carichi di lavoro che richiedono meno di 7 giorni. Per ulteriori informazioni su altre opzioni di consumo TPU, consulta Opzioni di consumo Cloud TPU.

Puoi eliminare le risorse TPU in qualsiasi momento per interrompere la fatturazione. Per ulteriori informazioni sui prezzi delle TPU, consulta Prezzi di Cloud TPU.

Limitazioni

Le VM TPU Flex-start presentano le seguenti limitazioni:

  • Puoi richiedere VM TPU con inizio flessibile per una durata massima di 7 giorni.
  • Puoi richiedere i tipi di macchine TPU7x, TPU v6e e TPU v5p. Per saperne di più sulle regioni e sulle zone in cui sono disponibili questi tipi di macchina, consulta Regioni e zone TPU.

I MIG con TPU presentano le seguenti 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.

  • Distribuzione delle zone del MIG a livello di regione: devi impostare la forma di distribuzione target su ANY_SINGLE_ZONE.

  • Aggiornamenti della configurazione in un MIG:

    • Non puoi aggiornare un MIG che forma una sezione TPU multi-host a causa della topologia dell'acceleratore definita.
    • Puoi aggiornare un gruppo di istanze gestite che formano slice TPU a host singolo utilizzando i metodi automatici o selettivi. Tuttavia, gli aggiornamenti per lo slice TPU a un solo host non supportano l'azione di riavvio (RESTART). Se è necessario un riavvio e l'azione più invasiva consentita è la sostituzione (REPLACE), lo strumento di aggiornamento sostituirà l'istanza; in caso contrario, il tentativo di aggiornamento non andrà a buon fine e verrà visualizzato un errore.
  • Per un MIG che forma uno slice TPU multi-host, si applicano anche le seguenti limitazioni:

    • Policy di dimensione target: devi impostare la modalità della policy di dimensione target su BULK. Una volta impostata questa modalità, non potrai più modificarla.

    • Dimensione target: in modalità in blocco, puoi impostare la dimensione target su 0 o sul numero di istanze necessarie per formare la topologia dell'acceleratore.

    • Policy del workload: devi specificare una policy del workload in cui è definita la topologia dell'acceleratore. Una volta impostata la policy del workload, non puoi modificarla o rimuoverla dal MIG.

    • Riparazioni avviate dal MIG: devi disattivare le riparazioni avviate dal MIG impostando il campo defaultActionOnFailure su DO_NOTHING. In questa configurazione, il MIG non esegue alcuna azione su un'istanza non riuscita. Compute Engine recupera automaticamente l'istanza non riuscita riavviando tutte le istanze nella stessa sezione sulla capacità integra.

  • Funzionalità non supportate: i MIG con TPU non supportano le seguenti funzionalità:

Prima di iniziare

Prima di richiedere VM TPU Flex-start, devi:

  • Installa Google Cloud CLI
  • Crea un progetto Google Cloud
  • Abilita l'API Compute Engine (compute.googleapis.com)
  • Assicurati di disporre delle autorizzazioni necessarie:
    • roles/compute.instanceAdmin.v1
    • roles/iam.serviceAccountUser

Per saperne di più, consulta Configurare un progetto Google Cloud per le TPU.

Assicurati di disporre di una quota prerilasciabile sufficiente per utilizzare le VM TPU Flex-start. Se il tuo workload richiede più core di quelli attualmente allocati, puoi richiedere un aumento della quota. Per maggiori dettagli, consulta Quote di Cloud TPU.

Crea VM TPU con avvio flessibile con i MIG

Per utilizzare le VM TPU Flex-start, crea un gruppo di istanze gestite (MIG) con una configurazione specifica del modello di istanza.

Per istruzioni generali sulla creazione di VM con avvio flessibile, consulta Crea VM con avvio flessibile.

Crea VM TPU con avvio flessibile con uno slice multi-host

Crea un template di istanza

Crea un modello di istanza specificando il modello di provisioning FLEX_START e la durata di esecuzione scelta.

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

REST

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

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.
  • 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 (ad esempio ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: Il progetto immagine sistema operativo per la VM TPU (ad esempio, ubuntu-os-accelerator-images)
  • DURATION: la durata massima dell'esecuzione. Per REST, specifica questo valore come numero di secondi (ad esempio, 3600 per 1 ora o 604800 per 7 giorni).
  • REGION: la regione in cui creare il template di istanza.

Crea una policy del workload

Il seguente comando crea una policy del workload. Questa opzione è facoltativa per le sezioni su un singolo host.

gcloud

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --accelerator-topology=TOPOLOGY \
  --region=REGION

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WORKLOAD_POLICY_NAME",
    "workloadPolicy": {
      "type": "HIGH_THROUGHPUT",
      "acceleratorTopology": "TOPOLOGY"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • WORKLOAD_POLICY_NAME: Il nome della policy del workload.
  • TOPOLOGY: la topologia delle VM TPU, ad esempio 4x4x8.
  • REGION: la regione in cui creare la policy del workload.

Crea il MIG

Crea il MIG utilizzando il modello.

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --workload-policy=WORKLOAD_POLICY_URL \
    --default-action-on-vm-failure=do-nothing \
    --target-size-policy-mode=bulk

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": SIZE,
    "targetSizePolicy": {
      "mode": "BULK"
    },
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "instanceLifecyclePolicy": {
      "defaultActionOnFailure": "DO_NOTHING"
    },
    "resourcePolicies": {
      "workloadPolicy": "WORKLOAD_POLICY_URL"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • MIG_NAME: il nome del tuo MIG.
  • ZONE: la zona del tuo MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
    • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
  • SIZE: il numero di istanze da creare.
  • WORKLOAD_POLICY_URL: L'URL della policy del workload che vuoi utilizzare per creare istanze nel MIG. Ad esempio: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

Crea VM TPU con avvio flessibile con slice single-host

Crea un template di istanza

Crea un modello di istanza specificando il modello di provisioning FLEX_START e la durata di esecuzione scelta.

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

REST

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

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.
  • 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 (ad esempio ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: Il progetto immagine sistema operativo per la VM TPU (ad esempio, ubuntu-os-accelerator-images)
  • DURATION: la durata massima dell'esecuzione. Per REST, specifica questo valore come numero di secondi (ad esempio, 3600 per 1 ora o 604800 per 7 giorni).
  • REGION: la regione in cui creare il template di istanza.

Crea una policy del workload

Il seguente comando crea una policy del workload. Questa opzione è facoltativa per le sezioni su un singolo host.

gcloud

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --region=REGION

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WORKLOAD_POLICY_NAME",
    "workloadPolicy": {
      "type": "HIGH_THROUGHPUT"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • WORKLOAD_POLICY_NAME: Un nome per la policy del workload.
  • REGION: la regione in cui creare la policy del workload.

Crea il MIG

Crea il MIG utilizzando il modello.

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --workload-policy=WORKLOAD_POLICY_URL

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "resourcePolicies": {
      "workloadPolicy": "WORKLOAD_POLICY_URL"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • MIG_NAME: il nome del tuo MIG.
  • ZONE: la zona del tuo MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
    • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
  • SIZE: il numero di istanze da creare.
  • WORKLOAD_POLICY_URL: L'URL della policy del workload che vuoi utilizzare per creare istanze nel MIG. Ad esempio: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.