Demander des VM TPU à démarrage flexible

Les VM TPU à démarrage flexible, optimisées par le planificateur de charges de travail dynamiques, offrent un moyen flexible et économique d'accéder aux ressources TPU pour charges de travail d'IA. Ces VM vous permettent de provisionner des TPU de façon dynamique selon vos besoins, pendant sept jours maximum, sans réservation à long terme ni gestion complexe des quotas. Avec les VM TPU à démarrage flexible, vous envoyez une requête de provisionnement de TPU qui persiste jusqu'à ce que la capacité devienne disponible. Une fois la capacité disponible, les VM TPU s'exécutent pendant la durée que vous avez spécifiée dans votre requête.

Les VM TPU à démarrage flexible conviennent bien aux expérimentations rapides, aux tests à petite échelle, au provisionnement dynamique de TPU pour les charges de travail d'inférence, au réglage précis des modèles et aux exécutions de charges de travail qui durent moins de sept jours. Pour en savoir plus sur les autres options de consommation de TPU, consultez Options de consommation de Cloud TPU.

Vous pouvez supprimer vos ressources TPU à tout moment pour mettre fine à la facturation. Pour en savoir plus sur la tarification des TPU, consultez Tarifs de Cloud TPU.

Limites

Les VM TPU à démarrage flexible présentent les limites suivantes :

  • Vous ne pouvez demander des VM TPU à démarrage flexible que pour une durée maximale de sept jours.
  • Vous pouvez demander les versions et les zones Cloud TPU suivantes :
  • Vous devez utiliser l'API des ressources en file d'attente pour pouvoir utiliser les VM TPU à démarrage flexible.

Avant de commencer

Avant de demander des VM TPU à démarrage flexible, vous devez :

  • Installez la Google Cloud CLI
  • Créez un projet Google Cloud
  • Activez l'API Cloud TPU

Pour en savoir plus, consultez Configurer l'environnement Cloud TPU.

Vous devez également vous assurer de disposer d'un quota préemptif suffisant pour utiliser les VM TPU à démarrage flexible. S'il vous faut davantage de cœurs TPU que la quantité accordée par le quota par défaut, vous devez demander une allocation de quota plus élevée. Pour en savoir plus sur les quotas par défaut et la procédure à suivre pour demander des quotas supplémentaires, consultez Quotas Cloud TPU.

Demander des VM TPU à démarrage flexible

Les VM TPU à démarrage flexible utilisent l'API des ressources en file d'attente pour demander des ressources TPU via une file d'attente. Lorsque la ressource demandée devient disponible, elle est attribuée à votre projet Google Cloud et vous bénéficiez dès lors d'un accès exclusif immédiat. Une fois la durée d'exécution demandée écoulée, les VM TPU sont supprimées et la ressource mise en file d'attente passe à l'état SUSPENDED. Pour en savoir plus sur les ressources en file d'attente, consultez Gérer des ressources en file d'attente.

Pour demander des VM TPU à démarrage flexible, utilisez la commande gcloud alpha compute tpus queued-resources create avec le flag --provisioning-model défini sur flex-start et le flag --max-run-duration défini sur la durée d'exécution que vous souhaitez pour vos TPU.

gcloud alpha compute tpus queued-resources create QUEUED_RESOURCE_ID \
    --zone=ZONE \
    --accelerator-type=ACCELERATOR_TYPE \
    --runtime-version=RUNTIME_VERSION \
    --node-id=NODE_ID \
    --provisioning-model=flex-start \
    --max-run-duration=RUN_DURATION

Remplacez les espaces réservés suivants :

  • QUEUED_RESOURCE_ID : ID attribué par l'utilisateur pour la requête de ressource en file d'attente.
  • ZONE : zone dans laquelle créer la VM TPU.
  • ACCELERATOR_TYPE : spécifie la version et la taille du Cloud TPU à créer. Pour en savoir plus sur les types d'accélérateurs compatibles avec chaque version de TPU, consultez Versions de TPU.
  • RUNTIME_VERSION : version du logiciel Cloud TPU.
  • NODE_ID : ID attribué par l'utilisateur au TPU, créé lorsque la requête de ressource en file d'attente est allouée.
  • RUN_DURATION : durée d'exécution des TPU. Exprimez la durée en nombre de jours, d'heures, de minutes et de secondes, suivis respectivement de d, h, m et s. Par exemple, spécifiez 72h pour définir une durée de 72 heures, ou 1d2h3m4s pour une durée d'un jour, deux heures, trois minutes et quatre secondes. La valeur maximale est de sept jours.

Vous pouvez personnaliser davantage votre requête de ressources en file d'attente pour qu'elle s'exécute à des heures spécifiques. Vous devez pour cela utiliser des flags supplémentaires :

  • --valid-after-duration : durée avant laquelle le TPU ne doit pas être provisionné.
  • --valid-after-time : heure avant laquelle le TPU ne doit pas être provisionné.
  • --valid-until-duration : durée de validité de la requête. Si la requête n'a pas été traitée dans ce délai, elle expire et passe à l'état FAILED.
  • --valid-until-time : heure de fin de validité de la requête. Si la requête n'a pas été traitée d'ici là, elle expire et passe à l'état FAILED.

Pour en savoir plus sur les flags facultatifs, consultez la documentation de gcloud alpha compute tpus queued-resources create.

Obtenir l'état d'une demande de VM TPU à démarrage flexible

Pour surveiller l'état de votre demande de VM TPU à démarrage flexible, vous devez utilisez l'API de ressources en file d'attente qui vous permettra d'obtenir l'état de la requête de ressource en file d'attente. Pour cela, utilisez la commande gcloud alpha compute tpus queued-resources describe :

gcloud alpha compute tpus queued-resources describe QUEUED_RESOURCE_ID \
    --zone ZONE

Une ressource en file d'attente peut avoir l'un des états suivants :

  • WAITING_FOR_RESOURCES : la requête a passé la validation initiale et a été ajoutée à la file d'attente.
  • PROVISIONING : la requête a été sélectionnée dans la file d'attente et les VM TPU sont en cours de création.
  • ACTIVE : la requête a été traitée et les VM TPU sont prêtes.
  • FAILED : impossible de traiter la requête. Pour plus d'informations, utilisez la commande describe.
  • SUSPENDING : les ressources associées à la requête sont en cours de suppression.
  • SUSPENDED : les ressources associées à la requête ont été supprimées.

Pour en savoir plus, consultez Récupérer des informations sur l'état et le diagnostic d'une requête de ressource en file d'attente.

Surveiller la durée d'exécution des VM TPU à démarrage flexible

Vous pouvez surveiller la durée d'exécution des VM TPU à démarrage flexible en vérifiant le code temporel d'arrêt du TPU :

  1. Récupérez les détails de votre requête de ressource en file d'attente.
  2. Choisissez l'une des options suivantes selon que vos TPU ont été créés ou non :

    • Si la ressource en file d'attente attend des ressources : Dans le résultat, consultez le champ maxRunDuration. Ce champ indique la durée d'exécution des TPU une fois qu'ils sont créés.

    • Si les TPU associés à la ressource en file d'attente ont été créés : Dans le résultat, consultez le champ terminationTimestamp listé pour chaque nœud de la ressource en file d'attente. Ce champ indique quand le TPU sera arrêté.

Supprimer une ressource en file d'attente

Vous pouvez supprimer une requête de ressource en file d'attente et les TPU associés à la requête en supprimant d'abord la requête de ressource en file d'attente, puis en transmettant le flag --force à la commande queued-resources delete :

gcloud alpha compute tpus queued-resources delete QUEUED_RESOURCE_ID \
    --force

Si vous supprimez le TPU directement à l'aide de la commande gcloud compute tpus tpu-vm delete, vous devez également supprimer la ressource en file d'attente, comme indiqué dans l'exemple suivant. Lorsque vous supprimez le TPU, la requête de ressource en file d'attente passe à l'état SUSPENDED, après quoi vous pouvez la supprimer.

Pour supprimer un TPU, utilisez la commande gcloud compute tpus tpu-vm delete :

gcloud compute tpus tpu-vm delete NODE_ID \
    --zone ZONE

Ensuite, pour supprimer la ressource en file d'attente, utilisez la commande gcloud alpha compute tpus queued-resources delete :

gcloud alpha compute tpus queued-resources delete QUEUED_RESOURCE_ID \
    --zone ZONE

Pour en savoir plus, consultez Supprimer une requête de ressource en file d'attente.