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:
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
0o 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à:
- Flessibilità istanza
- Richieste di ridimensionamento per ottenere le risorse tutte insieme
- Configurazione stateful
- Per un MIG che forma una slice TPU multi-host, non sono supportati anche:
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.v1roles/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,
3600per 1 ora o604800per 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
- Per un template di istanza regionale:
- 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,
3600per 1 ora o604800per 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
- Per un template di istanza regionale:
- 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.