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. Ils sont donc parfaitement adaptés aux 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.

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 des pipelines de production, généralement sur un grand nombre 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 se compose d'une ou de plusieurs unités matricielles (MXU), d'une unité vectorielle et d'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 unité matricielle est capable d'effectuer 16 000 opérations de multiplication par cycle. Toutes les multiplications prennent des entrées bfloat16, mais toutes les accumulations sont effectuées au 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 et d'autres opérations de maintenance.

TPU Cube

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

Inférence

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

Tranches multiples ou tranche unique

Une tranche multislice est un groupe de tranches qui étend la connectivité TPU au-delà des connexions ICI (inter-chip Interconnect) et utilise 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 permet le parallélisme entre les tranches et vous permet d'utiliser pour un seul job un plus grand nombre de cœurs de TPU que ce que peut permettre une tranche unique.

Les TPU peuvent être utilisés pour exécuter une tâche sur une ou plusieurs tranches. Pour plus de détails, reportez-vous à l'introduction des multitranches.

Résilience ICI de Cloud TPU

La résilience des ICI permet d'améliorer la tolérance aux pannes des liaisons optiques et des commutateurs de circuits optiques (OCS) qui connectent les TPU entre les cubes. (Les connexions ICI dans un cube utilisent des liens en cuivre non affectés.) La résilience des ICI permet de router les connexions ICI autour des OCS et des pannes ICI optiques. Par conséquent, elle améliore la disponibilité en programmation 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 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 permettant de mettre en file d'attente et de gérer une requête pour un environnement TPU à tranche unique ou à plusieurs tranches. Pour en savoir plus, consultez le guide de l'utilisateur des ressources en file d'attente.

Génération

L'inférence est le processus de déploiement d'un modèle de machine learning entraîné dans un environnement de production, où il peut être utilisé pour effectuer 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. Une 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 dans le même pod TPU connecté par des interconnexions ICI à haut débit. Les tranches sont décrites 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 comprend quatre cœurs creux par puce, qui sont des processeurs Dataflow qui accélèrent les modèles en s'appuyant sur les représentations vectorielles continues trouvées dans les modèles de recommandation.

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 est également appelée 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 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 TPU

Il existe deux architectures TPU décrivant comment une VM est connectée physiquement à un appareil TPU: un nœud TPU et une VM TPU. TPU Node était l'architecture d'origine de TPU pour les versions v2 et v3 de TPU. Avec la version 4, les VM TPU sont devenues l'architecture par défaut, mais les deux architectures étaient compatibles. L'architecture de nœud TPU est obsolète et seule une VM TPU est compatible. Si vous utilisez des nœuds TPU, consultez la page Passer d'une architecture de nœud TPU à une architecture de VM TPU pour savoir comment convertir une architecture de nœud TPU en une 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 à 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 du compilateur et de l'environnement d'exécution, ainsi qu'aux messages d'erreur.

Image

Architecture avec un nœud TPU

L'architecture de nœud TPU se compose d'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 complique 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 utilisant 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 aux 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 "Nœud TPU", vous devez supprimer et reprovisionner le TPU.
  2. Supprimez et reprovisionnez le TPU.

    Consultez la section Gérer les TPU pour obtenir des instructions sur la suppression et le reprovisionnement des TPU.

Étapes suivantes