Machines TPU dans la famille de machines optimisées pour les accélérateurs

Ce document décrit les instances Compute Engine de la famille de machines optimisées pour les accélérateurs qui disposent de Tensor Processing Units (TPU). Les TPU sont des circuits intégrés propres à une application (ASIC) spécifiquement développés par Google et optimisés pour les charges de travail d'intelligence artificielle (IA) et de machine learning (ML).

Compute Engine est compatible avec les versions de TPU suivantes :

  • TPU7x
  • TPU v6e
  • TPU v5p

Chaque type de machine d'une version est associé à une topologie spécifique et à un nombre de puces TPU.

Principes de base de l'architecture TPU

Comprendre les principes de base de l'architecture TPU vous aide à choisir la version de TPU et le type de machine adaptés à votre charge de travail.

  • Puce TPU : une puce TPU est un accélérateur spécialisé conçu par Google pour le machine learning. Chaque puce TPU contient un ou plusieurs TensorCores pour gérer les opérations matricielles massives. Chaque TensorCore se compose d'une ou plusieurs unités de multiplication matricielle (MXU), qui utilisent une architecture de réseau systolique pour effectuer des milliers d'opérations de multiplication-accumulation par cycle sans accès constant à la mémoire. Bien qu'elle soit principalement utilisée pour le traitement matriciel à grande vitesse, la puce TPU inclut également des unités vectorielles et scalaires pour les opérations de calcul général et de flux de contrôle.

  • 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 du TPU.

  • Instance TPU : instance de calcul Linux qui s'exécute sur un hôte TPU et dispose d'un accès direct au matériel TPU sous-jacent, offrant un accès à des bibliothèques hautes performances, une connectivité SSH et des journaux de débogage d'exécution.

  • Tranche de TPU : groupe logique de puces TPU interconnectées, accessible via une ou plusieurs instances de TPU. Les segments ont l'un des champs d'application suivants :

    • Tranche à hôte unique : tranche composée d'une machine hôte. En général, cela correspond à une instance TPU.
    • Tranche multi-hôte : tranche composée de plusieurs instances de TPU interconnectées à l'aide d'une interconnexion entre puces (ICI) à haut débit.
  • Cube TPU : topologie 4x4x4 de puces TPU interconnectées. Cela ne s'applique qu'aux topologies 3D.

  • SparseCore : les SparseCores sont des processeurs Dataflow qui accélèrent les modèles à l'aide d'opérations éparses. L'un des principaux cas d'utilisation est l'accélération des modèles de recommandation qui reposent fortement sur les embeddings.

  • Versions de TPU : l'architecture exacte d'une puce TPU dépend de la version de TPU que vous utilisez. Chaque version de TPU prend aussi en charge différentes tailles et configurations de tranche.

Pour en savoir plus sur le fonctionnement des TPU, consultez le document Architecture des TPU dans la documentation Cloud TPU.

Versions de TPU recommandées par type de charge de travail

Le choix du modèle de TPU approprié 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 une faible précision et bande passante d'interconnexion élevée.
    • Versions de TPU recommandées :
      • TPU7x. Cette version offre des performances FP8 élevées.
      • TPU v5p. Cette version est compatible avec les configurations de cluster à grande échelle.
  • Affiner et distiller des modèles : adapter des modèles existants à l'aide de méthodes d'optimisation des paramètres ou entraîner des variantes de modèles plus petites.

    • Capacité TPU requise : calcul modéré et capacité de mémoire suffisante.
    • Versions de TPU recommandées :
      • TPU v6e. Cette version est économique pour les tâches d'entraînement standards.
      • TPU7x. Cette version offre des performances élevées pour un réglage à grande échelle.

Inférence d'IA/de ML

  • Mise en service de modèles en ligne : déploiement de modèles pour une interaction en temps réel où une faible latence est essentielle. Ces charges de travail sont limitées par la bande passante de la mémoire lors de la génération séquentielle de jetons.

    • Capacité 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 :
      • TPU v6e. Cette version est optimisée pour une diffusion économique à grande échelle.
      • TPU7x. Cette version offre une bande passante HBM élevée et une SRAM importante pour accélérer la génération de jetons.
  • Exécuter l'inférence par lot : traiter de grands ensembles de données hors connexion lorsque l'objectif principal est d'obtenir un débit élevé. Ces charges de travail sont limitées par les ressources de calcul pendant la phase de préremplissage de la requête.

    • Capacité TPU requise : densité de calcul élevée pour maximiser le débit par dollar.
    • Versions de TPU recommandées :
      • TPU v6e. Cette version est économique pour le traitement par lot à haut débit.
      • TPU7x. Cette version offre une densité de calcul élevée pour traiter rapidement de grands lots.

Systèmes de recommandation

  • Traitement d'embeddings volumineux : entraînement et mise en service de modèles de recommandation qui utilisent des tables d'embeddings volumineuses. Ces charges de travail sont limitées par la capacité et la communication.
    • Capacité TPU requise : matériel SparseCore spécialisé pour traiter les opérations creuses en parallèle, grande capacité HBM et compatibilité avec le déchargement vers la mémoire hôte.
    • Versions de TPU recommandées :
      • TPU7x. Cette version inclut quatre SparseCores par puce et offre la plus grande capacité HBM.
      • TPU v6e. Cette version inclut deux SparseCores par puce pour une diffusion économique.
      • TPU v5p. Cette version inclut quatre SparseCores par puce pour l'entraînement à grande échelle.

Apprentissage par renforcement

  • Exécuter des boucles d'apprentissage par renforcement : gérer des charges de travail hybrides qui nécessitent des boucles serrées de génération d'échantillons et de mise à jour des pondérations des règles.

    • Capacité TPU requise : ICI à faible latence pour des transferts rapides de pondérations et d'activations entre les puces, et connexions hôtes à haut débit.
    • Versions de TPU recommandées :

      Ces versions de TPU utilisent une interconnexion torique 3D à haut débit.

Options de consommation

Pour optimiser l'utilisation des ressources et les coûts tout en équilibrant les performances des charges de travail, Compute Engine propose les options de consommation de TPU suivantes :

  • À la demande : pour consommer des TPU sans organiser la capacité à l'avance. Avant de demander des ressources, vous devez disposer d'un quota à la demande suffisant pour le type et la quantité d'instances TPU spécifiques. La consommation à la demande est l'option la plus flexible. Toutefois, il n'est pas garanti que suffisamment de ressources à la demande seront disponibles pour répondre à votre demande.

  • Spot : pour provisionner des VM Spot, vous pouvez bénéficier de remises importantes, mais les VM Spot peuvent être préemptées à tout moment, avec un avertissement de 30 secondes. Pour en savoir plus, consultez À propos des VM Spot.

  • Démarrage flexible : pour provisionner des {flex_start_vms_name} pendant sept jours maximum, Compute Engine allouant automatiquement le matériel au mieux en fonction de la disponibilité. Pour en savoir plus, consultez À propos des {flex_start_vms_name}.

  • Réservation future pour des blocs de capacité : pour demander une réservation future pour un an ou plus. Pour en savoir plus, consultez Demander une réservation future pour un an ou plus dans la documentation Cloud TPU.

  • Réservation future en mode Agenda : pour provisionner des ressources TPU pour une durée maximale de 90 jours, pour une période spécifiée. Pour en savoir plus, consultez À propos des demandes de réservations futures en mode Agenda.

Le modèle de consommation à la demande est défini par défaut pour les TPU si vous ne spécifiez pas d'autre option.

Pour en savoir plus sur le modèle de provisionnement sous-jacent qui permet d'utiliser l'option de consommation, consultez À propos des modèles de provisionnement de VM.

Options de consommation disponibles par version de TPU

Le tableau suivant récapitule les options de consommation disponibles par version de TPU.

Version du TPU À la demande Spot Démarrage flexible Réservations à la demande Réservations futures Réservations futures en mode Agenda1 Réservations futures pour les blocs de capacité
2 2 2 2

1 Vous ne pouvez pas créer de demandes de réservations futures en mode Agenda lorsque vous utilisez le mode "Toute la capacité".

2 Les réservations Spot, à démarrage flexible, futures en mode Agenda et futures pour les blocs de capacité pour TPU7x sont limitées par une liste d'autorisation. Pour demander l'accès, contactez l'équipe chargée de votre compte ou l'équipe commerciale.

Mode "Toute la capacité"

Par défaut, les réservations de TPU incluent la récupération automatique après défaillance.Cloud de Confiance gère ce processus en remplaçant automatiquement les machines TPU défaillantes par des machines saines de la capacité réservée pour s'assurer que les ressources sont disponibles pour redémarrer vos tranches de TPU.

Pour les TPU v6e et TPU7x, vous pouvez également demander de la capacité TPU en mode Toute la capacité. Ce mode vous donne accès à l'intégralité de votre capacité réservée et à une visibilité complète de la topologie. Dans ce mode, vous pouvez également cibler des blocs ou des sous-blocs spécifiques pour un placement précis des charges de travail en fonction de la topologie. Toutefois, vous êtes responsable de la gestion des défaillances matérielles et de la maintenance.

Pour en savoir plus sur ces modes, consultez Modes de capacité TPU dans la documentation Cloud TPU.

Comparaison des versions de TPU

Comparez les caractéristiques des différentes versions de TPU. Vous pouvez sélectionner des propriétés spécifiques dans le champ Choisir les propriétés à comparer, afin de comparer ces propriétés sur toutes les versions de TPU du tableau ci-dessous.

Optimisé pour les accélérateurs Optimisé pour les accélérateurs Optimisé pour les accélérateurs
VM VM VM
Intel Emerald Rapids AMD EPYC Genoa Intel Sapphire Rapids
x86 x86 x86
224 44 à 180 208
Fil de discussion Fil de discussion Fil de discussion
960 Go 176 à 1 440 Go 448 Go
NUMA NUMA NUMA
———
———
———
———
— —
NVMe NVMe NVMe
—
———
———
———
———
———
——
———
———
gVNIC gVNIC gVNIC
400 Gbit/s 50 à 400 Gbit/s 200 Gbit/s
4 8 4
———
remises remises remises
— remises— remises— remises

Spécifications de l'architecture TPU

Le tableau suivant présente les principales caractéristiques de chaque version de TPU.

Spécification TPU7x TPU v6e TPU v5p
Nombre de puces par pod 9216 256 8 960
Puissance de calcul maximale par puce (BF16) (TFLOPS) 2307 918 459
Puissance de calcul maximale par puce (FP8) (TFLOPS) 4614 918 459
Capacité de mémoire HBM par puce (Gio) 192 32 95
Bande passante HBM par puce (Go/s) 7380 1638 2765
Nombre de vCPU (VM à 4 puces) 224 180 208
RAM (Gio) (VM à quatre puces) 960 720 448
Nombre de TensorCores par puce 2 1 2
Nombre de SparseCores par puce 4 2 4
Bande passante d'interconnexion entre puces (ICI) bidirectionnelle par puce (Go/s) 1200 800 1200
Bande passante du réseau de centre de données (DCN) par puce (Gbit/s) 100 100 50

Types de machines TPU

Les sections suivantes décrivent les types de machines disponibles pour chaque version de TPU.

TPU7x (Ironwood)

Chaque machine virtuelle (VM) TPU7x contient quatre puces TPU. Toutes les tranches TPU7x utilisent des VM à hôte complet et à quatre puces.

Chaque puce TPU7x contient deux TensorCores et quatre SparseCores.

Le modèle de programmation Ironwood vous permet d'accéder à deux appareils TPU au lieu d'une architecture à cœur logique unique utilisée dans les générations précédentes. Pour en savoir plus, consultez Architecture à double chiplet dans la documentation Cloud TPU.

Type de machine Nombre de processeurs virtuels Mémoire de l'instance (Gio) Nombre de cartes d'interface réseau physiques Bande passante réseau maximale (Gbit/s) Nombre de puces TPU par VM Nombre de nœuds NUMA Mémoire TPU totale (Gio HBM)
tpu7x-standard-4t 224 960 2 400 4 2 768

Pour en savoir plus sur l'architecture TPU7x, consultez TPU7x (Ironwood) dans la documentation Cloud TPU.

TPU v6e (Trillium)

Chaque VM TPU v6e peut contenir une, quatre ou huit puces TPU. Les tranches de quatre puces ou moins ont le même nœud NUMA (Non-Uniform Memory Access).

Les tranches v6e sont créées à l'aide de VM à demi-hôte, chacune avec quatre puces TPU, à l'exception des suivantes :

  • ct6e-standard-1t avec une seule puce TPU est principalement destiné aux tests.
  • ct6e-standard-8t est une VM à hôte complet optimisée pour un cas d'utilisation d'inférence, ce qui permet d'utiliser les huit puces TPU associées à une seule VM dans une même charge de travail de diffusion.
Type de machine Nombre de processeurs virtuels Mémoire de l'instance (Go) Nombre de cartes d'interface réseau physiques Bande passante réseau maximale (Gbit/s) Nombre de puces TPU par VM Nombre de nœuds NUMA Mémoire TPU totale (Gio HBM)
ct6e-standard-1t 44 176 1/4 50 1 1 32
ct6e-standard-4t 180 720 2 400 4 1 128
ct6e-standard-8t 360 1440 1 200 8 2 256

Pour en savoir plus sur l'architecture TPU v6e, consultez TPU v6e dans la documentation Cloud TPU.

TPU v5p

Un pod TPU v5p est composé de 8 960 puces TPU interconnectées par des liaisons reconfigurables à haut débit. La mise en réseau flexible des TPU v5p permet de connecter les puces TPU d'une tranche de même taille de plusieurs façons. L'entraînement utilisant une seule tranche est pris en charge jusqu'à un maximum de 6 144 puces TPU.

Type de machine Nombre de processeurs virtuels Mémoire de l'instance (Go) Nombre de cartes d'interface réseau physiques Bande passante réseau maximale (Gbit/s) Nombre de puces TPU par VM Nombre de nœuds NUMA Mémoire TPU totale (Gio HBM)
ct5p-hightpu-4t 208 448 1 200 4 2 380

Pour en savoir plus sur l'architecture TPU v5p, consultez TPU v5p dans la documentation Cloud TPU.

Topologie de TPU

La topologie définit la disposition physique des TPU dans une tranche de pod TPU. En fonction de la version du TPU, la topologie est bidimensionnelle ou tridimensionnelle. Vous pouvez identifier le nombre de puces TPU dans une tranche en calculant le produit de chaque taille dans la topologie. Exemple :

  • Le type de machine tpu7x-standard-4t avec une topologie 2x2x2 est une tranche TPU7x multihôte à huit puces.

Le tableau suivant liste les topologies disponibles pour chaque version de TPU.

Version du TPU Type de machine Champ d'application Caractéristiques techniques
TPU7x (Ironwood) tpu7x-standard-4t Hôte unique
  • Topologie : 2x2x1
  • Nombre de puces TPU pour la topologie : 4
  • Nombre d'hôtes : 1
  • Nombre de VM : 1
  • Nombre de cubes : 1/16
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 2x2x2
  • Nombre de puces TPU pour la topologie : 8
  • Nombre d'hôtes : 2
  • Nombre de VM : 2
  • Nombre de cubes : 1/8
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 2x2x4
  • Nombre de puces TPU pour la topologie : 16
  • Nombre d'hôtes : 4
  • Nombre de VM : 4
  • Nombre de cubes : 1/4
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 2x4x4
  • Nombre de puces TPU pour la topologie : 32
  • Nombre d'hôtes : 8
  • Nombre de VM : 8
  • Nombre de cubes : 1/2
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 4x4x4
  • Nombre de puces TPU pour la topologie : 64
  • Nombre d'hôtes : 16
  • Nombre de VM : 16
  • Nombre de cubes : 1
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 4x4x8
  • Nombre de puces TPU pour la topologie : 128
  • Nombre d'hôtes : 32
  • Nombre de VM : 32
  • Nombre de cubes : 2
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 4x8x8
  • Nombre de puces TPU pour la topologie : 256
  • Nombre d'hôtes : 64
  • Nombre de VM : 64
  • Nombre de cubes : 4
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 8x8x8
  • Nombre de puces TPU pour la topologie : 512
  • Nombre d'hôtes : 128
  • Nombre de VM : 128
  • Nombre de cubes : 8
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : 8x8x16
  • Nombre de puces TPU pour la topologie : 1 024
  • Nombre d'hôtes : 256
  • Nombre de VM : 256
  • Nombre de cubes : 16
TPU7x (Ironwood) tpu7x-standard-4t Multi-hôtes
  • Topologie : {A}x{B}x{C} (où A, B et C sont des multiples de deux)
  • Nombre de puces TPU pour la topologie : A*B*C
  • Nombre d'hôtes : (A*B*C)/4
  • Nombre de VM : (A*B*C/4)
  • Nombre de cubes : (A*B*C/64)
TPU v6e (Trillium) ct6e-standard-1t Hôte unique
  • Topologie : 1x1
  • Nombre de puces TPU pour la topologie : 1
  • Nombre de VM : 1
TPU v6e (Trillium) ct6e-standard-8t Hôte unique
  • Topologie : 2x4
  • Nombre de puces TPU pour la topologie : 8
  • Nombre de VM : 1
TPU v6e (Trillium) ct6e-standard-4t Hôte unique
  • Topologie : 2x2
  • Nombre de puces TPU pour la topologie : 4
  • Nombre de VM : 1
TPU v6e (Trillium) ct6e-standard-4t Multi-hôtes
  • Topologie : 2x4
  • Nombre de puces TPU pour la topologie : 8
  • Nombre de VM : 2
TPU v6e (Trillium) ct6e-standard-4t Multi-hôtes
  • Topologie : 4x4
  • Nombre de puces TPU pour la topologie : 16
  • Nombre de VM : 4
TPU v6e (Trillium) ct6e-standard-4t Multi-hôtes
  • Topologie : 4x8
  • Nombre de puces TPU pour la topologie : 32
  • Nombre de VM : 8
TPU v6e (Trillium) ct6e-standard-4t Multi-hôtes
  • Topologie : 8x8
  • Nombre de puces TPU pour la topologie : 64
  • Nombre de VM : 16
TPU v6e (Trillium) ct6e-standard-4t Multi-hôtes
  • Topologie : 8x16
  • Nombre de puces TPU pour la topologie : 128
  • Nombre de VM : 32
TPU v6e (Trillium) ct6e-standard-4t Multi-hôtes
  • Topologie : 16x16
  • Nombre de puces TPU pour la topologie : 256
  • Nombre de VM : 64
TPU v5p ct5p-hightpu-4t Hôte unique
  • Topologie : 2x2x1
  • Nombre de puces TPU pour la topologie : 4
  • Nombre de VM : 1
TPU v5p ct5p-hightpu-4t Multi-hôtes
  • Topologie : 2x2x2
  • Nombre de puces TPU pour la topologie : 8
  • Nombre de VM : 2
TPU v5p ct5p-hightpu-4t Multi-hôtes
  • Topologie : 2x2x4
  • Nombre de puces TPU pour la topologie : 16
  • Nombre de VM : 4
TPU v5p ct5p-hightpu-4t Multi-hôtes
  • Topologie : 2x4x4
  • Nombre de puces TPU pour la topologie : 32
  • Nombre de VM : 8
TPU v5p ct5p-hightpu-4t Multi-hôtes
  • Topologie : {A}x{B}x{C} (où A, B et C sont des multiples de deux)
  • Nombre de puces TPU pour la topologie : A*B*C
  • Nombre de VM : (A*B*C/4)1
  1. Calcul effectué en divisant le produit de topologie par quatre. ↩

Étapes suivantes