Guide des utilisateurs de VM Cloud TPU
Ce guide explique comment configurer un projet Google Cloud Platform 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 lors de leur utilisation.
Les VM Cloud TPU s'exécutent sur la machine hôte TPU (la machine connectée à l'appareil Cloud TPU) et offrent des performances et une facilité d'utilisation nettement supérieures lors de l'utilisation de TPU.
Si vous débutez avec Cloud TPU, consultez le guide du débutant consacré aux TPU.
La version bêta de VM Cloud TPU introduit une nouvelle architecture Cloud TPU. L'architecture actuelle est appelée "nœuds TPU". Pour en savoir plus sur les architectures de nœud Cloud TPU et de VM Cloud TPU, consultez la page Architecture du système.
Configurez un projet GCP.
Après avoir installé la CLI Google Cloud, installez les composants alpha
pour gcloud
à l'aide de la commande suivante:
gcloud components install alpha
Pour en savoir plus sur les composants gcloud
, consultez la page Gérer les composants de la CLI Google Cloud.
Préparer un projet GCP
Connectez-vous à votre compte Google. Si vous n'en possédez pas déjà un, vous devez créer un compte.
Dans Google Cloud Console, sélectionnez ou créez un projet Cloud à partir de 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 Cloud Console.
$ 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 dans Google Cloud Console.
$ gcloud services enable tpu.googleapis.com
Configurer la commande gcloud
Exécutez les commandes suivantes pour configurer gcloud
afin d'utiliser votre projet GCP et d'installer les composants requis pour la VM TPU version bêta.
$ 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 alpha compute tpus tpu-vm create tpu-name \
--zone=zone \
--accelerator-type=v3-8 \
--version=v2-alpha
Champs obligatoires
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: 'v2-8', \
runtime_version:'[runtime_version]', \
network_config: {enable_external_ips: true}}" \
https://tpu.googleapis.com/v2alpha1/projects/[project]/locations/[zone]/nodes?node_id=[node_name]
Champs obligatoires
runtime_version
- Version d'exécution que vous souhaitez utiliser.
project
- Nom du projet GCP 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
- (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 compute firewall-rules create --network=network allow-ssh --allow=tcp:22
- Se connecter en SSH aux VM TPU
$ gcloud alpha 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. Actuellement,
europe-west4-a
etus-central1-a
sont compatibles. project-id
- ID de votre projet GCP.
Champs facultatifs
user
- Vous pouvez choisir le nom d'utilisateur utilisé pour l'authentification lors de la connexion à la VM Cloud TPU via SSH en ajoutant le préfixe $USER@ au nom du TPU, par exemple :
my-email-account@tpu-node-1
. worker
- Pour les pods Cloud TPU, vous pouvez choisir la VM de nœud de calcul à laquelle se connecter en SSH. 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. Par défaut, il s'agit de la valeur
~/.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
- Configurez le tunnel de connexion SSH via Cloud Identity-Aware Proxy pour le transfert TCP. Pour en savoir plus, consultez la page [Présentation du transfert TCP](https://cloud.google.com/iap/docs/tcp-forwarding-overview).
Pour vous connecter en SSH à 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 alpha 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 alpha 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 alpha 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 alpha 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 pouvez supprimer votre Cloud TPU lorsque vous avez fini de l'utiliser.
$ gcloud alpha 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
- Ouvrir une fenêtre Cloud Shell
- Assurez-vous d'avoir installé TensorBoard.
- Exécuter TensorBoard
- Dans Cloud Shell, cliquez sur le bouton "Aperçu sur le Web", sélectionnez "Modifier le port", puis saisissez
6006
. - Cliquez sur "Profil". Une page de présentation s'affiche.
- Accéder au lecteur de traces sous les outils
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 installationgcloud
qui n'est pas gérée via un gestionnaire de packages. Suivez ces étapes pour installergcloud
à 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 alpha compute tpus tpu-vm
affiche les informations suivantes :ERROR: (gcloud.alpha.compute.tpus) Invalid choice: 'tpu-vm'.
- Solution
Cela se produit lorsque le dépôt du composant n'a pas été correctement mis à jour. Pour le vérifier, exécutez la commande
gcloud --version
. La première ligne de la sortie doit être"HEAD"pour la CLI Google Cloud. Si la sortie est différente, la mise à jour n'a pas eu lieu. Si cela se produit, essayez de mettre à jour les composantsgcloud
avec la commande suivante.gcloud components update
Si vous obtenez toujours la même erreur, réinstallez
gcloud
à l'aide de la commande suivante :gcloud components reinstall
- Problème
La commande
gcloud alpha 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.alpha.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
Une erreur s'est peut-être produite lors de la propagation de la clé SSH. Déplacez les clés générées automatiquement vers un emplacement de sauvegarde pour forcer
gcloud
à les recréer :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 champAPIVersion
surV2_ALPHA1
.