Architecture du système

Les TPU (Tensor Processing Unit) sont des circuits intégrés spécifiques aux applications (ASIC) 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 ressources évolutives.

Les TPU sont conçus pour effectuer rapidement des opérations matricielles, ce qui les rend parfaits pour les charges de travail de ML. Vous pouvez exécuter des charges de travail de machine learning sur des TPU en utilisant tels que TensorFlow, PyTorch, et JAX.

Conditions d'utilisation de Cloud TPU

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

Inférence par lot

L'inférence par lot ou hors connexion consiste à effectuer des inférences en dehors de la production les pipelines sur la plupart des entrées. L'inférence par lot est utilisée hors connexion telles que l'étiquetage des données et 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 constitué d'un ou de plusieurs unités matricielles (MXU), une unité vectorielle et une unité scalaire.

Une unité matricielle est composée d'accumulateurs de multiplication de 128 x 128 dans un tableau systolique. Les unités matricielles fournissent l'essentiel de la puissance de calcul d'un TensorCore. Chaque MXU est capable d'effectuer 16 000 opérations de multiplication par cycle. Prend toutes les multiplications bfloat16, mais toutes les accumulations sont effectuées Format numérique FP32.

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

TPU Cube

Topologie 4x4x4. Cela ne s'applique qu'aux topologies 3D (à commencer par le v4).

Inférence

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

Tranches multiples ou tranche unique

Une tranche multicouche est un groupe de tranches qui étend la connectivité TPU au-delà les connexions ICI (Inter-Chip Interconnect) et l'exploitation du (DCN) pour transmettre des données au-delà d'une tranche. Les données de chaque tranche sont toujours transmis par ICI. Grâce à cette approche hybride, la connectivité multislice, parallélisme sur les tranches et vous permet d'utiliser un plus grand nombre de TPU de cœurs pour un seul job que ce qu'une seule tranche peut accepter.

Les TPU peuvent être utilisés pour exécuter une tâche sur une ou plusieurs tranches. Consultez l'introduction aux tranches d'âge multiples. pour en savoir plus.

Résilience ICI de Cloud TPU

La résilience ICI permet d'améliorer la tolérance aux pannes des liens optiques Commutateurs de circuits optiques (OCS) qui connectent des TPU entre des cubes. (Les connexions ICI dans un cube utilisent des liens en cuivre non affectés.) La résilience ICI permet de router les connexions ICI autour de l'OCS et de l'ICI optique. et des erreurs. Par conséquent, elle améliore la disponibilité de la programmation pour les TPU et les segments d'application, en contrepartie d'une dégradation temporaire des performances des 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 lorsque vous spécifiez le type d'accélérateur
  • 4x4x4 lors de la spécification de la configuration de l'accélérateur

Ressource en file d'attente

Représentation des ressources TPU, utilisée pour mettre en file d'attente et gérer une demande de un environnement TPU à une ou plusieurs tranches. Consultez le Guide de l'utilisateur des ressources en file d'attente. pour en savoir plus.

Diffusion

L'inférence consiste à déployer un modèle de machine learning entraîné de production pour générer des prédictions ou prendre des décisions. La latence et la disponibilité au niveau du service sont importantes pour la diffusion.

Hôte unique et hôtes multiples

Un hôte TPU est une VM qui s'exécute sur un ordinateur physique connecté au 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. Charge de travail à hôtes multiples répartit 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ées par des interconnexions interpuces (ICI) à haut débit. Les segments d'application sont décrits en termes de puces ou de TensorCores, selon la version de TPU.

Forme de puce et topologie de puce font également référence à la forme des tranches.

SparseCore

La version v5p inclut quatre cœurs creux par puce, qui correspondent à des processeurs qui accélèrent les modèles en s'appuyant sur les représentations vectorielles continues trouvées dans les recommandations. des modèles de ML.

pod TPU

Un pod TPU est un ensemble contigu de TPU regroupés sur 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 qui a accès aux TPU sous-jacents. Une VM TPU également appelé nœud de calcul.

TensorCores

Les puces TPU possèdent un ou deux TensorCores pour exécuter la multiplication matricielle. Pour en savoir plus sur TensorCores, consultez ce guide ACM sur le pour en savoir plus.

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 plus d'informations sur l'architecture du système et les configurations prises en charge, consultez les pages suivantes:

Architectures TPU

Deux architectures TPU décrivent la manière dont une VM est physiquement connecté à l'appareil TPU: le nœud TPU et la VM TPU. Le nœud TPU était le premier Architecture TPU pour les versions de TPU v2 et v3. Avec la version 4, les VM TPU sont devenues par défaut, mais les deux architectures étaient prises en charge. Le nœud TPU est obsolète et seules les VM TPU sont compatibles. Si vous utilisez à l'aide de nœuds TPU, consultez la page Passer d'un nœud TPU à l'architecture de VM TPU pour convertir un nœud TPU à l'architecture de 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 via 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 du compilateur et de l'environnement d'exécution, ainsi qu'aux messages d'erreur.

image

Architecture avec un nœud TPU

L'architecture d'un nœud TPU se compose d'une VM utilisateur qui communique avec le TPU sur gRPC. Lorsque vous utilisez cette architecture, vous ne pouvez pas accéder directement au TPU Hôte, ce qui rend difficile le débogage des erreurs d'entraînement et des erreurs TPU.

image

Passer d'un nœud TPU à une architecture de VM TPU

Si vous disposez de TPU qui utilisent l'architecture de nœud TPU, procédez comme suit pour les identifier, les supprimer et les provisionner à nouveau en tant que VM TPU.

  1. Accédez à la page "TPU" :

    Accéder à TPU

    1. Recherchez votre TPU et son architecture sous l'en-tête Architecture. Si l'architecture est une "VM TPU", aucune action n'est requise de votre part. Si l'architecture est "TPU Node". vous devez supprimer et provisionner à nouveau le TPU.
  2. Supprimez et reprovisionnez le TPU.

    Consultez la page Gérer les TPU pour en savoir plus les instructions sur la suppression et le reprovisionnement des TPU.

Étape suivante