Types et zones des TPU

Aperçu

Lorsque vous créez des nœuds TPU pour traiter vos charges de travail de machine learning, vous devez sélectionner un type de TPU. Le type de TPU définit la version de TPU, le nombre de cœurs de TPU et la quantité de mémoire de TPU disponible pour votre charge de travail de machine learning.

Par exemple, le type de TPU v2-8 définit un nœud TPU avec 8 cœurs TPU v2 et 64 Gio de mémoire TPU totale. Le type de TPU v3-2048 définit un nœud TPU avec 2 048 cœurs TPU v3 et 32 Tio de mémoire TPU totale.

Pour en savoir plus sur les différences matérielles entre les versions et les configurations de TPU, consultez la documentation sur l'architecture du système.

Pour connaître les tarifs des types de TPU dans chaque région, reportez-vous à la page Tarifs.

Vous pouvez remplacer le type de TPU par un autre type de TPU doté du même nombre de cœurs (par exemple, v2-8 et v3-8) et exécuter votre script d'entraînement sans modifier le code. Toutefois, si vous passez à un type de TPU doté d'un nombre de cœurs plus élevé ou plus faible, vous devrez procéder à un travail significatif de réglage et d'optimisation. Pour plus d'informations, consultez la page Entraînement sur pods TPU.

Types et zones des TPU

Les principales différences entre les types de TPU concernent le prix, les performances, la capacité de mémoire et la disponibilité de la zone.

Google Cloud Platform définit l'emplacement géographique des ressources de calcul physiques à l'aide de régions subdivisées en zones. Par exemple, la région us-central1 indique une région proche du centre géographique des États-Unis qui comporte les zones suivantes : us-central1-a, us-central1-b, us-central1-c et us-central1-f. Lorsque vous créez un nœud TPU, spécifiez la zone dans laquelle vous souhaitez le créer. Consultez le document Ressources globales, régionales et zonales de Compute Engine pour en savoir plus sur les ressources régionales et zonales.

Vous pouvez créer votre configuration avec les types de TPU suivants :

États-Unis

Type de TPU (v2) Cœurs de TPU v2 Mémoire de TPU totale Région/Zone
v2-8 8 64 Gio us-central1-b
us-central1-c
us-central1-f
v2-32 32 256 Gio us-central1-a
v2-128 128 1 Tio us-central1-a
v2-256 256 2 Tio us-central1-a
v2-512 512 4 Tio us-central1-a
Type de TPU (v3) Cœurs de TPU v3 Mémoire de TPU totale Zones disponibles
v3-8 8 128 Gio us-central1-a
us-central1-b
us-central1-f

Europe

Type de TPU (v2) Cœurs de TPU v2 Mémoire de TPU totale Région/Zone
v2-8 8 64 Gio europe-west4-a
v2-32 32 256 Gio europe-west4-a
v2-128 128 1 Tio europe-west4-a
v2-256 256 2 Tio europe-west4-a
v2-512 512 4 Tio europe-west4-a
Type de TPU (v3) Cœurs de TPU v3 Mémoire de TPU totale Zones disponibles
v3-8 8 128 Gio europe-west4-a
v3-32 32 512 Gio europe-west4-a
v3-64 64 1 Tio europe-west4-a
v3-128 128 2 Tio europe-west4-a
v3-256 256 4 Tio europe-west4-a
v3-512 512 8 Tio europe-west4-a
v3-1024 1 024 16 Tio europe-west4-a
v3-2048 2 048 32 Tio europe-west4-a

Asie-Pacifique

Type de TPU (v2) Cœurs de TPU v2 Mémoire de TPU totale Région/Zone
v2-8 8 64 Gio asia-east1-c

Les types de TPU doté d'un grand nombre de cœurs ne sont disponibles qu'en quantités limitées. Les types de TPU comprenant un plus faible nombre de cœurs sont plus généralement disponibles.

Identifier le meilleur compromis prix/performances

Pour vous aider à choisir le type de TPU à utiliser, vous pouvez effectuer des tests à l'aide d'un tutoriel Cloud TPU afin d'entraîner un modèle semblable à votre application.

Exécutez le tutoriel pour 5 à 10 % du nombre de pas que vous utiliserez pour exécuter l'entraînement complet sur un type de TPU v2-8 et un type de TPU v3-8. Le résultat vous indique le temps nécessaire à l'exécution de ce nombre de pas sur votre modèle pour chaque type de TPU.

Les performances des différents types de TPU évoluent de façon linéaire. Ainsi, si vous connaissez le temps nécessaire à l'exécution d'une tâche sur un type de TPU v2-8 ou v3-8, vous pouvez estimer le temps que cette tâche prendra avec un type de TPU plus grand doté de davantage de cœurs.

Par exemple, si un type de TPU v2-8 met 60 minutes pour 10 000 étapes, un nœud v2-32 devrait effectuer la même tâche en 15 minutes environ.

Lorsque vous connaissez la durée d'entraînement approximative de votre modèle sur différents types de TPU, vous pouvez comparer le coût VM/TPU par rapport à la durée d'entraînement afin de décider du meilleur compromis.

Pour déterminer la différence de coût entre les différents types de TPU pour Cloud TPU et la VM Compute Engine associée, consultez la page des tarifs de Cloud TPU.

Spécifier le type de TPU

Quel que soit le framework utilisé, TensorFlow, PyTorch ou JAX, vous spécifiez le type de TPU à l'aide du paramètre accelerator-type lors du lancement du TPU. La commande à utiliser varie selon que vous utilisez des VM TPU ou des nœuds TPU. Des exemples de commandes sont présentés ci-dessous.

VM TPU

$ gcloud alpha compute tpus tpu-vm create tpu-name \
--zone=zone \
--accelerator-type=v3-8 \
--version=v2-alpha

Description des options de commande

zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Type du Cloud TPU à créer.
version
Version d'exécution de Cloud TPU.

Nœud TPU

$ gcloud compute tpus execution-groups create \
--name=tpu-name \
--zone=zone \
--tf-version=2.5.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8

Description des options de commande

name
Nom du Cloud TPU à créer.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
tf-version
Pour TensorFlow uniquement : version de Tensorflow que la commande gcloud installe sur votre VM.
machine-type
Type de machine de la VM Compute Engine à créer.
accelerator-type
Type du Cloud TPU à créer.
image-family
PyTorch uniquement : défini sur torch-xla
image-project
PyTorch uniquement : défini sur ml-images
boot-disk-size
Taille du disque de démarrage de la VM.
scopes
PyTorch uniquement : défini sur https://www.googleapis.com/auth/cloud-platform

Pour en savoir plus sur la commande gcloud, consultez la documentation de référence de gcloud.

Étape suivante