TPU interrumpibles
Las TPU interrumpibles cuestan mucho menos que las no interrumpibles. El servicio de Cloud TPU puede interrumpir (cerrar) estas TPU en cualquier momento si requiere recursos de TPU adicionales.
Si creas una VM de TPU interrumpible, usa el comando gcloud
.
Si creas un nodo TPU interrumpible, puedes usar el comando gcloud
o Console. Para obtener más información sobre las diferencias entre las VM TPU y los nodos TPU, consulta Arquitectura del sistema.
Crea una VM de TPU interrumpible
gcloud
$ gcloud compute tpus tpu-vm create demo-tpu \
--zone=europe-west4-a \
--accelerator-type=v3-8 \
--version=tpu-vm-tf-2.13.0 \
--preemptible
Donde:
demo-tpu
es un nombre para la TPU.--accelerator-type
especifica el tipo de TPU.--version
especifica la versión del software de VM de TPU que se instalará.--preemptible
permite que Cloud TPU interrumpa la TPU.
Crea un nodo TPU interrumpible
Consola
- Ve a la página de TPU en Compute Engine en la página principal.
- Haz clic en CREAR NODO TPU para abrir la página de creación de nodos TPU.
- Escribe un nombre para tu nodo TPU.
- Selecciona la zona en la que deseas crear el nodo TPU.
- Selecciona un Tipo de TPU para tu nodo TPU.
- Haz clic en Activar posibilidad de interrupción para este nodo a fin de hacer que tu nodo TPU sea interrumpible.
- Selecciona la versión de Tensorflow o PyTorch que se instalará en tu VM.
gcloud
$ gcloud compute tpus execution-groups create \
--name=demo-tpu \
--zone=europe-west4-a \
--accelerator-type=v3-8 \
--tf-version=2.12.0 \
--preemptible
Donde:
demo-tpu
es un nombre para la TPU.- `--accelerator-type especifica el tipo de TPU.
--tf-version
especifica la versión de Tensorflow o PyTorch que se instalará en tu VM.--preemptible
permite que Cloud TPU interrumpa la TPU.
Con los nodos TPU, el estado interrumpible de una TPU es independiente del estado interrumpible de la instancia de VM.
Precios y cuotas para las TPU interrumpibles
Los precios para las TPU interrumpibles son considerablemente menores que los de las TPU normales. Para obtener más detalles, consulta la guía de precios. Las TPU no se cobran si se interrumpen durante el primer minuto posterior a su creación.
Por lo general, la cuota para las TPU interrumpibles es más alta y está separada de la cuota para las TPU normales. Consulta la página de cuotas.
Detectar si se ha interrumpido una TPU
Usa el siguiente comando de gcloud
para verificar si el servicio de Cloud TPU ha interrumpido la TPU:
Indica las TPU disponibles:
VM de TPU
gcloud compute tpus tpu-vm list --zone=us-central1-b
Nodo TPU
(vm)$ gcloud compute tpus list --zone=us-central1-b
En el comando anterior, se muestran los detalles de las TPU creadas en tu proyecto. Si se interrumpió una TPU, el estado cambia de READY
a PREEMPTED
.
Por ejemplo:
NAME ZONE ACCELERATOR_TYPE NETWORK_ENDPOINT NETWORK RANGE STATUS demo-tpu us-central1-b v2-8 10.240.1.2:8470 default 10.240.1.0/29 PREEMPTED
VM y TPU interrumpibles (solo nodos de TPU)
Como se describe en la guía de inicio rápido para tu framework, necesitas una máquina virtual (VM) de Compute Engine a fin de conectarte a una TPU. Ten en cuenta que el estado interrumpible de la TPU es independiente del estado interrumpible de la VM. Puedes definir tu TPU como interrumpible y la VM como no interrumpible, o viceversa. También puedes definir ambas como interrumpibles.
La combinación más probable es una TPU interrumpible y una VM no interrumpible. Ten en cuenta los siguientes puntos:
- Es probable que los cargos aplicados a la VM sean bajos en relación con los cargos aplicados a la TPU. Los cargos de la VM dependen del tipo de máquina que uses. Consulta la página de precios para ver un ejemplo simple de los costos relativos.
- Cloud TPU no coordina la interrupción de la VM ni de la TPU. Si los defines como interrumpibles, la VM y la TPU se pueden interrumpir en diferentes momentos.
- Si Compute Engine interrumpe la VM, se te cobrará por la TPU (a menos que la TPU en sí misma sea interrumpible). Ten en cuenta que la TPU está inactiva, al tiempo que la VM está interrumpida.
- Las instancias interrumpibles, como las instancias de VM de Compute Engine y Cloud TPU, siempre se interrumpen después de que se ejecutan durante 24 horas. Ciertas acciones restablecen este contador de 24 horas.
Detectar si se ha interrumpido una instancia de VM (solo nodos de TPU)
Con el fin de verificar si la instancia de VM se interrumpió, usa el comando gcloud compute operations list
para obtener una lista de las operaciones recientes del sistema. Agrega un filtro name
para mostrar solo las instancias que tienes en ejecución o agrega el filtro operationType
para mostrar solo los recursos que se interrumpieron.
Por ejemplo, usa el siguiente comando para mostrar solo las instancias con el nombre de instancia especificado:
$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"
En el siguiente ejemplo, solo se muestran los recursos que se han interrumpido:
$ gcloud compute operations list --filter="operationType=compute.instances.preempted"
Si deseas obtener más detalles, consulta la guía de Compute Engine.
Cómo diseñar la aplicación de aprendizaje automático para que se ejecute en TPU interrumpibles
A fin de asegurarse de que la aplicación sea resistente a los reinicios de la VM y la TPU, guarda los puntos de control del modelo de forma regular y configura la aplicación para que restablezca el punto de control más reciente durante el reinicio.