TPU interrumpibles

Las TPU interrumpibles cuestan mucho menos que las no interrumpibles. El servicio de Cloud TPU puede interrumpir (desactivar) estas TPU en cualquier momento si requiere recursos 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 información sobre las diferencias entre las VMs de 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.16.1-pjrt \
  --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

Console

  1. Ve a la página de TPU en Compute Engine en la página principal.
  2. Haz clic en CREAR NODO TPU para abrir la página de creación de nodos TPU.
  3. Escribe un nombre para tu nodo TPU.
  4. Selecciona la zona en la que deseas crear el nodo TPU.
  5. Selecciona un Tipo de TPU para tu nodo TPU.
  6. Haz clic en Activar posibilidad de interrupción para este nodo a fin de hacer que tu nodo TPU sea interrumpible.
  7. 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 interrumpió tu 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

VMs y TPU interrumpibles (solo nodos TPU)

Como se describe en la guía de inicio rápido de tu framework, necesitas una máquina virtual (VM) de Compute Engine para 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 y la TPU. Si defines ambos como interrumpibles, la VM y la TPU pueden interrumpirse 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.

Detecta si se interrumpió una instancia de VM (solo nodos 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.