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

Guide des utilisateurs de VM Cloud TPU

Ce guide explique comment configurer un projet Google Cloud pour utiliser des VM Cloud TPU. Il décrit les commandes permettant d'utiliser les VM Cloud TPU et les solutions aux problèmes courants que vous pouvez rencontrer lorsque vous commencez à utiliser des VM Cloud TPU.

Les VM Cloud TPU s'exécutent sur la machine hôte TPU (la machine connectée à l'appareil Cloud TPU) et offrent de meilleures performances et une meilleure facilité d'utilisation lors de l'utilisation de TPU.

Si vous ne connaissez pas encore Cloud TPU, consultez les guides de démarrage rapide de Cloud TPU.

Si vous envisagez d'exécuter un pod Cloud TPU avec une VM TPU, consultez la page Entraînement sur les pods TPU.

La VM Cloud TPU a introduit une nouvelle architecture Cloud TPU. Pour en savoir plus sur les architectures Cloud TPU, consultez la section Architecture système.

Configurer un projet Google Cloud

Préparer un projet Google Cloud

Connectez-vous à votre compte Google. Si vous n'en possédez pas déjà un, vous devez créer un compte. Dans la console Google Cloud, sélectionnez ou créez un projet Cloud sur la page de sélection du projet. Assurez-vous que la facturation est activée pour votre projet. Définissez l'ID de votre projet à l'aide de gcloud dans Cloud Shell. L'ID de projet est le nom de votre projet affiché dans la console Google Cloud.

$ gcloud config set project project-id

Activer l'API Cloud TPU

Activez l'API Cloud TPU à l'aide de la commande gcloud suivante dans Cloud Shell. Vous pouvez également l'activer à partir de la console Google Cloud.

$ gcloud services enable tpu.googleapis.com

Configurer la commande gcloud

Exécutez les commandes suivantes pour configurer gcloud afin qu'il utilise votre projet Google Cloud et installe les composants nécessaires à l'aperçu de la VM TPU.

$ gcloud config set account your-email-account
$ gcloud config set project your-project

Gérer les TPU

Vous pouvez gérer la VM Cloud TPU à l'aide de gcloud ou curl. Pour en savoir plus, consultez la page Gérer les Cloud TPU.

Créer une VM Cloud TPU avec gcloud

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=zone \
  --accelerator-type=4-8 \
  --version=tpu-vm-tf-2.11.0

Champs obligatoires

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

Indicateur facultatif

shielded-secure-boot
Indique que les instances de TPU sont créées avec le démarrage sécurisé activé. Lorsque cet indicateur est utilisé, les VM TPU sont créées en tant qu'instances de VM protégées. Consultez Qu'est-ce qu'une VM protégée ? pour en savoir plus.

Lors de la création d'une VM TPU, vous pouvez spécifier un script de démarrage à l'aide de l'option --metadata startup-script. Exemple :

$ gcloud compute tpus tpu-vm create tpu-name \
--zone=zone \
--accelerator-type=v4-8 \
--version=tpu-vm-tf-2.10.0-v4 \
--metadata startup-script=your-script

Un script de démarrage est exécuté chaque fois que la VM TPU est provisionnée, de même qu'en cas de redémarrage de la VM TPU en raison d'un événement de maintenance.

Créer une VM Cloud TPU avec curl

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
  runtime_version:'tpu-vm-tf-2.10.0-v4', \
  network_config: {enable_external_ips: true}, \
  shielded_instance_config: { enable_secure_boot: true }}" \
  https://tpu.googleapis.com/v2/projects/project-id/locations/us-central1-b/nodes?node_id=node_name

Champs obligatoires

runtime_version
Version d'exécution de Cloud TPU que vous souhaitez utiliser.
project
Nom de votre projet Google Cloud enregistré.
zone
Zone dans laquelle vous créez votre Cloud TPU.
node_name
Nom de la VM TPU que vous créez.

Se connecter à une VM Cloud TPU

  1. (Facultatif) Configurer un pare-feu pour SSH

Le réseau par défaut est préconfiguré pour autoriser l'accès SSH à toutes les VM. Si vous n'utilisez pas le réseau par défaut ou si les paramètres réseau par défaut ont été modifiés, vous devrez peut-être activer explicitement l'accès SSH en ajoutant une règle de pare-feu :

$ gcloud CLI compute firewall-rules create --network=network allow-ssh --allow=tcp:22
  1. Se connecter à la VM TPU à l'aide de SSH
$ gcloud compute tpus tpu-vm ssh tpu-name --zone zone --project project-id

Champs obligatoires

tpu_name
Nom de la VM TPU à laquelle vous vous connectez.
zone
Zone dans laquelle vous créez votre Cloud TPU.
project-id
Votre ID de projet Google Cloud.

Champs facultatifs

user
Vous pouvez spécifier le nom d'utilisateur utilisé pour l'authentification lors de la connexion à la VM Cloud TPU via SSH. Ajoutez le préfixe $USER@ au nom du TPU, par exemple : my-email-account@tpu-node-1.
worker
Pour les pods Cloud TPU, vous pouvez spécifier la VM de calcul à laquelle vous souhaitez vous connecter. La valeur par défaut est le nœud de calcul 0, la première VM associée au pod TPU.
ssh-key-file
Chemin d'accès au fichier de clé SSH. Le chemin par défaut est ~/.ssh/google_compute_engine.
internal-ip
Connectez-vous aux VM TPU à l'aide d'une adresse IP interne. Pour que cette connexion fonctionne, vous devez configurer vos réseaux et votre pare-feu pour autoriser les connexions SSH à l'adresse IP interne de la VM TPU à laquelle vous souhaitez vous connecter.
command
Commande à exécuter sur la VM TPU. La commande est exécutée sur la VM TPU cible, puis se ferme.
tunnel-through-iap
Tunnelisez la connexion SSH à l'aide d'Identity-Aware Proxy pour le transfert TCP. Pour en savoir plus, consultez Présentation du transfert TCP.

Pour vous connecter à d'autres VM TPU associées au pod TPU, ajoutez --worker ${WORKER_NUMBER} dans la commande, où WORKER_NUMBER est un index basé sur 0.

Répertorier les ressources Cloud TPU

Vous pouvez répertorier tous vos Cloud TPU dans une zone spécifiée.

$ gcloud compute tpus tpu-vm list --zone=zone

Champs obligatoires

zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.

Cette commande répertorie les ressources Cloud TPU dans la zone spécifiée. Si aucune ressource n'est actuellement configurée, la sortie affiche uniquement les tirets de la VM et du TPU.

Récupérer des informations sur un Cloud TPU

Vous pouvez récupérer des informations sur un Cloud TPU spécifique à l'aide de la commande suivante :

$ gcloud compute tpus tpu-vm describe tpu-name \
  --zone=zone

Champs obligatoires

tpu-name
Nom du Cloud TPU à créer.
zone
Zone dans laquelle votre Cloud TPU a été créé.

Arrêter vos ressources Cloud TPU

Vous pouvez arrêter un seul Cloud TPU à l'aide de la commande suivante. Vous ne pouvez pas arrêter un pod TPU.

$ gcloud compute tpus tpu-vm stop tpu-name \
  --zone=zone

Champs obligatoires

tpu-name
Nom de la ressource Cloud TPU à arrêter.
zone
Zone dans laquelle vous avez créé votre Cloud TPU.

Démarrer des ressources Cloud TPU

Si votre Cloud TPU a été arrêté, vous pouvez le redémarrer à l'aide de la commande suivante :

$ gcloud compute tpus tpu-vm start tpu-name --zone  zone

Description des options de commande

tpu-name
Nom de la ressource Cloud TPU à démarrer.
zone
Zone dans laquelle la ressource Cloud TPU a été créée.

Supprimer la VM et les ressources Cloud TPU

Vous pourrez supprimer votre Cloud TPU lorsque vous n'en aurez plus besoin.

$ gcloud compute tpus tpu-vm delete tpu-name \
  --zone=zone

Champs obligatoires

zone
Zone dans laquelle votre Cloud TPU a été créé.

Capturer les métriques de performances

Vous pouvez capturer un profil de performances à l'aide d'un script de ligne de commande ou de TensorBoard. Pour obtenir des instructions sur l'installation de TensorBoard, consultez la page Configuration de TensorBoard.

Pour les modèles Tensorflow, vous pouvez capturer automatiquement les données de profil à l'aide de la méthode de rappel de profilage TensorFlow standard.

Pour capturer manuellement les données de profil des modèles TensorFlow, exécutez la commande suivante sur votre VM TPU :

$ python3 -c "import tensorflow as tf; tf.profiler.experimental.client.trace('grpc://localhost:port', 'gs://model-dir', 1000)"

Pour capturer des données de profil pour les modèles PyTorch à l'aide de la ligne de commande, exécutez la commande suivante sur votre VM TPU :

$ python3 -c "import torch_xla.debug.profiler as xp; xp.trace('localhost:port', '/tmp/tb', 1000)"

Pour savoir comment capturer des données de profil pour les modèles JAX, consultez la page Profiler des programmes JAX.

Afficher les données de profil

  1. Ouvrir une fenêtre Cloud Shell
  2. Assurez-vous d'avoir installé TensorBoard.
  3. Exécuter TensorBoard
  4. Dans Cloud Shell, cliquez sur le bouton "Aperçu sur le Web", sélectionnez "Modifier le port", puis saisissez 6006.
  5. Profil de clic, une page de présentation s'affiche
  6. Accéder au lecteur "tools.trace"

Demander une augmentation de quota de TPU

Cloud TPU alloue le quota par défaut de TPU pour votre projet. Si vous avez besoin d'un quota supérieur, consultez la page Demander une augmentation de quota.

Générer et afficher des informations de profil

Vous pouvez générer des informations de profil et utiliser TensorBoard pour visualiser les métriques d'entraînement.

Résoudre les problèmes de configuration de gcloud

Problème

gcloud components update affiche le message d'erreur suivant :

ERROR: (gcloud.components.update)
You cannot perform this action because the gcloud CLI component manager
is disabled for this installation.
Solution

Pour utiliser gcloud avec une VM TPU, vous devez utiliser une installation Google Cloud CLI qui n'est pas gérée via un gestionnaire de packages. Pour installer Google Cloud CLI à partir du code source:

sudo apt-get remove google-cloud-sdk
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-311.0.0-linux-x86_64.tar.gz
tar -xzf google-cloud-sdk-311.0.0-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh
source ~/.bashrc
Problème

L'exécution des commandes commençant par gcloud compute tpus tpu-vm affiche les informations suivantes :

ERROR: (gcloud.compute.tpus) Invalid choice: 'tpu-vm'.
Solution

Cette erreur se produit lorsque le dépôt du composant n'a pas été correctement mis à jour. Si cette erreur s'affiche, mettez à jour les composants gcloud CLI à l'aide de la commande suivante:

gcloud CLI components update

Si vous obtenez toujours la même erreur, essayez de réinstaller gcloud CLI à l'aide de la commande suivante:

gcloud CLI components reinstall
Problème

La commande gcloud compute tpus tpu-vm ssh ${TPU_NAME} --zone ${ZONE} affiche le message d'erreur suivant :

Waiting for SSH key to propagate.
ssh: connect to host 34.91.136.59 port 22: Connection timed out
ssh: connect to host 34.91.136.59 port 22: Connection timed out
ssh: connect to host 34.91.136.59 port 22: Connection timed out
ERROR: (gcloud.compute.tpus.tpu-vm.ssh) Could not SSH into the instance.  It is possible that your SSH key has not propagated to the instance yet. Try running this command again.  If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.
Solution

Forcez gcloud CLI à recréer les clés SSH générées en les déplaçant vers un emplacement de sauvegarde:

mv ~/.ssh/google_compute_engine ~/.ssh/old-google_compute_engine
mv ~/.ssh/google_compute_engine.pub ~/.ssh/old-google_compute_engine.pub

Questions fréquentes

Puis-je utiliser les versions V1Alpha1 et V1 des API pour gérer les VM Cloud TPU ?
La méthode Get/List est autorisée, mais les mutations ne sont disponibles que dans la version V2Alpha1 de l'API.
Comment savoir si les TPU utilisent des VM Cloud TPU ?
Effectuez un appel GetNode sur le TPU, puis définissez le champ APIVersion sur V2_ALPHA1.