Arquitectura del sistema

Las unidades de procesamiento tensorial (TPU) son circuitos integrados específicos de aplicaciones (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 es la primera vez que usas 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 tareas sin conexión, 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 de TPU contiene uno o más TensorCores. La cantidad de TensorCores depende de la versión del chip TPU. Cada TensorCore consta de una o más unidades de multiplicación de matrices (MXUs), 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 realizar 16,000 operaciones de multiplicación y acumulación por ciclo. Todos los multiplicadores 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 memoria y otras 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 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á las conexiones de interconexión entre chips (ICI) y aprovechar el centro de datos de red (DCN) para transmitir datos más allá de una porción. El ICI sigue transmitiendo los datos de cada fragmento. 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 de lo que puede admitir una sola porción.

Las TPU se pueden usar para ejecutar una tarea en una sola porción o en varias. 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 de ICI dentro de un cubo usan vínculos de cobre que no se ven afectados). La resiliencia de ICI permite que las conexiones de ICI se enruten alrededor de las fallas de OCS y ICI ópticas. Como resultado, mejora la disponibilidad de programación de TPU. con la degradación temporal en el rendimiento de ICI.

Al igual que en Cloud TPU v4, la resiliencia de ICI está habilitada de forma predeterminada para las porciones de v5p que son de un cubo o más:

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

Recurso en cola

Es 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 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 del servicio son importantes para la publicación.

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 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 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, 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 agrupadas en una red especializada. La cantidad de chips TPU en un pod de TPU depende de la versión de TPU.

VM o trabajador de TPU

Una máquina virtual que ejecuta Linux y 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 es compatible con diferentes configuraciones y tamaños de porciones. Para más información sobre la arquitectura del sistema y las configuraciones compatibles, consulta las siguientes páginas:

Arquitecturas de TPU

Existen dos arquitecturas de TPU que describen cómo una VM conectado al dispositivo TPU: nodo TPU y VM de TPU. El nodo TPU era la arquitectura de TPU original para las versiones v2 y v3 de TPU. Con v4, la VM de TPU se convirtió en la predeterminada, pero ambas eran compatibles. La arquitectura del nodo TPU dejó de estar disponible y solo se admite la VM de TPU. Si usas nodos TPU, consulta Cómo migrar de un nodo TPU a la arquitectura de VM de TPU para convertir de un nodo TPU a la arquitectura de VM de TPU.

Arquitectura de VM de TPU

La arquitectura de la VM de TPU te permite conectarte directamente a la VM conectada físicamente al dispositivo 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 de TPU consta de 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 a la TPU Host, lo que dificulta la depuración de errores de entrenamiento y TPU.

imagen

Cómo pasar de la arquitectura de nodo TPU a la de VM de TPU

Si tienes TPU que usan la arquitectura de nodos TPU, sigue los pasos que se indican a continuación para identificarlas, borrarlas y volver a aprovisionarlas como VMs de TPU.

  1. Ve a la página TPU:

    Ir a TPU

    1. Localiza la 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 la TPU y vuelve a aprovisionarla.

    Consulta Administra TPUs para obtener instrucciones sobre cómo borrar y aprovisionar nuevamente TPUs.

¿Qué sigue?