Créer des VM TPU à démarrage flexible avec Compute Engine

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 les charges de travail d'IA pendant sept jours maximum, sans réservation à long terme. Lorsque vous demandez des VM TPU à démarrage flexible, votre requête reste dans une file d'attente jusqu'à ce que la capacité soit disponible. Une fois provisionnées, les VM TPU s'exécutent pendant la durée que vous avez spécifiée.

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 :
    • TPU7x: us-central1-c
    • TPU v6e: asia-northeast1-b, us-east5-a, us-south1-ai1b
    • TPU v5p: us-east5-a

Les MIG avec des TPU présentent les limites suivantes :

  • Opérations de cycle de vie : vous ne pouvez pas arrêter, démarrer, reprendre ni suspendre les instances TPU. Pour modifier les configurations qui nécessitent un redémarrage ou pour ne plus être facturé, vous devez supprimer les instances.

  • Distribution des zones de MIG régionaux : vous devez définir la forme de distribution cible sur ANY_SINGLE_ZONE.

  • Mises à jour de configuration dans un MIG :

    • Vous ne pouvez pas mettre à jour un MIG qui forme une tranche TPU multi-hôtes en raison de la topologie d'accélérateur définie.
    • Vous pouvez mettre à jour un MIG qui forme des tranches TPU à hôte unique à l'aide des méthodes automatiques ou sélectives. Toutefois, les mises à jour de la tranche TPU à hôte unique ne sont pas compatibles avec l'action de redémarrage (RESTART). Si un redémarrage est nécessaire et que l'action la plus perturbatrice autorisée est le remplacement (REPLACE), le programme de mise à jour remplace l'instance. Sinon, la tentative de mise à jour échoue et génère une erreur.

  • Pour un MIG qui forme une tranche TPU multi-hôtes, les limites suivantes s'appliquent également :

    • Règle de taille cible : vous devez définir le mode de règle de taille cible sur BULK. Une fois ce mode défini, vous ne pouvez plus le modifier.

    • Taille cible : en mode groupé, vous pouvez définir la taille cible sur 0 ou le nombre d'instances nécessaires pour former la topologie d'accélérateur.

    • Règle de charge de travail : vous devez spécifier une règle de charge de travail dans laquelle la topologie d'accélérateur est définie. Une fois la règle de charge de travail définie, vous ne pouvez plus la modifier ni la supprimer du MIG.

  • Fonctionnalités non compatibles : les MIG avec des TPU ne sont pas compatibles avec les fonctionnalités suivantes :

Avant de commencer

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

  • Installez la Google Cloud CLI
  • Créez un Google Cloud projet
  • Activez l'API Compute Engine (compute.googleapis.com)
  • Assurez-vous de disposer des autorisations requises :
    • roles/compute.instanceAdmin.v1
    • roles/iam.serviceAccountUser

Pour en savoir plus, consultez Configurer un Google Cloud projet pour les TPU.

Assurez-vous de disposer d'un quota préemptif suffisant pour utiliser les VM TPU à démarrage flexible. Si votre charge de travail nécessite plus de cœurs que votre allocation actuelle, vous pouvez demander une augmentation de quota. Pour en savoir plus, consultez Quotas Cloud TPU.

Créer des VM TPU à démarrage flexible avec des MIG

Pour utiliser des VM TPU à démarrage flexible, vous devez créer un groupe d'instances géré (MIG) avec une configuration de modèle d'instance spécifique.

Pour obtenir des instructions générales sur la création de VM à démarrage flexible, consultez Créer des VM à démarrage flexible.

Créer des VM TPU à démarrage flexible avec une tranche multi-hôtes

Créer un modèle d'instance

Créez un modèle d'instance en spécifiant le modèle de provisionnement FLEX_START et la durée d'exécution de votre choix.

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START",
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": "DURATION"
        }
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates"

Remplacez les espaces réservés suivants :

Créer une règle de charge de travail

La commande suivante crée une règle de charge de travail. Cette étape est facultative pour les tranches à hôte unique.

gcloud

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --accelerator-topology=TOPOLOGY \
  --region=REGION

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WORKLOAD_POLICY_NAME",
    "workloadPolicy": {
      "type": "HIGH_THROUGHPUT",
      "acceleratorTopology": "TOPOLOGY"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"

Remplacez les espaces réservés suivants :

Créer le MIG

Créez le MIG à l'aide du modèle.

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --workload-policy=WORKLOAD_POLICY_URL \
    --default-action-on-vm-failure=do-nothing \
    --target-size-policy-mode=bulk

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": SIZE,
    "targetSizePolicy": {
      "mode": "BULK"
    },
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "instanceLifecyclePolicy": {
      "defaultActionOnFailure": "DO_NOTHING"
    },
    "resourcePolicies": {
      "workloadPolicy": "WORKLOAD_POLICY_URL"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Remplacez les espaces réservés suivants :

  • PROJECT_ID : ID de votre Google Cloud projet.
  • MIG_NAME : nom de votre MIG.
  • ZONE : zone de votre MIG.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l' ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :
    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_ID
  • SIZE : nombre d'instances à créer.
  • WORKLOAD_POLICY_URL : URL de la règle de charge de travail que vous souhaitez utiliser pour créer des instances dans le MIG. Exemple : projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

Créer des VM TPU à démarrage flexible avec des tranches à hôte unique

Créer un modèle d'instance

Créez un modèle d'instance en spécifiant le modèle de provisionnement FLEX_START et la durée d'exécution de votre choix.

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START",
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": "DURATION"
        }
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates"

Remplacez les espaces réservés suivants :

Créer une règle de charge de travail

La commande suivante crée une règle de charge de travail. Cette étape est facultative pour les tranches à hôte unique.

gcloud

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --region=REGION

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WORKLOAD_POLICY_NAME",
    "workloadPolicy": {
      "type": "HIGH_THROUGHPUT"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"

Remplacez les espaces réservés suivants :

Créer le MIG

Créez le MIG à l'aide du modèle.

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --workload-policy=WORKLOAD_POLICY_URL

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "resourcePolicies": {
      "workloadPolicy": "WORKLOAD_POLICY_URL"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Remplacez les espaces réservés suivants :

  • PROJECT_ID : ID de votre Google Cloud projet.
  • MIG_NAME : nom de votre MIG.
  • ZONE : zone de votre MIG.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l' ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :
    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_ID
  • SIZE : nombre d'instances à créer.
  • WORKLOAD_POLICY_URL : URL de la règle de charge de travail que vous souhaitez utiliser pour créer des instances dans le MIG. Exemple : projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.