Introducción a Cloud TPU

Las unidades de procesamiento tensorial o las TPU son aceleradores de hardware diseñados por Google para las cargas de trabajo de aprendizaje automático. Para obtener información más detallada sobre el hardware de TPU, consulta Arquitectura del sistema. Cloud TPU es un servicio web que permite que las TPU estén disponibles como recursos de procesamiento escalables en Google Cloud Platform.

Las TPU entrenan tus modelos de manera más eficiente mediante el uso de hardware diseñado para realizar operaciones con matrices grandes que, con frecuencia, se encuentran en los algoritmos de aprendizaje automático. Las TPU tienen memoria de gran ancho de banda de chip, lo que te permite usar modelos y tamaños de lotes más grandes. Las TPU se pueden conectar en grupos llamados Pods que te permiten escalar verticalmente tus cargas de trabajo con pocos cambios, o con ninguno, en el código.

Recomendamos que comiences tu proyecto de aprendizaje automático con una sola TPU y que escales horizontalmente a un pod de TPU para la producción. Para comenzar, puedes aprovechar un conjunto de modelos de referencia de código abierto que los equipos de investigación y de ingeniería de Google optimizan para usar con TPU. Para obtener más información, consulta Modelos de referencia.

¿Cómo funciona?

Para comprender cómo funcionan las TPU, resulta útil comprender cómo otros aceleradores abordan los desafíos de procesamiento de los modelos de AA de entrenamiento.

Cómo funciona una CPU

Una CPU es un procesador de uso general basado en la arquitectura de von Neumann. Eso significa que una CPU funciona con software y memoria, de la siguiente manera:

Una ilustración de cómo funciona una CPU

El mayor beneficio de las CPU es su flexibilidad. Puedes cargar cualquier tipo de software en una CPU para diferentes tipos de aplicaciones. Por ejemplo, puedes usar una CPU para procesar texto en una PC, controlar motores de cohetes, ejecutar transacciones bancarias o clasificar imágenes con una red neuronal.

Una CPU carga valores desde la memoria, realiza un cálculo en los valores y almacena el resultado en la memoria para cada cálculo. El acceso a la memoria es lento en comparación con la velocidad de cálculo y puede limitar la capacidad de procesamiento total de las CPU. Por lo general, se conoce como el cuello de botella de von Neumann.

Cómo funciona una GPU

Para obtener una capacidad de procesamiento más alta, las GPU contienen miles de unidades lógicas aritméticas (ALU) en un solo procesador. Por lo general, una GPU moderna contiene entre 2,500 y 5,000 ALU. Esta gran cantidad de procesadores significa que puedes ejecutar miles de multiplicaciones y adiciones en simultáneo.

Una ilustración de cómo funciona una GPU

Esta arquitectura de GPU funciona bien en aplicaciones con paralelismo masivo, como las operaciones de matrices en una red neuronal. De hecho, en una carga de trabajo de entrenamiento típica para el aprendizaje profundo, una GPU puede proporcionar un pedido de capacidad de procesamiento de magnitud mayor que una CPU.

Sin embargo, la GPU sigue siendo un procesador de uso general que tiene que admitir muchas aplicaciones y software diferentes. Esto significa que las GPU tienen el mismo problema que las CPU. Para cada cálculo en miles de ALU, una GPU debe acceder a los registros o a la memoria compartida a fin de leer operandos y almacenar los resultados de los cálculos intermedios.

Cómo funciona una TPU

Google diseñó Cloud TPU como un procesador matricial especializado para cargas de trabajo de redes neuronales. Las TPU no pueden ejecutar procesadores de texto, controlar motores de cohetes ni ejecutar transacciones bancarias, pero sí pueden manejar operaciones de matriz masivas que se usan en redes neuronales a gran velocidad.

La tarea principal para las TPU es el procesamiento de matrices, que es una combinación de operaciones de multiplicación y acumulación. Las TPU contienen miles de acumuladores multiplicadores que se conectan directamente entre sí para formar una gran matriz física. Esto se conoce como arquitectura de arreglo sistólico. En el caso de Cloud TPU v3, hay dos arreglos sistólicos de ALU de 128 x 128 en un solo procesador.

El host de TPU transmite datos a una cola de entrada. La TPU carga los datos desde la cola de entrada y los almacena en la memoria HBM. Cuando se completa el cálculo, la TPU carga los resultados en la cola de salida. Luego, el host de TPU lee los resultados de la cola de salida y los almacena en la memoria del host.

Para realizar las operaciones de matriz, la TPU carga los parámetros de la memoria de HBM en la MXU.

Una ilustración de cómo carga parámetros desde la memoria una TPU

Luego, la TPU carga los datos desde la memoria HBM. A medida que se ejecuta cada multiplicación, el resultado se pasa al siguiente acumulador multiplicado. El resultado es la suma de todos los resultados de multiplicación entre los datos y los parámetros. No se requiere acceso a la memoria durante el proceso de multiplicación de matrices.

Una ilustración de cómo carga datos desde la memoria una TPU

Como resultado, las TPU pueden lograr una alta capacidad de procesamiento de procesamiento en los cálculos de redes neuronales.

Cuándo conviene usar las TPU

Las Cloud TPU están optimizadas para ciertas cargas de trabajo en particular. En algunas situaciones, te recomendamos usar GPU o CPU en instancias de Compute Engine para ejecutar tus cargas de trabajo de aprendizaje automático. En general, puedes decidir qué hardware es el mejor para tu carga de trabajo según los siguientes lineamientos:

CPU

  • Prototipado rápido que requiere máxima flexibilidad
  • Modelos simples que no tardan mucho en entrenarse
  • Modelos pequeños con tamaños de lotes pequeños y efectivos
  • Modelos que contienen muchas operaciones personalizadas de TensorFlow/PyTorch/JAX escritas en C++
  • Modelos que están limitados por la E/S disponible o el ancho de banda de red del sistema host

GPU

  • Modelos con una cantidad significativa de operaciones personalizadas de TensorFlow/PyTorch/JAX que deben ejecutarse al menos de forma parcial en las CPU
  • Modelos con operaciones de TensorFlow/PyTorch que no están disponibles en Cloud TPU
  • Modelos medianos a grandes con tamaños de lotes efectivos más grandes

TPU

  • Modelos dominados por cálculos de matrices
  • Modelos sin operaciones personalizadas de TensorFlow/PyTorch/JAX dentro del bucle de entrenamiento principal
  • Modelos que se entrenan por semanas o meses
  • Modelos grandes con tamaños de lotes efectivos y grandes

Las Cloud TPU no son adecuadas para las siguientes cargas de trabajo:

  • Programas de álgebra lineal que requieren ramificaciones frecuentes o que contienen mucho álgebra a nivel de los elementos
  • Cargas de trabajo que acceden a la memoria de manera dispersa
  • Cargas de trabajo que requieren aritmética de alta precisión
  • Cargas de trabajo de redes neuronales que contienen operaciones personalizadas en el bucle de entrenamiento principal

Integración de Controles del servicio de VPC

Los Controles del servicio de VPC de Cloud TPU te permiten definir perímetros de seguridad alrededor de los recursos de Cloud TPU y controlar el movimiento de datos en el límite perimetral. Para obtener más información sobre los Controles del servicio de VPC, consulta la Descripción general de los Controles del servicio de VPC. Para conocer las limitaciones en el uso de Cloud TPU con los controles del servicio de VPC, consulta la página sobre los productos admitidos y las limitaciones.

Comienza a usar Cloud TPU

Configure una cuenta de Google Cloud Para poder usar los recursos de Cloud TPU, debes crear una cuenta y un proyecto de Google Cloud.
Activa las API de Cloud TPU Para entrenar un modelo, debes activar las API de Compute Engine y Cloud TPU.
Otorga acceso a Cloud TPU a tus buckets de Cloud Storage Cloud TPU requiere acceso a los depósitos de Cloud Storage en los que almacenas tus conjuntos de datos.
Entrene su modelo Lee una de las guías de inicio rápido o instructivos de Cloud TPU para comenzar.
Analiza tu modelo Usa TensorBoard y otras herramientas para visualizar tu modelo y hacer un seguimiento de las métricas clave durante el proceso de entrenamiento del modelo, como la tasa de aprendizaje, la pérdida y la precisión.

Próximos pasos

¿Deseas aprender más sobre Cloud TPU? Los siguientes recursos pueden ayudar.

Guía de inicio rápido de Compute Engine Prueba entrenar un modelo con Cloud TPU con una de nuestras guías de inicio rápido.
Colabs TPU Experimenta con Cloud TPU con Colabs gratuitos.
Instructivos de Cloud TPU Prueba Cloud TPU con los modelos de AA de referencia.
Arquitectura del sistema de Cloud TPU Obtén información más detallada sobre las TPU.
Precios Hazte una idea de cómo puede Cloud TPU procesar tus cargas de trabajo de aprendizaje automático de una manera rentable.
Comunicarse con Ventas ¿Tienes una implementación o aplicación específica que quieras discutir? Comunícate con tu representante de ventas de Cloud TPU.