Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Types et topologies de TPU

Présentation

Lorsque vous créez une configuration de TPU, vous devez spécifier un type et une taille de TPU, ou un type de TPU et une topologie (arrangement logique de la puce). Vous pouvez procéder de deux manières dans une opération gcloud create:

  • Créer une seule chaîne accelerator-type spécifiant le type (v2, v3 ou v4) et le nombre de TensorCores demandés
  • Spécifiez le paramètre TPU type avec l'option topology.

Consultez la section Types de TPU pour obtenir des exemples de création de TPU à l'aide de la chaîne accelerator-type ou des options type et topology.

Pour en savoir plus sur les différentes versions et topologies de Cloud TPU, consultez le document Architecture système.

Types de TPU

Vous pouvez utiliser l'option "accelerator-type&#39" de la commande gcloud pour spécifier une configuration TPU. Une configuration TPU est composée d'une version de TPU et du nombre de TensorCore. Par exemple, la commande gcloud suivante crée un TPU v3 avec 128 TensorCores:

    $ gcloud compute tpus tpu-vm create tpu-name
      --zone=zone
      --accelerator-type=v3-128
      --version=tpu-vm-tf-2.10.0

Vous pouvez également spécifier la configuration TPU comme le nombre de puces TPU et leur disposition logique (topologie). Pour en savoir plus, consultez la section Configurations TPU basées sur des puces.

Configurations TPU basées sur TensorCore

Pour tous les types de TPU, la version est suivie du nombre de TensorCore (par exemple, 8, 32, 128). Par exemple, --accelerator-type=<code>v2-8</code> spécifie un TPU v2 avec 8 TensorCores, et v3-1024 spécifie un TPU v3 avec 1024 TensorCores (une tranche d'un pod v3).

Configurations TPU basées sur la topologie des puces

Les configurations v4 sont spécifiées avec une version de TPU et une topologie. La topologie est spécifiée par un 3-tuple qui décrit la façon dont les chips sont organisés. Par exemple, la configuration 32-TensorCore peut être représentée en chips de 2 x 2 x 4 (16 puces, chacune avec 2 TensorCore). Le 3-tuple ne spécifie que la topologie, pas la configuration, qui nécessite une version de TPU.

AxBxC représente une topologie v4 où A<=B<=C et A,B,C sont tous des <=4 ou tous les multiples entiers de 4. Les valeurs A, B et C correspondent au nombre de puces des trois dimensions. Les topologies pour lesquelles 2A=B=C ou 2A=2B=C comportent également des variantes optimisées pour la communication globale, par exemple 4 × 4 × 8, 8 × 8 × 16 et 12 × 12 × 24.

Pour en savoir plus sur les topologies v4, consultez la page Configurations TPU v4.

Créer des topologies basées sur la topologie à puce (v4)

Avec la version 4, vous voyez des appareils plutôt que des TensorCore, un appareil par puce. Pour spécifier des topologies basées sur la topologie basée sur les puces, la version 4 a introduit des formats de topologie tridimensionnels (par exemple, 4x4x4) avec un indicateur --topology pour l'opération de création de TPU gcloud. Les tableaux affichés sous Variantes de topologie incluent des exemples d'autres topologies basées sur la topologie basée sur les puces compatibles.

Vous pouvez spécifier un type et une topologie v4 à l'aide des options type et topology pour l'opération de création gcloud. Par exemple, la commande gcloud suivante crée un TPU v4 avec 64 puces dans une topologie de cube 4x4x4.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --type=v4
    --topology=4x4x4
    --version=tpu-vm-tf-2.10.0

La valeur acceptée pour --type est v4.

Variantes de topologie

La topologie standard associée à un TensorCore ou à un nombre de puces donné est celle qui s'apparente le plus à un cube (voir Formes de topologie. Cette forme en fait probablement le meilleur choix pour l'entraînement de ML avec parallélisme des données. D'autres topologies peuvent être utiles pour les charges de travail avec plusieurs types de parallélisme (par exemple, le parallélisme des modèles et des données, ou le partitionnement spatial d'une simulation). Ces charges de travail sont plus performantes si la forme de la tranche correspond au parallélisme utilisé. Par exemple, le positionnement du parallélisme des modèles à 4 voies sur l'axe X et du parallélisme des données à 256 voies sur les dimensions Y et Z correspond à une topologie 4x16x16.

Les modèles comportant plusieurs dimensions de parallélisme sont plus performants lorsque leurs dimensions de parallélisme sont mappées avec des dimensions de tore. En général, il s'agit des modèles LML (Data Large Language) parallèles basés sur les données et le modèle. Par exemple, pour une tranche de pod TPU v4 avec une topologie de 8x16x16, les dimensions de tore sont 8, 16 et 16. Il est plus performant d'utiliser le parallélisme des modèles à 8 ou 16 voies (mappé avec l'une des dimensions physiques du torsion). Un parallélisme des modèles à quatre voies ne serait pas optimal avec cette topologie, car il n'est aligné avec aucune dimension tore, mais il serait optimal avec une topologie au format 4x16x32 sur le même nombre de puces.

Petites topologies v4

Cloud TPU est compatible avec les tranches de TPU v4 suivantes, inférieures à 64 puces, soit un cube 4x4x4. Vous pouvez créer ces petites topologies v4 à l'aide de leur nom basé sur TensorCore (par exemple, v4-32) ou de leur topologie (par exemple, 2x2x4):

Nom (basé sur le nombre de TensorCore) Nombre de chips Topology
v4-8 4 2x2x1
v4-16 8 2x2x2
v4-32 16 2x2x4
v4-64 32 2x4x4

Topologies v4 volumineuses

Les tranches de TPU v4 sont disponibles par incréments de 64 puces, avec des formes de multiple de 4 sur les trois dimensions. Les dimensions doivent également être dans un ordre croissant. Plusieurs exemples sont présentés dans le tableau suivant. Quelques-unes de ces topologies sont des topologies personnalisées qui ne peuvent être lancées qu'à l'aide de l'API de topologie, car elles possèdent le même nombre de puces qu'une topologie nommée plus couramment utilisée.

Nom (basé sur le nombre de TensorCore) Nombre de chips Topology
v4-128 64 4x4x4
v4-256 128 4x4x8
v4-512 256 4x8x8
Voir l'API Topology 256 4 x 46
v4-1024 512 8x8x8
v4-1536 768 8x8x12
v4-2048 1 024 8x8x16
Voir l'API Topology 1 024 4x16x16
v4-4096 2 048 8 x 16

API Topology

Pour créer des tranches de pod Cloud TPU avec une topologie personnalisée, l'API TPU gcloud peut être utilisée comme suit:

     $ gcloud compute tpus tpu-vm create tpu-name \
        --zone=us-central2-b \
        --subnetwork=tpusubnet \
        --type=v4 \
        --topology=4x4x16 \
        --version=runtime-version

Formes de topologie

L'image suivante montre trois formes de topologie possibles et leurs paramètres d'indicateur topology associés.

Image

Compatibilité du type de TPU

Vous pouvez modifier le type de TPU en utilisant un autre type de TPU ayant le même nombre de TensorCore ou de puces (par exemple, v3-128 et v4-128), puis exécuter votre script d'entraînement sans modifier le code. Toutefois, si vous passez à un type de TPU comprenant un nombre de puces ou de TensorCore plus important, vous devrez procéder à un réglage et à une optimisation importants. Pour plus d'informations, consultez la page Entraînement sur pods TPU.

Étapes suivantes