Crea VM TPU con inizio flessibile con Compute Engine

Le VM TPU con inizio flessibile, con piattaforma Dynamic Workload Scheduler, offrono un modo flessibile ed economico per accedere alle risorse TPU per i workload di AI per un massimo di 7 giorni senza prenotazioni a lungo termine. Quando richiedi VM TPU con inizio flessibile, la richiesta rimane in una coda finché non è disponibile la capacità. Una volta eseguito il provisioning, le VM TPU vengono eseguite per la durata specificata.

Le VM TPU con inizio flessibile sono adatte per sperimentazioni rapide, test su piccola scala, provisioning dinamico di TPU per workload di inferenza, ottimizzazione dei modelli ed esecuzioni di workload che richiedono meno di 7 giorni. Per saperne di più sulle altre opzioni di consumo di TPU, consulta Opzioni di consumo di Cloud TPU.

Puoi eliminare le risorse TPU in qualsiasi momento per interrompere la fatturazione. Per saperne di più sui prezzi delle TPU, consulta Prezzi di Cloud TPU pricing.

Limitazioni

Le VM TPU con inizio flessibile presentano le seguenti limitazioni:

  • Puoi richiedere VM TPU con inizio flessibile per una durata massima di 7 giorni.
  • Puoi richiedere le seguenti versioni e zone di Cloud TPU:
    • TPU7x: us-central1-c
    • TPU v6e: asia-northeast1-b, us-east5-a, us-south1-ai1b
    • TPU v5p: us-east5-a

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, devi eliminare le istanze.

  • Distribuzione delle zone dei 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 slice TPU multi-host a causa della topologia dell'acceleratore definita.
    • Puoi aggiornare un MIG che forma slice TPU single-host utilizzando i metodi automatici o selettivi. Tuttavia, gli aggiornamenti per la slice TPU single-host non supportano l'azione di riavvio (RESTART). Se è necessario un riavvio e l'azione più invasiva consentita è la sostituzione (REPLACE), il programma di aggiornamento sostituirà l'istanza; in caso contrario, il tentativo di aggiornamento non riuscirà e verrà generato un errore.

  • Per un MIG che forma una slice TPU multi-host, si applicano anche le seguenti limitazioni:

    • Policy della dimensione target: devi impostare la modalità della policy della dimensione target su BULK. Dopo aver impostato questa modalità, non puoi modificarla.

    • Dimensione target: in modalità in blocco, puoi impostare la dimensione target su 0 o il 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. Dopo aver impostato la policy del workload, non puoi modificarla o rimuoverla dal MIG.

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

Prima di iniziare

Prima di richiedere VM TPU con inizio flessibile, devi:

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

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

Assicurati di avere una quota preemptible sufficiente per utilizzare le VM TPU con inizio flessibile. Se il tuo workload richiede più core rispetto all'allocazione attuale, puoi richiedere un aumento della quota. Per informazioni dettagliate, consulta Quote di Cloud TPU.

Crea VM TPU con inizio flessibile con i MIG

Per utilizzare le VM TPU con inizio flessibile, crea un gruppo di istanze gestite (MIG) con una configurazione di template di istanza specifica.

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

Crea VM TPU con inizio flessibile con una slice multi-host

Crea un template di istanza

Crea un template 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 template di istanza.
  • MACHINE_TYPE: il tipo di macchina della VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU (per esempio, ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: il progetto immagine del 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. Questo passaggio è facoltativo per le slice single-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 template.

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 MIG.
  • ZONE: la zona del MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l' ID o il nome del template 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 inizio flessibile con slice single-host

Crea un template di istanza

Crea un template 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 template di istanza.
  • MACHINE_TYPE: il tipo di macchina della VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU (per esempio, ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: il progetto immagine del sistema operativo per la VM TPU (per 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. Questo passaggio è facoltativo per le slice single-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 template.

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 MIG.
  • ZONE: la zona del MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l' ID o il nome del template 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.