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 para realizar operaciones matriciales rápidamente, lo que las hace ideales para cargas de trabajo de aprendizaje automático. Puedes ejecutar cargas de trabajo de aprendizaje automático en TPU con frameworks, 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 hacer inferencias fuera de la producción. canalizaciones de datos por lo general en la mayoría de las entradas. La inferencia por lotes se usa para operaciones sin conexión tareas como el 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 TensorCores depende de la versión del chip TPU. Cada TensorCore consta de uno o más unidades de multiplicación de matriz (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 puede de realizar 16,000 operaciones de multiplicación y acumulación por ciclo. Todos los multiplicadores toman 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 memoria y otras las operaciones de mantenimiento.

Cubo de TPU

Una topología de 4 × 4 × 4 Esto solo es aplicable a las topologías 3D (empezando con el versión de TPU v4).

Inferencia

La inferencia es el proceso de usar un modelo entrenado para hacer predicciones sobre valores de datos no estructurados. 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á las conexiones de interconexión entre chips (ICI) y aprovechar el centro de datos red (DCN) para transmitir datos más allá de una porción. Los datos dentro de cada porción transmitida por ICI. Usa este modelo híbrido conectividad, Multislice permite paralelismo entre porciones y te permite usar una mayor cantidad de TPU principales para un solo trabajo de lo que puede acomodar 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 información.

Resiliencia de ICI de Cloud TPU

La resiliencia de ICI ayuda a mejorar la tolerancia a errores de vínculos ópticos y interruptores de circuito óptico (OCS) que conectan 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 de OCS y de ICI óptico los errores de cada tipo. Como resultado, mejora la disponibilidad de programación de TPU. con la degradación temporal en el rendimiento de ICI.

Al igual que Cloud TPU v4, la resiliencia de ICI está habilitada de forma predeterminada Para porciones v5p 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 TPU que se usa para poner en cola y administrar una solicitud de entorno de TPU de una o varias porciones. Consulta la Guía del usuario de recursos en cola. para obtener más información.

Activo

Es el proceso de implementar un modelo de aprendizaje automático entrenado en un de producción en el que se pueden 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 que distribuye el entrenamiento en varias VMs de TPU.

Porciones

Una porción de pod es una colección de chips ubicados dentro del mismo pod de TPU que están conectados mediante interconexiones entre chips (ICI) de alta velocidad. Las Slices 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, los cuales son procesadores que aceleran los modelos que dependen de las incorporaciones encontradas en las recomendaciones e implementar modelos automáticamente.

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 TensorCores, consulta este ACM artículo.

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 más información sobre la arquitectura del sistema y las configuraciones admitidas, consulta las siguientes páginas:

Arquitecturas de TPU

Existen dos arquitecturas de TPU que describen cómo una VM está conectado al dispositivo TPU: nodo TPU y VM de TPU. El nodo TPU era el original Arquitectura de TPU para las versiones de TPU v2 y v3 Con v4, la VM de TPU se convirtió en la predeterminada, pero ambas eran compatibles. El nodo TPU está obsoleta y solo se admite VM de TPU. Si eres con nodos TPU, consulta Trasladar desde nodos TPU en la arquitectura de VM de TPU para realizar la conversión desde el nodo TPU a la arquitectura de VM de TPU.

Arquitectura de VM de TPU

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

imagen

Arquitectura de nodo TPU

La arquitectura del nodo TPU consta de una VM de usuario que se comunica con la TPU host a través de gRPC. Cuando usas esta arquitectura, no puedes acceder directamente a la TPU Host, 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 VMs 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 "nodo TPU" debes borrar y volver a aprovisionar la TPU.
  2. Borra y vuelve a aprovisionar la TPU.

    Consulta Administra TPU para obtener instrucciones para borrar y reaprovisionar TPU.

¿Qué sigue?