Architecture du système

Les TPU (Tensor Processing Unit) sont des circuits intégrés spécifiques aux applications, conçus par Google pour accélérer les charges de travail de machine learning. Cloud TPU est un service Google Cloud qui rend les TPU disponibles en tant que ressource évolutive.

Les TPU sont conçus pour effectuer rapidement des opérations matricielles, ce qui les rend parfaits pour les charges de travail de machine learning. Vous pouvez exécuter des charges de travail de machine learning sur des TPU à l'aide de frameworks tels que TensorFlow, Pytorch et JAX.

Termes liés à Cloud TPU

Si vous débutez avec les Cloud TPU, consultez la page d'accueil de la documentation TPU. Les sections suivantes décrivent les termes et concepts associés utilisés dans ce document.

Inférence par lot

L'inférence par lot ou hors connexion fait référence à l'inférence en dehors des pipelines de production, généralement sur une grande quantité d'entrées. L'inférence par lot est utilisée pour des tâches hors connexion telles que l'étiquetage des données, ainsi que pour l'évaluation du modèle entraîné. Les SLO de latence ne sont pas une priorité pour l'inférence par lot.

puce TPU

Une puce TPU contient un ou plusieurs TensorCores. Le nombre de TensorCores dépend de la version de la puce TPU. Chaque TensorCore est composé d'une ou de plusieurs unités de multiplication matricielle (MXU), d'une unité vectorielle et d'une unité scalaire.

Une unité matricielle est composée d'accumulateurs multiples de 128 x 128 dans un tableau systolique. Les unités matricielles constituent l'essentiel de la puissance de calcul d'un TensorCore. Chaque unité matricielle est capable d'effectuer 16 000 opérations de multiplication-cumul par cycle. Toutes les multiplications prennent des entrées bfloat16, mais toutes les accumulations sont effectuées au format numérique FP32.

L'unité de vecteur est utilisée pour les calculs généraux, par exemple pour les activations et la fonction softmax. L'unité scalaire est utilisée pour le flux de contrôle, le calcul des adresses mémoire et d'autres opérations de maintenance.

Cube TPU

Topologie 4x4x4. Cela n'est applicable qu'aux topologies 3D (à commencer par la version v4 de TPU).

Inférence

L'inférence est le processus qui consiste à utiliser un modèle entraîné pour réaliser des prédictions sur de nouvelles données. Il est utilisé par le processus de diffusion.

Tranche unique ou tranche unique

Les multitranches sont un groupe de tranches qui étendent la connectivité du TPU au-delà des connexions ICI (Inter-Chip Interconnect) et exploitent le réseau de centre de données (DCN) pour transmettre des données au-delà d'une tranche. Les données de chaque tranche sont toujours transmises par ICI. Grâce à cette connectivité hybride, la multitranche active le parallélisme entre les tranches et vous permet d'utiliser un plus grand nombre de cœurs de TPU que ce qu'une seule tranche peut gérer pour une seule tâche.

Les TPU peuvent être utilisés pour exécuter une tâche sur une ou plusieurs tranches. Pour en savoir plus, consultez l'introduction aux multitranches.

Résilience ICI Cloud TPU

La résilience ICI aide à améliorer la tolérance aux pannes des liaisons optiques et des commutateurs de circuit optique (OCS) qui connectent des TPU entre des cubes. (Les connexions ICI à l'intérieur d'un cube utilisent des maillons en cuivre qui ne sont pas affectés.) La résilience ICI permet aux connexions ICI d'être acheminées autour des défaillances OCS et optiques ICI. Par conséquent, il améliore la disponibilité de la planification des tranches de TPU, en contrepartie d'une dégradation temporaire des performances d'ICI.

Comme pour Cloud TPU v4, la résilience ICI est activée par défaut pour les tranches v5p d'un cube ou plus:

  • v5p-128 lors de la spécification du type d'accélérateur
  • 4 x 4 x 4 lors de la spécification de la configuration de l'accélérateur

Ressource en file d'attente

Représentation des ressources TPU, qui permet de mettre en file d'attente et de gérer une requête pour un environnement TPU à une seule ou plusieurs tranches. Consultez le Guide de l'utilisateur pour les ressources en file d'attente pour plus d'informations.

Diffusion

L'inférence consiste à déployer un modèle de machine learning entraîné dans un environnement de production où il peut être utilisé pour réaliser des prédictions ou prendre des décisions. La latence et la disponibilité au niveau du service sont importantes pour la diffusion.

Un hôte unique et plusieurs hôtes

Un hôte TPU est une VM qui s'exécute sur un ordinateur physique connecté à du matériel TPU. Les charges de travail TPU peuvent utiliser un ou plusieurs hôtes.

Une charge de travail à hôte unique est limitée à une VM TPU. Une charge de travail multi-hôte distribue l'entraînement sur plusieurs VM TPU.

Tranches

Une tranche de pod est un ensemble de puces situées toutes dans le même pod TPU connectés par des interconnexions de puces à haut débit (ICI). Les segments d'application sont décrits en termes de puces ou de TensorCores, selon la version de TPU.

La forme de puce et la topologie de puce font également référence aux formes de tranche.

SparseCore

La version v5p inclut quatre SparseCore par puce, des processeurs Dataflow qui accélèrent les modèles en s'appuyant sur les représentations vectorielles continues des modèles de recommandation.

pod TPU

Un pod TPU est un ensemble contigu de TPU regroupés dans un réseau spécialisé. Le nombre de puces TPU dans un pod TPU dépend de la version de TPU.

VM ou nœud de calcul TPU

Machine virtuelle exécutant Linux ayant accès aux TPU sous-jacents Une VM TPU est également appelée nœud de calcul.

TensorCores

Les puces TPU disposent d'un ou deux TensorCore pour exécuter la multiplication matricielle. Pour en savoir plus sur TensorCores, consultez cet article ACM.

Nœud de calcul

Consultez la section VM TPU.

Versions de TPU

L'architecture exacte d'une puce TPU dépend de la version de TPU que vous utilisez. Chaque version de TPU est également compatible avec différentes configurations et tailles de tranches. Pour en savoir plus sur l'architecture du système et les configurations compatibles, consultez les pages suivantes:

Architectures de VM Cloud TPU

La manière dont vous interagissez avec l'hôte TPU (et la carte TPU) dépend de l'architecture de VM TPU que vous utilisez: nœuds TPU ou VM TPU.

Architecture avec une VM TPU

L'architecture de VM TPU vous permet de vous connecter directement à la VM connectée physiquement à l'appareil TPU à l'aide de SSH. Vous disposez d'un accès racine à la VM, ce qui vous permet d'exécuter du code arbitraire. Vous pouvez accéder aux journaux de débogage et aux messages d'erreur du compilateur et de l'environnement d'exécution.

Image

Architecture avec un nœud TPU

L'architecture du nœud TPU consiste en une VM utilisateur qui communique avec l'hôte TPU via gRPC. Lorsque vous utilisez cette architecture, vous ne pouvez pas accéder directement à l'hôte TPU, ce qui rend difficile le débogage de l'entraînement et des erreurs TPU.

Image

Étapes suivantes