Les TPU (Tensor Processing Units) sont des circuits intégrés spécifiques aux applications (Application-Specific Integrated Circuit ou ASIC) et développés spécifiquement par Google qui permettent d'accélérer les charges de travail de machine learning (ML) et d'intelligence artificielle (IA). Que vous entraîniez des modèles de fondation complexes pendant des semaines ou que vous exécutiez une inférence à grande échelle, les TPU offrent des ressources de calcul spécialisées et évolutives, optimisées pour les frameworks d'IA avancés.
Ce document décrit le rôle des TPU dans Google Cloud, les caractéristiques techniques de chaque version de TPU disponible, les caractéristiques de performances, les considérations tarifaires et leur mappage aux séries de machines Compute Engine.
Qu'est-ce qu'un TPU ?
Un TPU est un ASIC conçu sur mesure pour répondre aux exigences des opérations matricielles massives qui sont au cœur des algorithmes de ML.
Voici les principaux composants architecturaux d'un système TPU :
TensorCore : unité de traitement d'une puce TPU. Chaque TensorCore se compose d'une ou plusieurs unités de multiplication matricielle (MXU) qui utilisent l'architecture de tableau systolique pour effectuer des multiplications matricielles avec une grande efficacité, ainsi que des unités scalaires et vectorielles pour le flux de contrôle et le calcul général.
SparseCore : processeurs de flux de données spécialisés conçus pour accélérer les opérations creuses. Les SparseCores fonctionnent en parallèle des TensorCores pour traiter efficacement les grandes tables d'embedding. Ils sont donc idéaux pour accélérer les modèles de recommandation et les embeddings à grande échelle.
Mémoire à haut débit (HBM) : grande mémoire physique attachée à la puce TPU qui offre une bande passante de mémoire massive. La HBM permet d'entraîner et de diffuser des modèles plus volumineux avec des tailles de lot plus importantes.
Instance TPU : instance de calcul Linux qui s'exécute sur un hôte TPU et qui a un accès direct au matériel TPU sous-jacent. Elle offre un accès aux bibliothèques hautes performances, à la connectivité SSH et aux journaux de débogage de l'environnement d'exécution.
Tranches et pods TPU : un pod TPU est un grand cluster contigu de puces TPU physiquement liées. Une tranche de TPU est une partition logique d'un pod (comprenant un ou plusieurs hôtes connectés à l'aide d'interconnexions à haut débit) allouée à l'exécution d'une seule charge de travail.
Compilateur XLA : le compilateur Accelerated Linear Algebra (XLA) compile les graphiques de machine learning en instructions machine optimisées qui s'exécutent sur les TensorCores TPU.
Versions de TPU et séries de machines
Compute Engine est compatible avec plusieurs générations et versions de TPU. Le tableau suivant fournit les principales spécifications pour chaque version de TPU compatible :
| Version du TPU | Série de machines | Puissance de calcul maximale par puce (TFLOPS) | Mémoire et bande passante des TPU | Cœurs par puce | Bande passante d'interconnexion entre puces (ICI) par puce | Bande passante réseau (DCN) par puce | Puces par pod |
|---|---|---|---|---|---|---|---|
| TPU7x (Ironwood) | tpu7x-standard |
BF16 : 2 307 FP8 : 4 614 |
192 Gio (7 380 Gbit/s) |
2 TensorCores 4 SparseCores |
1 200 Gbit/s | 100 Gbit/s | 9 216 |
| TPU v6e (Trillium) | ct6e-standard |
BF16 : 918 FP8 : 918 |
32 Gio (1 638 Go/s) |
1 TensorCore 2 SparseCores |
800 Gbit/s | 100 Gbit/s | 256 |
| TPU v5p | ct5p-hightpu |
BF16 : 459 FP8 : 459 |
95 Gio (2 765 Go/s) |
2 TensorCores 4 SparseCores |
1 200 Gbit/s | 50 Gbit/s | 8 960 |
Caractéristiques de performances des TPU
Les TPU sont optimisés pour exécuter des opérations d'algèbre matricielle dense avec une efficacité maximale. Pour choisir le moment où une TPU est la mieux adaptée à vos charges de travail de ML, tenez compte des consignes suivantes.
Cas d'utilisation idéaux et exigences concernant la charge de travail
Le choix du bon modèle de TPU dépend des caractéristiques de calcul, des exigences de mémoire et des besoins d'évolutivité de votre charge de travail. Sélectionnez l'un des onglets suivants pour afficher les recommandations.
Entraînement par IA/ML
Pré-entraînement de grands modèles : entraînement de modèles massifs à partir de zéro. Ces charges de travail sont liées au calcul et à la communication.
- Capacité TPU requise : FLOPS de pointe élevés, compatibilité avec la faible précision et bande passante d'interconnexion élevée.
- Versions de TPU recommandées :
Affinage et distillation de modèles : adaptation de modèles existants à l'aide de méthodes efficaces en termes de paramètres ou entraînement de variantes de modèles plus petites.
Inférence d'IA/de ML
Diffuser des modèles en ligne : déployer des modèles pour une interaction en temps réel où une faible latence est essentielle. Ces charges de travail sont liées à la bande passante mémoire lors de la génération séquentielle de jetons.
- Capacité de TPU requise : bande passante HBM élevée et SRAM sur puce de grande taille pour minimiser la latence de récupération des données.
- Versions de TPU recommandées :
Exécuter l'inférence par lot : traiter de grands ensembles de données hors connexion lorsque le haut débit est l'objectif principal. Ces charges de travail sont liées au calcul lors de la phase de préremplissage de l'invite.
Systèmes de recommandation
- Traitement d'embeddings volumineux : entraînement et diffusion de modèles de recommandation qui utilisent des tables d'embeddings massives. Ces charges de travail sont liées à la capacité et à la communication.
- Capacité TPU requise : matériel SparseCore spécialisé pour traiter les opérations éparses en parallèle, grande capacité HBM et compatibilité avec le déchargement vers la mémoire hôte.
- Versions de TPU recommandées :
Apprentissage par renforcement
Exécuter des boucles d'apprentissage par renforcement : gérer les charges de travail hybrides qui nécessitent des boucles serrées de génération d'échantillons et de mise à jour des pondérations de règles.
Considérations relatives à la charge de travail
Les TPU ne sont peut-être pas le choix optimal pour les charges de travail suivantes :
- Les programmes d'algèbre linéaire qui nécessitent des ramifications logiques fréquentes ou qui contiennent de nombreuses opérations algébriques au niveau des éléments.
- Charges de travail qui dépendent d'opérateurs personnalisés dans JAX ou PyTorch exécutés sur des processeurs.
- Charges de travail scientifiques nécessitant une arithmétique à virgule flottante double précision (FP64).
Remarques sur les tarifs
Les facteurs suivants déterminent le prix des TPU sur Google Cloud :
Version du TPU
Emplacement
Modèle de consommation
Pour en savoir plus sur les tarifs, consultez la page Tarifs des TPU.
Modèles de consommation et d'achat
Vous pouvez provisionner des instances de TPU en utilisant l'une des options de consommation suivantes, en fonction de vos exigences de disponibilité et de votre tolérance aux coûts :
- À la demande : tarification standard de paiement à l'usage (PAYG) pour une exécution immédiate. Offre une flexibilité maximale du cycle de vie, mais la disponibilité est soumise à des contraintes de ressources physiques.
- Spot : capacité Google Cloud excédentaire à prix très réduit (jusqu'à 70%). Étant donné que Google Cloud peut arrêter ou supprimer des VM Spot pour récupérer de la capacité avec un préavis de 30 secondes, ces instances de calcul sont idéales pour les charges de travail tolérantes aux pannes et avec points de contrôle.
- Démarrage flexible : permet de demander des instances de calcul à partir d'un pool dédié pendant sept jours maximum avec une disponibilité plus élevée.
- Réservations futures : réservations qui garantissent la capacité et qui offrent un prix réduit par rapport à la tarification à la demande. Réservez de la capacité TPU pour une date et une heure futures spécifiques, soit pour une durée maximale de 90 jours (mode Agenda), soit pour un an ou plus. SiGoogle Cloud approuve votre demande, vous pouvez commencer à utiliser la capacité pendant toute la durée de la réservation.
Remises sur engagement d'utilisation
Lorsque vous demandez une réservation future d'un an ou plus, vous pouvez bénéficier d'une remise sur engagement d'utilisation pour la capacité TPU réservée. Appliquer une remise sur engagement d'utilisation à vos instances de calcul vous permet de bénéficier d'une réduction de prix significative par rapport aux tarifs à la demande en échange d'une période d'utilisation engagée.
Pour en savoir plus, consultez Remises sur engagement d'utilisation pour Compute Engine.
Étapes suivantes
- Consultez Machines TPU dans la famille de machines optimisées pour les accélérateurs.
- Découvrez comment créer une instance de TPU.