TPU interrumpibles

Las TPU interrumpibles cuestan mucho menos que las TPU interrumpibles. El servicio de Cloud TPU podría interrumpir (cerrar) estas TPU en cualquier momento si requiere recursos adicionales de TPU.

Puedes crear un nodo TPU interrumpible con Cloud Console o la herramienta de línea de comandos de gcloud. El comando gcloud que usas depende de si usas VM de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.

Crea una VM de 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. En el menú Configuración de TPU, selecciona Arquitectura de VM de TPU.
  6. Selecciona un Tipo de TPU para tu nodo TPU.
  7. Selecciona Activar posibilidad de interrupción para este nodo a fin de que tu nodo TPU sea interrumpible.
  8. Selecciona la versión del software de TPU. Por ejemplo, tpu-vm-tf-2.7.0 para las VM de TPU.

gcloud

$ gcloud alpha compute tpus tpu-vm create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8
  --version=tpu-vm-tf-2.7.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 heredado 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 demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8
  --version=2.7.0 \
  --preemptible
  

Donde:

  • demo-tpu es un nombre para la TPU.
  • `--accelerator-type especifica el tipo de TPU.
  • --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 tu 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.

VM y TPU interrumpibles (solo nodos TPU)

Como se describe en la guía de inicio rápido para el 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 estableces que ambas son 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.

Detectar si se ha interrumpido una TPU

Usa el comando gcloud para verificar si el servicio de Cloud TPU interrumpió tu TPU:

Indica las TPU disponibles:

(vm)$ gcloud compute tpus list

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

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.