TPU préemptifs

Les TPU préemptifs coûtent beaucoup moins cher que les TPU non préemptifs. Le service Cloud TPU peut préempter (ou arrêter) ces TPU à tout moment si des ressources TPU supplémentaires sont nécessaires.

Si vous créez une VM TPU préemptive, utilisez la commande gcloud. Si vous créez un nœud TPU préemptif, vous pouvez utiliser la commande gcloud ou la console. Pour en savoir plus sur les différences entre les VM TPU et les nœuds TPU, consultez la page Architecture du système.

Créer une VM TPU préemptive

gcloud

$ gcloud compute tpus tpu-vm create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.16.1-pjrt \
  --preemptible
  

où :

  • demo-tpu correspond au nom du TPU.
  • --accelerator-type spécifie le type de TPU.
  • --version spécifie la version du logiciel de VM TPU à installer.
  • --preemptible permet à Cloud TPU de préempter le TPU.

Créer un nœud TPU préemptif

Console

  1. Dans l'onglet Compute Engine de la page principale, accédez à la page TPU.
  2. Cliquez sur CRÉER UN NŒUD TPU pour ouvrir la page de création de nœud TPU.
  3. Attribuez un nom à votre nœud TPU.
  4. Sélectionnez la zone dans laquelle créer le nœud TPU.
  5. Sélectionnez un type de TPU pour votre nœud TPU.
  6. Cliquez sur Activer la préemption pour ce nœud pour rendre le nœud TPU préemptif.
  7. Sélectionnez la version de TensorFlow ou de PyTorch à installer sur votre VM.

gcloud

$ gcloud compute tpus execution-groups create \
  --name=demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --tf-version=2.12.0 \
  --preemptible
  

où :

  • demo-tpu correspond au nom du TPU.
  • `--accelerator-type spécifie le type de TPU.
  • --tf-version spécifie la version de Tensorflow ou de PyTorch à installer sur la VM.
  • --preemptible permet à Cloud TPU de préempter le TPU.

Avec les nœuds TPU, l'état de préemption d'un TPU est indépendant de celui de votre instance de VM.

Prix et quota applicables aux TPU préemptifs

Le prix des TPU préemptifs est nettement inférieur à celui des TPU normaux. Pour en savoir plus, consultez la page des tarifs. Les TPU préemptés dans la minute qui suit leur création ne vous sont pas facturés.

Le quota applicable aux TPU préemptifs est généralement plus élevé et est distinct du quota applicable aux TPU normaux. Consultez la page de quota.

Détecter si un TPU a été préempté

Utilisez la commande gcloud suivante pour vérifier si le service Cloud TPU a préempté votre TPU:

Répertoriez les TPU disponibles :

VM TPU

gcloud compute tpus tpu-vm list --zone=us-central1-b

Nœud TPU

(vm)$ gcloud compute tpus list --zone=us-central1-b

Le résultat de la commande affiche les détails des TPU créés dans votre projet. Si le TPU a été préempté, l'état passe de READY à PREEMPTED.

Exemple :

NAME       ZONE           ACCELERATOR_TYPE  NETWORK_ENDPOINT   NETWORK  RANGE          STATUS
demo-tpu   us-central1-b  v2-8              10.240.1.2:8470    default  10.240.1.0/29  PREEMPTED

VM préemptives et TPU préemptifs (nœuds TPU uniquement)

Comme décrit dans le guide de démarrage rapide de votre framework, vous avez besoin d'une machine virtuelle (VM) Compute Engine pour vous connecter à un TPU. Notez que l'état préemptif du TPU est indépendant du statut préemptif de la VM. Vous pouvez définir votre TPU comme préemptif et la VM comme non préemptive, ou inversement. Vous pouvez également définir les deux comme étant préemptifs.

La combinaison la plus probable est un TPU préemptif et une VM non préemptive. Notez les points suivants :

  • Les frais associés à la VM sont susceptibles d'être faibles par rapport aux frais du TPU. Les frais de VM dépendent du type de machine que vous utilisez. Consultez la page des tarifs pour un exemple simple des coûts relatifs.
  • Cloud TPU ne coordonne pas la préemption de la VM et celle du TPU. Si vous les définissez tous deux comme préemptifs, la VM et le TPU peuvent être préemptés à des moments différents.
  • Si Compute Engine préempte votre VM, le TPU vous sera quand même facturé (sauf si le TPU est lui-même préempté). Veuillez noter que le TPU est inactif lorsque la VM est préemptée.
  • Les instances préemptives, à la fois des VM Compute Engine et des instances Cloud TPU, sont toujours préemptées après 24 heures d'exécution. Certaines actions réinitialisent ce délai.

Détecter si une instance de VM a été préemptée (nœuds TPU uniquement)

Pour vérifier si l'instance de VM a été préemptée, utilisez la commande gcloud compute operations list pour obtenir la liste des opérations système récentes comme suit : Ajoutez un filtre name pour n'afficher que les instances en cours d'exécution ou ajoutez le filtre operationType pour n'afficher que les ressources préemptées. Par exemple, utilisez la commande suivante pour n'afficher que les instances portant le nom d'instance spécifié :

$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"

L'exemple suivant n'affiche que les ressources qui ont été préemptées :

$ gcloud compute operations list --filter="operationType=compute.instances.preempted"

Pour plus de détails, consultez le guide Compute Engine.

Concevoir votre application de machine learning pour qu'elle s'exécute sur des TPU préemptifs

Vous devez vous assurer que votre application est résiliente à tout redémarrage de la VM et du TPU. Pour cela, enregistrez régulièrement des points de contrôle pour le modèle et configurez votre application pour qu'elle restaure le dernier point de contrôle en cas de redémarrage.