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.

Schéma d'un hôte v6e

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 tests
  • v6e-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

  1. Dans la console Google Cloud, accédez à la page TPU:

    Accéder aux TPU

  2. Cliquez sur Créer un TPU.

  3. Dans le champ Nom, saisissez un nom pour votre TPU.

  4. Dans le champ Zone, sélectionnez la zone dans laquelle vous souhaitez créer le TPU.

  5. Dans le champ Type de TPU, sélectionnez v6e-32.

  6. 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.

  7. Cliquez sur le bouton Activer la mise en file d'attente.

  8. 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.

  9. 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