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
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
- (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
- 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
- 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
. - Profil de clic, une page de présentation s'affiche
- 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 champAPIVersion
surV2_ALPHA1
.