En este documento, se describe cómo crear un grupo de instancias administrado (MIG) que forme segmentos de TPU de un solo host. Una porción de TPU de host único se asigna a una instancia de máquina virtual (VM) de TPU.
También puedes crear una porción de TPU de host único como una instancia de TPU independiente. Para obtener más información, consulta Crea una instancia de VM de TPU.
Antes de comenzar
- Revisa las limitaciones para crear MIGs con instancias de TPU.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
- Configura una región y una zona predeterminadas.
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .
Requisitos previos
Antes de crear una porción de TPU de host único, debes hacer lo siguiente:
Elige la versión de TPU: Selecciona la versión de TPU adecuada para tu carga de trabajo. Para obtener una lista de las versiones de TPU por tipo de carga de trabajo, consulta Versiones de TPU recomendadas por tipo de carga de trabajo.
Valida la disponibilidad de las TPU en tu ubicación preferida: Las TPU están disponibles en regiones Google Cloud específicas. Para usar una versión de TPU, asegúrate de que esté disponible en la región que prefieras. Para obtener una lista de las ubicaciones de las TPU, consulta Disponibilidad de las TPU.
Asegúrate de que tu proyecto tenga suficiente cuota de TPU: Si creas una porción de TPU de un solo host con VMs según demanda o Spot, debes tener suficiente cuota de TPU disponible en la región que deseas usar. La creación de una porción de TPU de host único que consuma una reserva de TPU no requiere ninguna cuota de TPU, ya que la cuota se usó cuando se creó la reserva. Para obtener una lista de los nombres de las cuotas de TPU, consulta Cuota de TPU y, para obtener instrucciones sobre cómo ver la cuota, consulta Visualiza y administra cuotas.
Elige una opción de consumo de TPU: Selecciona la opción de consumo que mejor se adapte a tu carga de trabajo, su duración y tus necesidades de costos. Para obtener una lista de la disponibilidad de las opciones de consumo por versiones de TPU, consulta Opciones de consumo de TPU.
Elige una topología: Selecciona una topología compatible con la versión de TPU seleccionada. Para obtener una lista de las topologías disponibles para cada versión de TPU, consulta Topología de TPU.
Crea un MIG con varias porciones de TPU de host único
Para crear varias VMs de TPU independientes en un MIG, haz lo siguiente:
- Crea una plantilla de instancias.
- Crea el MIG.
Crea una plantilla de instancias
Las configuraciones de la plantilla de instancias varían según la opción de consumo que uses: bajo demanda, Spot, reservas o inicio flexible. Para obtener más información sobre las opciones de consumo, consulta Acerca de los modelos de aprovisionamiento de VMs.
Crea una plantilla de instancias para una TPU VM a pedido
El siguiente comando crea una plantilla de instancias que usa la opción de consumo a pedido:
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"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: El nombre de la plantilla de instancias.MACHINE_TYPE: Es el tipo de máquina de la VM de TPU (por ejemplo,ct6e-standard-8t).IMAGE_FAMILY: Es la familia de imágenes del SO de la TPU VM. Si deseas instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crea una plantilla de instancias para una VM Spot de TPU
El siguiente comando crea una plantilla de instancias que usa la opción de consumo de instancias interrumpibles:
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"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: El nombre de la plantilla de instancias.MACHINE_TYPE: Es el tipo de máquina de la VM de TPU (por ejemplo,ct6e-standard-8t).IMAGE_FAMILY: Es la familia de imágenes del SO de la TPU VM. Si deseas instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crea una plantilla de instancias para una VM vinculada a una reserva de TPU
El siguiente comando crea una plantilla de instancias que usa la opción de consumo vinculada a la reserva:
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"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: El nombre de la plantilla de instanciasMACHINE_TYPE: El tipo de máquina de la VM de TPU (por ejemplo,ct6e-standard-8t).RESERVATION_NAME: Es el nombre de una reserva específica que deseas consumir.IMAGE_FAMILY: Es la familia de imágenes del SO de la TPU VM. Si deseas instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crea una plantilla de instancias para una VM de TPU con inicio flexible
El siguiente comando crea una plantilla de instancias que usa la opción de consumo inicio flexible:
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"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: El nombre de la plantilla de instanciasMACHINE_TYPE: Es el tipo de máquina de la TPU VM (por ejemplo,ct6e-standard-8t).DURATION: Es la duración máxima de ejecución de la VM de TPU. En el caso de REST, especifica este valor como una cadena que contenga la cantidad de segundos seguida de la letra "s" (por ejemplo,3600spara 1 hora o604800spara 7 días).IMAGE_FAMILY: Es la familia de imágenes del SO de la TPU VM. Si deseas instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crear un MIG
Para crear un MIG zonal que contenga una porción de TPU de un solo host, usa el siguiente 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"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .MIG_NAME: Es el nombre de tu MIG.MIG_SIZE: Es el tamaño del MIG.INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:- Para una plantilla de instancias regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Para una plantilla de instancias global:
INSTANCE_TEMPLATE_ID
- Para una plantilla de instancias regional:
ZONE: Es la zona de tu MIG.
Para crear un MIG regional que contenga una porción de TPU de un solo host, usa el siguiente 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"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .MIG_NAME: Es el nombre de tu MIG.MIG_SIZE: Es la cantidad de VMs en el MIG.INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:- Para una plantilla de instancias regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Para una plantilla de instancias global:
INSTANCE_TEMPLATE_ID
- Para una plantilla de instancias regional:
ZONE: La zona en la que deseas que se aprovisione tu MIG.REGION: Es la región en la que deseas que se aprovisione tu MIG.
Crea VMs con nombres personalizados en un MIG
Puedes crear VMs en un MIG especificando nombres personalizados para cada VM. Esto es útil para depurar y garantizar que las instancias se creen en un orden específico.
gcloud
Crea una VM con un nombre personalizado usando el comando create-instance y especifica la marca --instance. Para crear varias VMs, repite el comando para cada una. De lo contrario, usa el método de la API de REST para especificar varias VMs en una sola solicitud.
Para un MIG zonal, usa el siguiente comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --zone=ZONE \ --instance=INSTANCE_NAMEPara un MIG regional, usa el siguiente comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --region=REGION \ --instance=INSTANCE_NAME
Reemplaza los marcadores de posición que se indican más abajo:
REST
Crea VMs con nombres personalizados usando uno de los siguientes métodos de la API de REST:
Para un MIG zonal, usa
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" }, ... ] }Para un MIG regional, usa
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" }, ... ] }
Reemplaza los marcadores de posición que se indican más abajo:
¿Qué sigue?
- Crea una porción de varios hosts
- Conéctate a una instancia de TPU
- Cómo ver las propiedades de un MIG
- Cómo ver el estado de una porción de TPU
- Supervisa las TPU
- Borra un MIG