Tipos y zonas de TPU

Resumen

Cuando creas nodos TPU para manejar las cargas de trabajo de aprendizaje automático, debes seleccionar un tipo de TPU. El tipo de TPU define la versión de TPU, la cantidad de núcleos de TPU y la cantidad de memoria de TPU que está disponible para la carga de trabajo de aprendizaje automático.

Por ejemplo, el tipo de TPU v2-8 define un nodo TPU con 8 núcleos de TPU v2 y 64 GiB de memoria de TPU total. El tipo de TPU v3-2048 define un nodo TPU con 2,048 núcleos de TPU v3 y 32 TiB de memoria de TPU total.

Para conocer las diferencias de hardware entre las versiones y configuraciones de TPU, lee la documentación de Arquitectura del sistema.

Para ver los precios de cada tipo de TPU en cada región, consulta la página de Precios.

Un modelo que se ejecuta en un tipo de TPU puede ejecutarse sin cambios de código de TensorFlow para otro tipo de TPU. Por ejemplo, el código v2-8 puede ejecutarse sin cambios en un v3-8. Sin embargo, escalar desde un v2-8 o v3-8 hasta un tipo de TPU más grande, como v2-32 o v3-128, requiere un ajuste y una optimización significativos.

Tipos y zonas de TPU

Las diferencias principales entre cada tipo de TPU son el precio, el rendimiento, la capacidad de memoria y la disponibilidad zonal.

Google Cloud Platform usa regiones subdivididas en zonas para definir la ubicación geográfica de los recursos de procesamiento físicos. Por ejemplo, la región us-central1 corresponde a una región cercana al centro geográfico de los Estados Unidos que comprende las siguientes zonas: us-central1-a, us-central1-b, us-central1-c y us-central1-f. Cuando creas un nodo TPU, especificas la zona en la que deseas crearlo. Consulta el documento Recursos globales, regionales y zonales de Compute Engine para obtener más información sobre los recursos regionales y zonales.

Puedes configurar los nodos TPU con los siguientes tipos de TPU:

EE.UU.

Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
v2-8 8 64 GiB us-central1-b
us-central1-c
us-central1-f
v2-32 32 256 GiB us-central1-a
v2-128 128 1 TiB us-central1-a
v2-256 256 2 TiB us-central1-a
v2-512 512 4 TiB us-central1-a
Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
v3-8 8 128 GiB us-central1-a
us-central1-b
us-central1-f

Europa

Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
v2-8 8 64 GiB europe-west4-a
v2-32 32 256 GiB europe-west4-a
v2-128 128 1 TiB europe-west4-a
v2-256 256 2 TiB europe-west4-a
v2-512 512 4 TiB europe-west4-a
Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
v3-8 8 128 GiB europe-west4-a
v3-32 32 512 GiB europe-west4-a
v3-64 64 1 TiB europe-west4-a
v3-128 128 2 TiB europe-west4-a
v3-256 256 4 TiB europe-west4-a
v3-512 512 8 TiB europe-west4-a
v3-1024 1,024 16 TiB europe-west4-a
v3-2048 2,048 32 TiB europe-west4-a

Asia-Pacífico

Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
v2-8 8 64 GiB asia-east1-c

Los tipos de TPU con mayor cantidad de núcleos solo están disponibles en cantidades limitadas. Es más probable que los tipos de TPU con menor cantidad de núcleos estén disponibles.

Para ver los precios de cada tipo de TPU en cada región, consulta la página de Precios.

Para conocer las diferencias de hardware entre las versiones y configuraciones de TPU, lee la documentación de Arquitectura del sistema.

Calcula las compensaciones de precio y rendimiento

Para decidir qué tipo de TPU deseas usar, puedes experimentar con un instructivo de Cloud TPU a fin de entrenar un modelo que sea similar a tu aplicación.

Ejecuta el instructivo para el 5% o el 10% de la cantidad de pasos que seguirás al ejecutar el entrenamiento completo en un tipo de TPU v2-8 y v3-8. El resultado indica cuánto tiempo se tarda en ejecutar esa cantidad de pasos para ese modelo en cada tipo de TPU.

Dado que el rendimiento en los tipos de TPU escala de manera lineal, si sabes cuánto tiempo lleva ejecutar una tarea en un tipo de TPU v2-8 o v3-8, podrás estimar cuánto se reducirá el tiempo de las tareas si ejecutas el modelo en un tipo de TPU más grande y con más núcleos.

Por ejemplo, si un tipo de TPU v2-8 tarda 60 minutos en completar 10,000 pasos, a un nodo v2-32 debería llevarle alrededor de 15 minutos realizar la misma tarea.

Si quieres determinar la diferencia de costos dentro de tu región entre los distintos tipos de TPU para Cloud TPU y la VM de Compute Engine asociada, consulta la página de precios de TPU. Cuando conoces el tiempo de entrenamiento aproximado para tu modelo en distintos tipos de TPU, puedes comparar el costo de VM/TPU con el tiempo de entrenamiento y así decidir cuál es la mejor relación entre precio y rendimiento.

Especifica el tipo de TPU

Cuando creas un nodo TPU, debes especificar el tipo de TPU. Por ejemplo, puedes seleccionar un tipo de TPU con uno de los siguientes métodos:

CTPU

  • Usa el comando ctpu up con la marca --tpu-size:
     $ ctpu up --tpu-size=[TPU_VERSION]
    en el que TPU_VERSION es una de las versiones de TPU compatibles en la zona especificada.

Comando de gcloud

  • Usa el comando gcloud compute tpus create:

    $ gcloud compute tpus create [TPU name] \
     --zone us-central1-b \
     --range '10.240.0.0' \
     --accelerator-type 'v2-8' \
     --network my-tf-network \
     --version '2.1'
    

    Donde:

    • TPU name es un nombre para identificar la TPU que creas.
    • --zone es la zona de procesamiento de Compute Engine. Asegúrate de que el tipo de acelerador que solicites esté disponible en tu zona.
    • --range especifica la dirección del recurso Cloud TPU creado y puede ser cualquier valor en 10.240.*.*.
    • --accelerator-type es el tipo de acelerador y la cantidad de núcleos que quieres usar, por ejemplo, v2-32 (32 núcleos).
    • --network especifica el nombre de la red que usa tu instancia de VM de Compute Engine. Debes poder conectarte a instancias de esta red a través de SSH. Para la mayoría de las situaciones, puedes usar la red predeterminada que tu proyecto de Google Cloud creó de forma automática. Sin embargo, si la red predeterminada es una red heredada, se produce un error.
    • --version especifica la versión de TensorFlow que se usará con la TPU.

Cloud Console

  1. Desde el menú de navegación de la izquierda, selecciona Compute Engine > TPU.
  2. En la pantalla TPU, haz clic en Crear nodo TPU. Aparecerá una página de configuración para la TPU.
  3. En Tipo de TPU, selecciona una de las versiones de TPU compatibles.
  4. Haz clic en el botón Crear.

Qué sigue