TPU v6e
Ce document décrit l'architecture et les configurations compatibles de Cloud TPU v6e (Trillium).
Trillium est l'accélérateur d'IA de dernière génération de Cloud TPU. Sur toutes les surfaces techniques, telles que l'API et les journaux, et tout au long de ce document, Trillium sera désigné par la version v6e.
Avec une empreinte de 256 puces par pod, la version v6e présente de nombreuses similitudes avec la version v5e. Ce système est optimisé pour être le produit le plus intéressant pour l'entraînement, l'ajustement et la diffusion des transformateurs, du texte en image et des réseaux de neurones convolutifs (CNN).
Architecture du système
Chaque puce v6e contient un TensorCore. Chaque TensorCore possède quatre unités de multiplication de matrices (MXU), une unité vectorielle et une unité scalaire. Le tableau suivant présente les principales spécifications et leurs valeurs pour le TPU v6e par rapport au TPU v5e.
Spécification | v5e | v6e |
---|---|---|
Performances/coût total de possession (TCO) (attendu) | x 0,65 | 1 |
Calcul de pointe par puce (bf16) | 197 TFLOPS | 918 TFLOPS |
Calcul de pointe par puce (Int8) | 393 TOPS | 1 836 TOPS |
Capacité HBM par puce | 16 Go | 32 Go |
Bande passante HBM par puce | 819 Gbit/s | 1 640 Gbit/s |
Bande passante de l'interconnexion entre puces (ICI) | 1 600 Gbit/s | 3 584 Gbit/s |
Ports ICI par puce | 4 | 4 |
DRAM par hôte | 512 Gio | 1 536 Gio |
Chips par hôte | 8 | 8 |
Taille du pod TPU | 256 chips | 256 chips |
Topologie d'interconnexion | Tore 2D | Tore 2D |
Calcul de pointe BF16 par pod | 50,63 PFLOP | 234,9 PFLOP |
Bande passante de réduction globale par pod | 51,2 To/s | 102,4 To/s |
Bande passante bisectionnelle par pod | 1,6 To/s | 3,2 To/s |
Configuration de la carte réseau par hôte | Carte d'interface réseau 2 x 100 Gbit/s | 4 cartes d'interface réseau 200 Gbit/s |
Bande passante du réseau du centre de données par pod | 6,4 Tbit/s | 25,6 Tbit/s |
Fonctionnalités spéciales | - | SparseCore |
Configurations compatibles
Le TPU v6e prend en charge l'entraînement pour jusqu'à 256 puces v6e et l'inférence à hôte unique pour jusqu'à huit puces.
Le tableau suivant présente les formes de tranche 2D compatibles avec la version 6e:
Topologie | Puces TPU | Hôtes | VM | Type d'accélérateur (API TPU) | Type de machine (API GKE) | Champ d'application | Compatible avec l'inférence ? |
---|---|---|---|---|---|---|---|
1x1 | 1 | 1/8 | 1 | v6e-1 |
ct6e-standard-1t |
Sous-hôte | Oui |
2x2 | 4 | 1/2 | 1 | v6e-4 |
ct6e-standard-4t |
Sous-hôte | Oui |
2x4 | 8 | 1 | 1 | v6e-8 |
ct6e-standard-8t |
Un seul hôte | Oui |
2x4 | 8 | 1 | 2 | - | ct6e-standard-4t |
Un seul hôte | Non |
4x4 | 16 | 2 | 4 | v6e-16 |
ct6e-standard-4t |
Hôte multiple | Non |
4x8 | 32 | 4 | 8 | v6e-32 |
ct6e-standard-4t |
Hôte multiple | Non |
8x8 | 64 | 8 | 16 | v6e-64 |
ct6e-standard-4t |
Hôte multiple | Non |
8x16 | 128 | 16 | 32 | v6e-128 |
ct6e-standard-4t |
Hôte multiple | Non |
16x16 | 256 | 32 | 64 | v6e-256 |
ct6e-standard-4t |
Hôte multiple | Non |
Les tranches avec huit puces (v6e-8
) associées à une seule VM sont optimisées pour l'inférence, ce qui permet d'utiliser les huit puces dans une seule charge de travail de traitement.
Pour en savoir plus sur le nombre de VM pour chaque topologie, consultez la section Types de VM.
Types de VM
Chaque VM TPU v6e peut contenir une, quatre ou huit puces. Les tranches à quatre puces et plus petites ont le même nœud NUMA (accès à la mémoire non uniforme). Pour en savoir plus sur les nœuds NUMA, consultez l'article Non-uniform memory access (Accès à la mémoire non uniforme) sur Wikipédia.
Les tranches v6e sont créées à l'aide de VM demi-hôtes, chacune avec quatre puces TPU. Il existe deux exceptions à cette règle:
v6e-1
: VM ne comportant qu'un seul chip, principalement destinée aux testsv6e-8
: VM hôte complète optimisée pour un cas d'utilisation d'inférence avec les huit puces connectées à une seule VM.
Le tableau suivant compare les types de VM TPU v6e:
Type de VM | Nombre de vCPU par VM | RAM (Go) par VM | Nombre de nœuds NUMA par VM |
---|---|---|---|
VM à un seul chip | 44 | 176 | 1 |
VM à quatre puces | 180 | 720 | 1 |
VM à 8 chips | 180 | 1440 | 2 |
Spécifier la configuration v6e
Lorsque vous allouez une tranche TPU v6e à l'aide de l'API TPU, vous spécifiez sa taille et sa forme à l'aide des paramètres AcceleratorType
ou AcceleratorConfig
.
Si vous utilisez GKE, utilisez l'indicateur --machine-type
pour spécifier un type de machine compatible avec le TPU que vous souhaitez utiliser. Pour en savoir plus, consultez la section Déployer des charges de travail TPU dans GKE Standard dans la documentation GKE.
Utiliser AcceleratorType
Lorsque vous allouez des ressources TPU, vous utilisez AcceleratorType
pour spécifier le nombre de TensorCores dans une tranche. La valeur que vous spécifiez pour AcceleratorType
est une chaîne au format v$VERSION-$TENSORCORE_COUNT
.
Par exemple, v6e-8
spécifie une tranche TPU v6e avec 8 TensorCores.
L'exemple suivant montre comment créer une tranche de TPU v6e avec 32 TensorCores à l'aide de AcceleratorType
:
gcloud
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=zone \ --accelerator-type=v6e-32 \ --version=v2-alpha-tpuv6e
Console
Dans la console Google Cloud, accédez à la page TPU:
Cliquez sur Créer un TPU.
Dans le champ Nom, saisissez un nom pour votre TPU.
Dans le champ Zone, sélectionnez la zone dans laquelle vous souhaitez créer le TPU.
Dans le champ Type de TPU, sélectionnez
v6e-32
.Dans le champ Version logicielle du TPU, sélectionnez
v2-alpha-tpuv6e
. Lorsque vous créez une VM Cloud TPU, la version logicielle TPU spécifie la version de l'environnement d'exécution TPU à installer. Pour en savoir plus, consultez la section Images de VM TPU.Cliquez sur le bouton Activer la mise en file d'attente.
Dans le champ Nom de la ressource mise en file d'attente, saisissez un nom pour votre requête de ressource mise en file d'attente.
Cliquez sur Créer.
Utiliser AcceleratorConfig
Vous pouvez également utiliser AcceleratorConfig
pour spécifier le nombre de TensorCores que vous souhaitez utiliser. Toutefois, comme il n'existe pas de variantes de topologie 2D personnalisées pour le TPU v6e, il n'y a aucune différence entre l'utilisation de AcceleratorConfig
et de AcceleratorType
.
Pour configurer un TPU v6e à l'aide de AcceleratorConfig
, utilisez les options --version
et --topology
. Définissez --version
sur la version de TPU que vous souhaitez utiliser et --topology
sur la disposition physique des puces de TPU dans la tranche. La valeur que vous spécifiez pour AcceleratorConfig
est une chaîne au format AxB
, où A
et B
correspondent au nombre de puces dans chaque direction.
L'exemple suivant montre comment créer une tranche TPU v6e de 32 TensorCores à l'aide de AcceleratorType
disposés dans une topologie 4x8:
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=zone \ --type=v6e \ --topology=4x8 \ --version=v2-alpha-tpuv6e