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 met à disposition les TPU 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 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 des pipelines de production, généralement sur un grand nombre d'entrées. L'inférence par lot est utilisée pour les tâches hors connexion telles que le libellé des données, et également pour évaluer le 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 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 d'adresses mémoire et d'autres 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
Multislice est un groupe de tranches qui étend la connectivité TPU au-delà des connexions inter-puces (ICI) et exploite 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 transmis par ICI. Grâce à ce modèle 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 comportant 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 requête pour un environnement TPU à une ou plusieurs tranches. Consultez le guide de l'utilisateur des ressources en file d'attente. pour en savoir plus.
Diffusion
Le déploiement consiste à déployer un modèle de machine learning entraîné dans un environnement de production où il peut être utilisé pour effectuer des prédictions ou 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 tranches sont décrites en termes de puces ou de TensorCores, en fonction de la version du 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.
Tensor Cores
Les puces TPU disposent d'un ou de 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, voir 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 l'architecture TPU d'origine pour les versions TPU v2 et v3. Avec la version 4, les VM TPU sont devenues par défaut, mais les deux architectures étaient prises en charge. L'architecture de nœud TPU est obsolète et seule la VM TPU est prise en charge. 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 les nœuds TPU à l'architecture de VM TPU.
Architecture avec une VM TPU
L'architecture de la VM TPU vous permet de vous connecter directement à la VM physiquement connectée à 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.
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 à l'hôte TPU, ce qui rend le débogage de l'entraînement et des erreurs TPU difficile.
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.
Accédez à la page "TPU" :
- Recherchez votre TPU et son architecture sous l'en-tête Architecture. Si l'architecture est "VM TPU", aucune action n'est requise de votre part. Si l'architecture est "TPU Node" (nœud TPU) vous devez supprimer et provisionner à nouveau le TPU.
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.