Présentation de Cloud TPU

Les TPU (Tensor Processing Units) sont des accélérateurs matériels conçus par Google pour les charges de travail de machine learning. Pour en savoir plus sur le matériel TPU, consultez la page Architecture du système. Cloud TPU est un service Web qui rend les TPU disponibles en tant que ressources de calcul évolutives sur Google Cloud.

Les TPU permettent d'entraîner vos modèles plus efficacement à l'aide du matériel conçu pour effectuer des opérations matricielles importantes souvent présentes dans les algorithmes de machine learning. Les TPU disposent d'une mémoire à haut débit (HBM) qui vous permet d'utiliser des modèles et des tailles de lot plus importants. Les TPU peuvent être connectés par groupes de pods qui font évoluer vos charges de travail avec peu ou pas de modifications de code.

Nous vous recommandons de démarrer votre projet de machine learning avec un seul TPU et de le faire évoluer vers un pod TPU pour la production. Pour commencer, vous pouvez exploiter un ensemble de modèles de référence Open Source optimisés par les équipes de recherche et d'ingénierie de Google afin de les utiliser avec des TPU. Pour en savoir plus, consultez la page Modèles de référence.

Fonctionnement

Pour comprendre le fonctionnement des TPU, il est utile de comprendre comment d'autres accélérateurs gèrent les difficultés de calcul liées à l'entraînement des modèles de ML.

Fonctionnement d'un processeur

Un processeur est un processeur à usage général basé sur l'architecture de von Neumann. Cela signifie qu'un processeur fonctionne avec un logiciel et une mémoire, comme illustré ci-dessous :

Une illustration du fonctionnement d'un processeur

Le plus grand avantage des processeurs est leur flexibilité. Vous pouvez charger n'importe quel type de logiciel sur un processeur pour de nombreux types d'applications. Par exemple, vous pouvez utiliser un processeur pour le traitement de texte sur un PC, contrôler les moteurs de fusée, exécuter des transactions bancaires ou classer des images avec un réseau de neurones.

Un processeur charge les valeurs à partir de la mémoire, effectue un calcul sur les valeurs et stocke le résultat en mémoire pour chaque calcul. L'accès à la mémoire est lent par rapport à la vitesse de calcul et peut limiter le débit total des processeurs. On parle souvent de goulot d'étranglement de von Neumann.

Fonctionnement d'un GPU

Pour obtenir un débit plus élevé, les GPU contiennent des milliers d'unités logiques arithmétiques (ALU) dans un seul processeur. Un GPU moderne contient généralement entre 2 500 et 5 000 ALU. Le grand nombre de processeurs permet d'exécuter simultanément des milliers de multiplications et d'ajouts.

Une illustration du fonctionnement d'un GPU

Cette architecture GPU fonctionne bien sur les applications à parallélisme massif, comme les opérations matricielles dans un réseau de neurones. En réalité, avec une charge de travail d'entraînement classique pour le deep learning, un GPU peut fournir une commande beaucoup plus importante qu'un processeur.

Toutefois, le GPU reste un processeur à usage général qui doit prendre en charge de nombreuses applications et différents logiciels. Par conséquent, les GPU rencontrent le même problème que les processeurs. Pour chaque calcul dans les milliers d'ALU, un GPU doit accéder aux registres ou à la mémoire partagée pour lire les opérandes et stocker les résultats des calculs intermédiaires.

Fonctionnement d'un TPU

Cloud TPU a été conçu par Google comme un processeur matriciel spécialisé dans les charges de travail des réseaux de neurones. Les TPU ne peuvent pas exécuter de processeurs de texte, contrôler les moteurs de fusée ou exécuter des transactions bancaires, mais ils peuvent gérer à grande vitesse des opérations matricielles massives dans les réseaux de neurones.

La tâche principale des TPU est le traitement matriciel, qui est une combinaison d'opérations de multiplication et d'addition. Les TPU contiennent des milliers d'accumulateurs multiplicateurs qui sont directement connectés les uns aux autres pour former une grande matrice physique. C'est ce qu'on appelle une architecture de tableau systolique. Cloud TPU v3, contient deux tableaux systoliques de 128 x 128 ALU, sur un seul processeur.

L'hôte TPU diffuse les données dans une file d'attente d'ingestion. Le TPU charge les données de la file d'attente d'ingestion et les stocke dans la mémoire HBM. Une fois le calcul terminé, le TPU charge les résultats dans la file d'attente de sortie. L'hôte TPU lit ensuite les résultats de la file d'attente de sortie et les stocke dans la mémoire de l'hôte.

Pour effectuer les opérations matricielles, le TPU charge les paramètres de la mémoire HBM dans l'unité matricielle.

Une illustration de la façon dont un TPU charge des paramètres depuis la mémoire

Le TPU charge ensuite les données à partir de la mémoire HBM. À chaque exécution de la multiplication, le résultat est transmis à l'accumulateur suivant. La sortie correspond à la somme de tous les résultats de multiplication entre les données et les paramètres. Aucun accès à la mémoire n'est requis lors du processus de multiplication matricielle.

Une illustration de la façon dont un TPU charge des données depuis la mémoire

Par conséquent, les TPU peuvent atteindre un débit de calcul élevé sur les calculs du réseau de neurones.

Quand utiliser les TPU ?

Les ressources Cloud TPU sont optimisées pour des charges de travail spécifiques. Dans certains cas, il est préférable d'utiliser des GPU ou des processeurs sur des instances Compute Engine afin d'exécuter des charges de travail de machine learning. En règle générale, vous pouvez choisir le matériel le mieux adapté à votre charge de travail en vous appuyant sur les descriptions suivantes :

Processeurs

  • Prototypage rapide nécessitant une flexibilité maximale
  • Modèles simples rapides à entraîner
  • Petits modèles comportant des lots efficaces de taille moindre
  • Modèles contenant de nombreuses opérations TensorFlow/PyTorch/JAX personnalisées écrites en C++
  • Modèles limités par la capacité d'E/S ou par la bande passante réseau du système hôte

GPU

  • Modèles avec un grand nombre d'opérations TensorFlow/PyTorch/JAX personnalisées devant s'exécuter au moins partiellement sur des processeurs
  • Modèles avec des opérations TensorFlow/PyTorch non disponibles sur Cloud TPU
  • Modèles moyens à volumineux comportant des lots efficaces de taille plus importante

TPU

  • Modèles dominés par les calculs matriciels
  • Modèles sans opérations TensorFlow/PyTorch/JAX personnalisées dans la boucle d'entraînement principale
  • Modèles dont l'entraînement prend des semaines ou des mois
  • Modèles volumineux avec lots efficaces de grande taille

Les ressources Cloud TPU ne sont pas adaptées aux charges de travail suivantes :

  • Programmes d'algèbre linéaires qui nécessitent des branchements fréquents ou qui contiennent de nombreuses opérations en algèbre au niveau des éléments
  • Charges de travail qui accèdent peu fréquemment à la mémoire
  • Les charges de travail qui nécessitent une arithmétique de haute précision
  • Les charges de travail de réseau de neurones qui contiennent des opérations personnalisées dans la boucle d'entraînement principale

Intégration de VPC Service Controls

Le service VCP Service Controls de Cloud TPU vous permet de définir des périmètres de sécurité autour de vos ressources Cloud TPU et de contrôler le déplacement des données au-delà des limites de ces périmètres. Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls. Pour en savoir plus sur les limites d'utilisation de Cloud TPU avec VPC Service Controls, consultez la page Produits compatibles et limites.

Premiers pas avec Cloud TPU

Configurer un compte Google Cloud Avant de pouvoir utiliser les ressources Cloud TPU, vous devez créer un compte et un projet Google Cloud.
Activer des API Cloud TPU Pour entraîner un modèle, vous devez activer les API Compute Engine et Cloud TPU.
Accorder à Cloud TPU l'accès à vos buckets Cloud Storage Cloud TPU nécessite un accès aux buckets Cloud Storage dans lesquels vous stockez vos ensembles de données.
Entraîner le modèle Consultez l'un des guides de démarrage rapide ou les tutoriels de Cloud TPU pour vous lancer.
Analyser votre modèle TensorBoard ou d'autres outils vous permettent de visualiser votre modèle et de suivre les métriques clés.

Étape suivante

Vous souhaitez en savoir plus sur Cloud TPU ? Les ressources suivantes peuvent vous y aider.

Démarrage rapide avec Compute Engine Essayez d'entraîner un modèle en utilisant Cloud TPU avec l'un de nos guides de démarrage rapide.
Colabs TPU Testez Cloud TPU avec Colab sans frais supplémentaires.
Tutoriels Cloud TPU Tester Cloud TPU en utilisant des modèles de ML de référence
Architecture du système Cloud TPU Obtenez des informations plus détaillées sur les TPU.
Tarifs Découvrez comment Cloud TPU peut traiter vos charges de travail de machine learning de manière rentable.
Contacter le service commercial Vous souhaitez discuter d'une mise en œuvre ou d'une application spécifique ? Contactez votre conseiller Cloud TPU.