Crea un MIG con slice Cloud TPU single-host
Questo documento descrive come creare un gruppo di istanze gestite (MIG) con più slice TPU single-host indipendenti.
Prerequisiti
Completa i seguenti prerequisiti:
- Crea un progetto per le TPU come descritto in Configura un progetto per le TPU.
- Determina i requisiti della TPU come descritto in Pianifica le risorse.
Crea un MIG con più slice TPU single-host
Per creare più VM TPU indipendenti in un MIG:
- Crea un template di istanza.
- Crea il MIG.
Crea un template di istanza
Le configurazioni dei template di istanza variano in base all'opzione di consumo che utilizzi: on demand, Spot, prenotazioni o Avvio flessibile. Per ulteriori informazioni sulle opzioni di consumo, consulta Pianifica le risorse TPU .
Crea un template di istanza per una VM TPU on demand
Il seguente comando crea un template di istanza che utilizza l'opzione di consumo on demand:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
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"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/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 per la VM TPU (ad esempioct6e-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--imageflag. Per ulteriori informazioni sulle immagini del sistema operativo, vedi Immagini del sistema operativo.IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo èubuntu-os-accelerator-images.
Crea un template di istanza per una VM TPU Spot
Il seguente comando crea un template di istanza che utilizza l'opzione di consumo Spot:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
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": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/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 per la VM TPU (ad esempioct6e-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--imageflag. Per ulteriori informazioni sulle immagini del sistema operativo, vedi Immagini del sistema operativo.IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo èubuntu-os-accelerator-images.
Crea un template di istanza per una VM TPU con prenotazione
Il seguente comando crea un template di istanza che utilizza l'opzione di consumo con prenotazione:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
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": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/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 per la VM TPU (ad esempioct6e-standard-8t).RESERVATION_NAME: il nome di una prenotazione specifica che vuoi utilizzare.IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il--imageflag. Per ulteriori informazioni sulle immagini del sistema operativo, vedi Immagini del sistema operativo.IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo èubuntu-os-accelerator-images.
Crea un template di istanza per una VM TPU con Avvio flessibile
Il seguente comando crea un template di istanza che utilizza l'opzione di consumo Avvio flessibile:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
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/global/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 per la VM TPU (ad esempioct6e-standard-8t).DURATION: la durata massima di esecuzione della VM TPU. Per REST, specifica questo valore come una stringa contenente il numero di secondi seguito da "s" (ad esempio,3600sper 1 ora o604800sper 7 giorni).IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il--imageflag. Per ulteriori informazioni sulle immagini del sistema operativo, vedi Immagini del sistema operativo.IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo èubuntu-os-accelerator-images.
Crea un MIG
Per creare un MIG a livello di zona contenente una slice TPU single-host, utilizza il seguente comando:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_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.MIG_SIZE: la dimensione 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:
ZONE: la zona del MIG.
Per creare un MIG a livello di regione contenente una slice TPU single-host, utilizza il seguente comando:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--region=REGION \
--target-distribution-shape=ANY_SINGLE_ZONE \
--instance-redistribution-type=none
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
Sostituisci i seguenti segnaposto:
PROJECT_ID: l'ID del tuo Google Cloud progetto.MIG_NAME: il nome del MIG.MIG_SIZE: il numero di VM nel 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:
ZONE: la zona in cui vuoi eseguire il provisioning del MIG.REGION: la regione in cui vuoi eseguire il provisioning del MIG.
Crea VM con nomi personalizzati in un MIG
Puoi creare VM in un MIG specificando nomi personalizzati per ogni VM. Questa opzione è utile per il debug e per garantire che le istanze vengano create in un ordine specifico.
gcloud
Crea una VM con un nome personalizzato utilizzando il
create-instance comando
e specifica il --instance flag. Per creare più VM, ripeti il comando per ogni VM. In alternativa, utilizza il metodo dell'API REST per specificare più VM in un'unica richiesta.
Per un MIG a livello di zona, utilizza il seguente comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --zone=ZONE \ --instance=INSTANCE_NAMEPer un MIG a livello di regione, utilizza il seguente comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --region=REGION \ --instance=INSTANCE_NAME
Sostituisci i seguenti segnaposto:
REST
Crea VM con nomi personalizzati utilizzando uno dei seguenti metodi dell'API REST:
Per un MIG a livello di zona, utilizza
instanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }Per un MIG a livello di regione, utilizza
regionInstanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
Sostituisci i seguenti segnaposto:
Passaggi successivi
- Scopri di più sulle VM TPU e sui MIG.
- Scopri come creare un MIG con una slice Cloud TPU multi-host.
- Scopri come gestire le VM TPU.
- Scopri di più sulle TPU in GKE.
- Scopri come eseguire un carico di lavoro di ML sulle TPU, ad esempio, Esegui Qwen2-72B-Instruct con vLLM sulle TPU.