Arquitectura del sistema

Las unidades de procesamiento tensorial (TPU) son circuitos integrados específicos de la aplicación (ASIC) diseñados por Google para acelerar las cargas de trabajo de aprendizaje automático. Cloud TPU es un servicio de Google Cloud que pone las TPU a disposición como un recurso escalable.

Las TPU están diseñadas con el objetivo de realizar operaciones de matrices rápidamente, lo que las hace ideales para las cargas de trabajo de aprendizaje automático. Puedes ejecutar cargas de trabajo de aprendizaje automático en TPU mediante marcos de trabajo como TensorFlow, Pytorch y JAX.

Términos de Cloud TPU

Si no conoces Cloud TPU, consulta la página principal de la documentación de TPU. En las siguientes secciones, se explican los términos y conceptos relacionados que se usan en este documento.

Inferencia por lotes

La inferencia por lotes o sin conexión se refiere a realizar inferencias fuera de las canalizaciones de producción, por lo general, en una gran cantidad de entradas. La inferencia por lotes se usa para tareas sin conexión, como etiquetado de datos, y también para evaluar el modelo entrenado. Los SLO de latencia no son una prioridad para la inferencia por lotes.

chip TPU

Un chip TPU contiene uno o más TensorCores. La cantidad de tensores depende de la versión del chip TPU. Cada TensorCore consta de una o más unidades de multiplicación de matrices (MXU), una unidad vectorial y una unidad escalar.

Una MXU está compuesta por 128 x 128 multiplicadores de multiplicación en un array sistólico. Las MXU proporcionan la mayor parte de la potencia de procesamiento en un TensorCore. Cada MXU es capaz de realizar 16,000 operaciones de multiplicación y acumulación por ciclo. Todas las multiplicaciones toman entradas bfloat16, pero todas las acumulaciones se realizan en formato de número FP32.

La unidad vectorial se usa para cálculos generales, como activaciones y softmax. La unidad escalar se usa para el flujo de control, el cálculo de direcciones de la memoria y otras operaciones de mantenimiento.

Cubo de TPU

Una topología de 4 × 4 × 4 Esto solo se aplica a las topologías 3D (a partir de la versión de TPU v4).

Inferencia

La inferencia es el proceso de usar un modelo entrenado para hacer predicciones sobre datos nuevos. Se usa en el proceso de entrega.

División múltiple frente a una sola

Multislice es un grupo de porciones que extiende la conectividad TPU más allá de las conexiones de interconexión entre chips (ICI) y aprovecha la red del centro de datos (DCN) para transmitir datos más allá de una porción. Los datos dentro de cada porción todavía se transmiten a través de ICI. Con esta conectividad híbrida, Multislice habilita el paralelismo entre las porciones y te permite usar una mayor cantidad de núcleos de TPU para un solo trabajo que los que puede admitir una sola porción.

Las TPU se pueden usar para ejecutar un trabajo en una sola porción o en múltiples porciones. Consulta la Introducción a Multislice para obtener más detalles.

Resiliencia de ICI de Cloud TPU

La resiliencia de ICI ayuda a mejorar la tolerancia a errores de los enlaces ópticos y los interruptores de circuito óptico (OCS) que conectan las TPU entre cubos. (las conexiones ICI dentro de un cubo utilizan enlaces de cobre que no se ven afectados). La resiliencia de ICI permite que las conexiones ICI se enruten alrededor del OCS y las fallas ópticas de ICI. Como resultado, mejora la disponibilidad de programación de las porciones de TPU, con la compensación de la degradación temporal en el rendimiento de ICI.

Al igual que Cloud TPU v4, la resiliencia de ICI se habilita de forma predeterminada para porciones de v5p que sean de un cubo o más grandes:

  • v5p-128 cuando se especifica el tipo de acelerador
  • 4x4x4 cuando se especifica la configuración del acelerador

Recurso en cola

Una representación de los recursos de TPU, que se usa para poner en cola y administrar una solicitud de un entorno de TPU de una o varias secciones. Consulta la Guía del usuario de Recursos en cola para obtener más información.

Entrega

La entrega es el proceso de implementar un modelo de aprendizaje automático entrenado en un entorno de producción en el que se puede usar para hacer predicciones o tomar decisiones. La latencia y la disponibilidad a nivel de servicio son importantes para la entrega.

Un host y varios hosts

Un host de TPU es una VM que se ejecuta en una computadora física conectada al hardware de TPU. Las cargas de trabajo de TPU pueden usar uno o más hosts.

Una carga de trabajo de host único está limitada a una VM de TPU. Una carga de trabajo de varios hosts distribuye el entrenamiento entre varias VM de TPU.

Porciones

Una porción de pod es una colección de chips ubicados dentro del mismo pod de TPU conectado mediante interconexiones entre chips (ICI) de alta velocidad. Las porciones se describen en términos de chips o TensorCores, según la versión de TPU.

La forma del chip y la topología de chip también hacen referencia a las formas de las porciones.

SparseCore

v5p incluye cuatro SparseCores por chip, que son procesadores de Dataflow que aceleran los modelos que dependen de las incorporaciones que se encuentran en los modelos de recomendación.

pod de TPU

Un pod de TPU es un conjunto contiguo de TPU que se agrupan en una red especializada. La cantidad de chips TPU en un pod de TPU depende de la versión de TPU.

Trabajador o VM de TPU

Una máquina virtual que ejecuta Linux y que tiene acceso a las TPU subyacentes. Una VM de TPU también se conoce como trabajador.

TensorCores

Los chips TPU tienen uno o dos TensorCores para ejecutar la multiplicación de matrices. Para obtener más información sobre los TensorCores, consulta este artículo de ACM.

Trabajador

Consulta VM de TPU.

Versiones de TPU

La arquitectura exacta de un chip TPU depende de la versión de TPU que uses. Cada versión de TPU también admite diferentes tamaños y configuraciones de porciones. Para obtener más información sobre la arquitectura del sistema y las configuraciones compatibles, consulta las siguientes páginas:

Arquitecturas de TPU

Ha habido dos arquitecturas de TPU que describen cómo una VM está conectada de manera física al dispositivo TPU: nodo TPU y VM de TPU. El nodo TPU es la arquitectura de TPU original para las versiones de TPU v2 y v3. Con v4, la VM de TPU se convirtió en la arquitectura predeterminada, pero se admitían ambas arquitecturas. La arquitectura del nodo TPU está obsoleta y solo se admite la VM de TPU. Si usas nodos TPU, consulta Pasar del nodo TPU a la arquitectura de VM de TPU para convertir de la arquitectura de nodo TPU a la de VM de TPU.

Arquitectura de VM de TPU

La arquitectura de la VM de TPU te permite conectarte directamente a la VM conectada de forma física al dispositivo TPU mediante SSH. Tienes acceso raíz a la VM, por lo que puedes ejecutar un código arbitrario. Puedes acceder a los registros de depuración del compilador y del entorno de ejecución y a los mensajes de error.

imagen

Arquitectura de nodo TPU

La arquitectura del nodo TPU consiste en una VM de usuario que se comunica con el host de TPU a través de gRPC. Cuando usas esta arquitectura, no puedes acceder directamente al host de TPU, lo que dificulta la depuración de errores de entrenamiento y TPU.

imagen

Pasar del nodo TPU a la arquitectura de VM de TPU

Si tienes TPU que utilizan la arquitectura de nodo TPU, sigue estos pasos para identificarlas, borrarlas y volver a aprovisionarlas como VM de TPU.

  1. Ve a la página TPU:

    Ir a TPU

    1. Localiza tu TPU y su arquitectura en el encabezado Arquitectura. Si la arquitectura es “VM de TPU”, no es necesario que realices ninguna acción. Si la arquitectura es un "nodo TPU", debes borrar y volver a aprovisionar la TPU.
  2. Borra y vuelve a aprovisionar la TPU.

    Consulta Administra TPU para obtener instrucciones sobre cómo borrar y volver a aprovisionar TPU.

¿Qué sigue?