Administra recursos de TPU
En esta página, se describe cómo administrar los recursos de Cloud TPU con los siguientes elementos:
- Google Cloud CLI, que proporciona la CLI principal a Google Cloud.
- La consola de Google Cloud, que proporciona una consola de administración integrada para tus recursos de Google Cloud.
Cloud TPU tiene dos arquitecturas de VM: nodo TPU y VM de TPU. Las dos arquitecturas de VM se describen en Arquitectura del sistema.
Puedes usar los comandos de gcloud
que se describen en este documento con ambas configuraciones de TPU. Los comandos de gcloud
que uses dependerán de la configuración de TPU que uses. Cada comando gcloud
se muestra en una sección con pestañas. Elige la pestaña de la configuración de TPU que deseas usar y la página web mostrará el comando gcloud
adecuado. A menos que sepas que necesitas usar nodos TPU, te recomendamos que uses las VM de TPU. Para Cloud TPU v4 y versiones posteriores, solo se admite la arquitectura de VM de TPU.
Requisitos previos
Antes de ejecutar estos procedimientos, debes instalar Google Cloud CLI, crear un proyecto de Google Cloud y habilitar la API de Cloud TPU. Para obtener instrucciones, consulta Configura un proyecto y habilita la API de Cloud TPU.
Si usas Google Cloud CLI, puedes usar Google Cloud Shell,
una VM de Compute Engine o instalar Google Cloud CLI de forma local. Google Cloud Shell te permite interactuar con las Cloud TPU sin tener que instalar ningún software. Es posible que Google Cloud Shell se desconecte después de un período de inactividad. Si ejecutas comandos de larga duración, te recomendamos que instales
Google Cloud CLI en tu máquina local. Para obtener más información sobre Google Cloud CLI,
consulta la Referencia de gcloud
.
Aprovisiona Cloud TPU
Puedes aprovisionar una Cloud TPU con gcloud
, la consola de Google Cloud o la API de Cloud TPU.
Si usas gcloud
, existen dos métodos para aprovisionar TPU:
- Usa recursos en cola:
gcloud alpha compute tpus queued-resources create
- Usa la API de Create Node:
gcloud compute tpus tpu-vm create
La práctica recomendada es aprovisionar recursos en cola. Cuando solicitas recursos en cola, la solicitud se agrega a una cola que mantiene el servicio de Cloud TPU. Cuando el recurso solicitado está disponible, se asigna a tu proyecto de Google Cloud para tu uso exclusivo inmediato.
Para crear una TPU con recursos en cola, consulta Recursos en cola.
Si usarás Multislice, consulta la Introducción a Multislice para obtener más información.
Cuando uses Multislice, especifica los siguientes parámetros adicionales cuando solicites recursos en cola:
export NODE_COUNT=node_count export NODE_PREFIX=your_tpu_prefix # Optional
Crea una Cloud TPU con la API de Crear nodo
Para crear una TPU con la API de Crear nodo, ejecuta el comando gcloud compute tpus tpu-vm create
.
VMs de TPU
Puedes especificar configuraciones de TPU en términos de TensorCores o chips TPU. Para obtener más información, consulta la sección de la versión de TPU que usas en Arquitectura del sistema.
El siguiente comando usa una configuración basada en TensorCore:
$ gcloud compute tpus tpu-vm create tpu-name \
--zone=us-central2-b \
--accelerator-type=v4-8 \
--version=tpu-software-version
Descripciones de las marcas de comandos
zone
- La zona en la que planeas crear tu Cloud TPU.
accelerator-type
- El tipo de acelerador especifica la versión y el tamaño de la Cloud TPU que quieres crear. Si quieres obtener más información sobre los tipos de aceleradores compatibles con cada versión de TPU, consulta Versiones de TPU.
version
- La versión de software de TPU.
shielded-secure-boot
(opcional)- Especifica que las instancias de TPU se crean con el inicio seguro habilitado. Esto las convierte de manera implícita en instancias de VM protegida. Consulta ¿Qué es una VM protegida? para obtener más información.
El siguiente comando crea una TPU con una topología específica:
$ gcloud compute tpus tpu-vm create tpu-name \
--zone=us-central2-b \
--type=v4 \
--topology=2x2x1 \
--version=tpu-software-version
Marcas obligatorias
tpu-name
- El nombre de la VM de TPU que creas.
zone
- La zona en la que crearás tu Cloud TPU.
type
- La versión de la Cloud TPU que quieres crear. Para obtener más información sobre las versiones de TPU, consulta Versiones de TPU.
topology
- Consulta la sección topología para conocer las topologías compatibles.
version
- La versión de software de TPU que deseas usar. Para obtener más información, consulta Versiones de software de TPU
Para obtener más información sobre topologías y tipos de TPU compatibles, consulta las versiones de TPU.
Nodos TPU
$ gcloud compute tpus execution-groups create --name=tpu-name \
--zone=us-central1-a \
--tf-version=2.12.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8
Descripciones de las marcas de comandos
zone
- Es la zona en la que deseas crear la Cloud TPU.
tf-version
- La versión de Tensorflow que el comando
gcloud
instala en tu VM. machine-type
- El tipo de máquina de la VM de Compute Engine que se creará.
accelerator-type
- El tipo de acelerador especifica la versión y el tamaño de la Cloud TPU que quieres crear. Si quieres obtener más información sobre los tipos de aceleradores compatibles con cada versión de TPU, consulta Versiones de TPU.
Crea una Cloud TPU en la consola de Google Cloud
- Navega a la consola de Google Cloud.
- Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU.
- Haz clic en CREAR NODO TPU.
- En el cuadro Nombre, escribe el nombre de una instancia de TPU.
- En el cuadro Zona, selecciona la zona en la que se creará la TPU.
- En Configuración de TPU, selecciona la arquitectura de VM de TPU o la arquitectura de nodo TPU. La configuración de la TPU determina si se crea la TPU como una VM de TPU o un nodo TPU. Para obtener más información, consulta Arquitectura del sistema.
- En Tipo de TPU, selecciona el tipo de TPU que quieres crear.
- En el caso de la versión de software de TPU, selecciona la versión de software. Cuando se crea una VM de Cloud TPU, la versión de software de TPU especifica la versión del entorno de ejecución de TPU que se instalará. Cuando creas un nodo de Cloud TPU, la versión de software de TPU te permite elegir el framework de AA instalado en la VM del nodo. No se requiere ningún otro parámetro de configuración. Para obtener más información, consulta Modelos compatibles.
- Haz clic en CREAR para crear tus recursos.
Crea una VM de Cloud TPU con curl
En el siguiente comando, se usa curl
para crear una TPU.
$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.16.1-pjrt', \
network_config: {enable_external_ips: true}, \
shielded_instance_config: { enable_secure_boot: true }}" \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name
Campos obligatorios
runtime_version
- La versión del entorno de ejecución de Cloud TPU que quieres usar.
project
- El nombre del proyecto de Google Cloud inscrito.
zone
- La zona en la que creas tu Cloud TPU.
node_name
- El nombre de la VM de TPU que creas.
Ejecuta una secuencia de comandos de inicio
Puedes ejecutar una secuencia de comandos de inicio en cada VM de TPU si especificas el parámetro --metadata startup-script
cuando creas la VM de TPU. Con el siguiente comando, se crea una VM de TPU con una secuencia de comandos de inicio.
$ gcloud compute tpus tpu-vm create tpu-name \
--zone=us-central2-b \
--accelerator-type=tpu-type \
--version=tpu-vm-tf-2.16.1-pjrt \
--metadata startup-script='#! /bin/bash
pip3 install numpy
EOF'
Conéctate a Cloud TPU
Puedes conectarte a una TPU con SSH.
VMs de TPU
Cuando uses VMs de TPU, debes conectarte de forma explícita a tu VM de TPU con SSH.
Conéctate a la VM de TPU a través de SSH con el comando
gcloud compute tpus tpu-vm ssh
.Cuando solicitas porciones con más de 4 chips, Cloud TPU crea una VM de TPU para cada grupo de 4 chips.
Para instalar los objetos binarios o ejecutar el código, puedes conectarte a cada VM de TPU a través de
tpu-vm ssh command
.gcloud compute tpus tpu-vm ssh ${TPU_NAME}
Para acceder a una VM de TPU específica o instalar objetos binarios en cada VM de TPU con SSH, usa la marca
--worker
que sigue a un índice basado en 0:gcloud compute tpus tpu-vm ssh ${TPU_NAME} --worker=1
Cuando tengas más de una VM de TPU, usa las marcas
--worker=all
y--command
para ejecutar un comando en todas las VM de TPU al mismo tiempo. Por ejemplo:gcloud compute tpus tpu-vm ssh ${TPU_NAME} --project ${PROJECT_ID} \ --zone ${ZONE} \ --worker=all \ --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'
Para Multislice, puedes ejecutar un comando en una sola VM (con el nombre de tpu-name) o usar las marcas
--node=all
,--worker=all
y--command
para ejecutar el comando en todas las VM de TPU de todas las porciones de Multislice, con un campo opcional--batch-size
.gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \ --project ${PROJECT_ID} --zone ${ZONE} --node=all --worker=all \ --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' --batch-size=4
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone
Para usar SSH en el navegador, haz lo siguiente:
En la consola de Google Cloud, ve a la página TPU:
En la lista de VMs de TPU, haz clic en SSH en la fila de la VM de TPU a la que deseas conectarte.
Nodos TPU
De forma predeterminada, el comando gcloud
que usas para crear nodos TPU intenta establecer una conexión SSH a tu nodo TPU automáticamente. Si usas nodos TPU y no estás conectado a la instancia de Compute Engine mediante el comando gcloud
, puedes conectarte mediante el siguiente comando:
$ gcloud compute ssh tpu-name \
--zone=zone
Después de crear la VM de TPU, puedes ver los registros desde la secuencia de comandos de inicio si conéctate a la VM de TPU con SSH
y ejecuta lo siguiente:
$ cat /var/log/syslog | grep startup-script
Enumera los recursos de Cloud TPU
Puedes enumerar todas tus Cloud TPU en una zona especificada.
Enumera los recursos de Cloud TPU con gcloud
Los comandos que uses dependerán de si usas VMs de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.
VMs de TPU
$ gcloud compute tpus tpu-vm list --zone=zone
Nodos TPU
$ gcloud compute tpus execution-groups list --zone=zone
Con este comando, se enumeran los recursos de Cloud TPU en la zona especificada. Si no hay recursos configurados, el resultado solo mostrará guiones para la VM y la TPU. Si un recurso está activo y el otro no, verás un mensaje que indica que el estado está en mal estado. Debes iniciar o reiniciar el recurso que no esté en ejecución.
Muestra una lista de tus recursos de Cloud TPU en la consola de Google Cloud
Navega a la consola de Google Cloud.
Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU. En la consola, se muestra la página de TPU.
Recupera información sobre Cloud TPU
Puedes recuperar información sobre una Cloud TPU especificada.
Recupera información sobre Cloud TPU con gcloud
Los comandos que uses dependerán de si usas VMs de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.
VMs de TPU
$ gcloud compute tpus tpu-vm describe tpu-name \
--zone=zone
Nodos TPU
$ gcloud compute tpus execution-groups describe tpu-name \
--zone=zone
Recupera información sobre Cloud TPU en la consola de Google Cloud.
- Navega a la consola de Google Cloud.
- Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU. En la consola, se muestra la página de TPU.
- Haz clic en el nombre de tu Cloud TPU. Se mostrará la página de detalles de Cloud TPU.
Detén tus recursos de Cloud TPU
Puedes detener una sola Cloud TPU para que no se generen cargos sin perder la configuración ni el software de la VM. No se admite la detención de los pods de TPU o las TPU asignadas a través de la API de recursos en cola. Para dejar de generar cargos por las TPU asignadas a través de la API de recursos en cola, debes borrar la TPU.
Detén una Cloud TPU con gcloud
Los comandos que usas para detener una Cloud TPU dependen de si usas VMs de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.
VMs de TPU
$ gcloud compute tpus tpu-vm stop tpu-name \
--zone=zone
Nodos TPU
$ gcloud compute tpus stop tpu-name \
--zone=zone
Detén una Cloud TPU en la consola de Google Cloud
Navega a la consola de Google Cloud.
Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU. En la consola, se muestra la página de TPU.
Selecciona la casilla de verificación junto a tu Cloud TPU y haz clic en Detener.
Inicia tus recursos de Cloud TPU
Puedes iniciar una Cloud TPU cuando se detenga.
Inicia una Cloud TPU con gcloud
Puedes iniciar una Cloud TPU detenida para reanudar su uso.
El comando que uses para iniciar una Cloud TPU detenida depende de si usas VMs de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.
VMs de TPU
$ gcloud compute tpus tpu-vm start tpu-name --zone=zone
Nodos TPU
$ gcloud compute tpus start tpu-name --zone=zone
Inicia una Cloud TPU en la consola de Google Cloud
Navega a la consola de Google Cloud.
Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU. En la consola, se muestra la página de TPU.
Selecciona la casilla de verificación junto a tu Cloud TPU y haz clic en Iniciar.
Borra la VM de TPU
El comando que uses depende de si usas VM de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.
VMs de TPU
Borra las porciones de VM de TPU al final de la sesión.
gcloud compute tpus tpu-vm delete ${TPU_NAME} --project=${PROJECT_ID} --zone=${ZONE} --quiet
Descripciones de las marcas de comandos
zone
- La zona en la que planeas borrar tu Cloud TPU.
Nodos TPU
$ gcloud compute tpus execution-groups delete tpu-name \
--zone=zone
Descripciones de las marcas de comandos
zone
- La zona en la que planeas borrar tu Cloud TPU.
Borra una Cloud TPU en la consola de Google Cloud
Navega a la consola de Google Cloud.
Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU. En la consola, se muestra la página de TPU.
Selecciona la casilla de verificación junto a tu Cloud TPU y haz clic en Borrar.
Configuraciones avanzadas
Recursos de red personalizados
Cuando creas la TPU, puedes optar por especificar la red o una subred. Puedes hacerlo mediante el envío de un comando gcloud
o una llamada curl
.
Para especificar la red o subred en la CLI de gcloud
, usa el siguiente comando:
--network [NETWORK] --subnetwork [SUBNETWORK]
Para especificar la red o subred en una llamada a curl
, usa lo siguiente:
network_config: {network: '[NETWORK]', subnet: '[SUBNETWORK]', enable_external_ips: true}
Red
De manera opcional, puedes especificar la red que se usará para la TPU. Si no se especifica, se usa la red default
.
Formatos de red válidos:
https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network} compute/{version}/projects/{proj-id}/global/networks/{network} compute/{version}/projects/{proj-##}/global/networks/{network} projects/{proj-id}/global/networks/{network} projects/{proj-##}/global/networks/{network} global/networks/{network} {network}
Subred
Puedes especificar la subred para usar una subred específica. La subred especificada debe estar en la misma región que la zona en la que se ejecuta la TPU.
Formatos válidos:
https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork} compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork} compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork} projects/{proj-id}/regions/{region}/subnetworks/{subnetwork} projects/{proj-##}/regions/{region}/subnetworks/{subnetwork} regions/{region}/subnetworks/{subnetwork} {subnetwork}
Acceso privado a Google
Si quieres establecer una conexión SSH a las VM de TPU, debes agregar opciones de configuración de acceso para las VMs de TPU o activar el Acceso privado a Google en la subred a la que están conectadas las VMs de TPU.
Para agregar parámetros de configuración de acceso, se debe establecer enable_external_ips
. Cuando creas una TPU, enable_external_ips
se configura de forma predeterminada. Si quieres inhabilitar esta opción, especifica el siguiente comando:
--internal-ips
O usa una llamada curl
:
network_config: {enable_external_ips: true}
Después de configurar el Acceso privado a Google, conéctate a la VM a través de SSH.
Cuenta de servicio personalizada
Cada VM de TPU tiene una cuenta de servicio asociada que usa para realizar solicitudes a la API en tu nombre. Las VMs de TPU usan esta cuenta de servicio para llamar a las APIs de Cloud TPU, acceder a Cloud Storage y a otros servicios. De forma predeterminada, la VM de TPU usa la cuenta de servicio predeterminada de Compute Engine.
Puedes especificar una cuenta de servicio personalizada cuando creas una VM de TPU con la marca --service-account
. La cuenta de servicio debe definirse en el mismo proyecto de Google Cloud en el que creas tu VM de TPU. Las cuentas de servicio personalizadas que se usan en las VMs de TPU deben tener la función de visualizador de TPU para llamar a la API de Cloud TPU. Si el código que se ejecuta en la VM de TPU llama a otros servicios de Google Cloud, debe tener las funciones necesarias para acceder a esos servicios.
Cuando creas una TPU, puedes elegir especificar una cuenta de servicio personalizada con la marca --service-account
. Para obtener más información sobre las cuentas de servicio, consulta Cuentas de servicio.
Usa los siguientes comandos para especificar una cuenta de servicio personalizada.
Crea una VM de TPU con la CLI de gcloud
$ gcloud compute tpus tpu-vm create tpu-name \
--zone=us-central2-b \
--accelerator-type=tpu-type \
--version=tpu-vm-tf-2.16.1-pjrt \
--service-account=your-service-account
Crea una VM de TPU con curl
$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.16.1-pjrt', \
network_config: {enable_external_ips: true}, \
shielded_instance_config: { enable_secure_boot: true }}" \
service_account: {email: 'your-service-account'} \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name
Si quieres usar una cuenta de servicio personalizada, debes autorizarla para tus buckets de Google Cloud Storage. Para obtener más información, consulta Conéctate a buckets de Cloud Storage.
Métodos SSH personalizados de VMs
Configurar un firewall para SSH
La red predeterminada viene preconfigurada para permitir el acceso mediante SSH a todas las VMs. Si no usas la red predeterminada o si se editó la configuración de red predeterminada, es posible que debas habilitar el acceso SSH de forma explícita agregando una regla de firewall:
$ gcloud CLI compute firewall-rules create \ --network=network allow-ssh \ --allow=tcp:22
Establece una conexión SSH a las VMs de TPU.
$ gcloud compute tpus tpu-vm ssh tpu-name \ --zone=us-central2-b \ --project=project-id
Campos obligatorios
tpu-name
: El nombre del nodo TPU.zone
: Es la ubicación del nodo TPU. Actualmente, solo se admiteus-central2-b
.project-id
: El proyecto que creaste antes.
Para ver una lista de campos opcionales, consulta la documentación de la API de
gcloud
.