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 de matrices con rapidez, 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 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 los conceptos relacionados que se usan en este documento.
Inferencia por lotes
La inferencia por lotes o sin conexión hace referencia 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 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 de 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 se compone de acumuladores multiplicadores de 256 x 256 (TPU v6e) o 128 x 128 (versiones de TPU anteriores a la v6e) en un array sistólico. Las MXU proporcionan la mayor parte del poder de procesamiento en un TensorCore. Cada MXU puede realizar 16,000 operaciones de multiplicación y acumulación por ciclo. Todas las multiplicaciones toman entradas de bfloat16, pero todas las acumulaciones se realizan en formato de número FP32.
La unidad vectorial se usa para el procesamiento general, como las activaciones y el 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 se aplica a las topologías 3D (a partir de la versión 4 de la TPU).
Inferencia
La inferencia es el proceso de usar un modelo entrenado para hacer predicciones sobre datos nuevos. El proceso de publicación lo usa.
Multislice frente a Single Slice
Multislice es un grupo de porciones que extiende la conectividad de las 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. 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 la tomografía multislice para obtener más detalles.
Resiliencia de ICI de Cloud TPU
La resiliencia de la ICI ayuda a mejorar la tolerancia a fallas de los vínculos ópticos y los conmutadores de circuitos ópticos (OCS) que conectan las 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 las porciones de TPU, con la desventaja de una 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
La publicación 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 tomar decisiones o realizar predicciones. La latencia y la disponibilidad a nivel del servicio son importantes para la publicación.
Host único, multihost y subhost
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 se limita a una VM de TPU. Una carga de trabajo de varios hosts distribuye el entrenamiento en varias VMs de TPU. Una carga de trabajo de subhost no usa todos los chips de una VM de TPU.
Porciones
Una porción de Pod es una colección de chips que se encuentran dentro del mismo Pod de TPU y que están conectados por 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.
Forma del chip y topología del chip también se refieren a las formas de las rebanadas.
SparseCore
SparseCores son procesadores de flujo de datos que aceleran los modelos que se basan en incorporaciones que se encuentran en los modelos de recomendación. v5p incluye cuatro SparseCores por chip, y v6e incluye dos SparseCores por chip.
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 de 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 de TPU depende de la versión de TPU que uses. Cada versión de TPU también admite diferentes tamaños y configuraciones de rebanadas. Para obtener 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 se conecta físicamente una VM al dispositivo TPU: el nodo TPU y la VM de TPU. El nodo TPU era la arquitectura de TPU original para las versiones v2 y v3 de TPU. Con la versión 4, la VM de TPU se convirtió en la arquitectura predeterminada, pero se admitían ambas arquitecturas. 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 la 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 de depuración y los mensajes de error del compilador y el entorno de ejecución.
Arquitectura del 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 al host de TPU, lo que dificulta la depuración de errores de entrenamiento y TPU.
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.
Ve a la página TPUs:
- Busca 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 de TPU", debes borrar la TPU y volver a aprovisionarla.
Borra la TPU y vuelve a aprovisionarla.
Consulta Administra TPUs para obtener instrucciones sobre cómo borrar y aprovisionar nuevamente TPUs.