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

Un modèle qui s'exécute sur un type de TPU doit pouvoir s'exécuter sur un autre type de TPU sans aucun changement au code TensorFlow. Par exemple, le code v2-8 peut être exécuté sans modifications sur un code v3-8. Toutefois, la transition d'un type de TPU v2-8 ou v3-8 à un type de TPU plus grand, tel que v2-32 ou v3-128 nécessite un important travail d'ajustement et d'optimisation. Pour en savoir plus, consultez la page Entraîner sur des 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, vous spécifiez la zone dans laquelle vous souhaitez le créer. Reportez-vous au document Ressources globales, régionales et zonales de Compute Engine pour en savoir plus sur les ressources régionales et zonales.

Vous pouvez configurer vos nœuds TPU avec les types de TPU suivants :

US

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.

Comme les performances sur les types de TPU évoluent de manière linéaire, 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 Exécution de votre modèle sur un type de TPU plus grand avec davantage de cœurs

Par exemple, si un type de TPU v2-8 met 60 minutes pour 10 000 pas, 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

Vous spécifiez un type de TPU à l'aide du paramètre accelerator-type lorsque vous lancez un TPU." La commande que vous utilisez varie selon que vous utilisez des VM TPU ou des nœuds TPU. Pour plus d'informations, consultez la page Architecture du système.

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 de Cloud TPU à créer.
version
La 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
Tensorflow uniquement, la version de Tensorflow la commande gcloud est installée sur votre VM.
machine-type
Type de machine de la VM Compute Engine à créer.
accelerator-type
Type de 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
Pychor uniquement, définie 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