Demander des VM Spot TPU

Les VM Spot offrent des capacités inutilisées à des tarifs très réduits. Bien qu'elles soient préemptives à tout moment, elles n'ont pas de durée d'exécution maximale, contrairement aux TPU préemptifs. Pour redémarrer une instance de VM Spot ou un MIG, vous devez la supprimer, puis la recréer.

Pour en savoir plus sur les VM Spot, consultez la documentation Compute Engine sur les VM Spot.

Créer des VM Spot TPU

Vous pouvez créer des VM Spot TPU en tant qu'instances individuelles ou dans un groupe d'instances géré (MIG).

Pour créer des VM Spot TPU avec un MIG, spécifiez le modèle de provisionnement Spot dans votre modèle d'instance.

  1. Créez un modèle d'instance :

    gcloud

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --project=PROJECT_ID \
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --instance-termination-action=STOP \
        --provisioning-model=SPOT \
        --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT
    

    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": "SPOT",
            "instanceTerminationAction": "STOP"
        },
        "networkInterfaces": [
            {
            "network": "global/networks/default"
            }
        ]
        }
    }' \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
    

    Remplacez les espaces réservés suivants :

  2. Créez 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 :

    • PROJECT_ID : ID de votre Google Cloud projet.
    • WORKLOAD_POLICY_NAME : nom de votre règle de charge de travail.
    • TOPOLOGY: topologie des VM TPU, par exemple 4x4x8. Pour en savoir plus sur la topologie de chaque version de TPU, consultez Versions de TPU.
    • REGION : la région de votre règle de charge de travail.
  3. Créez le MIG :

    gcloud

    gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --target-size-policy-mode=bulk \
    --template=INSTANCE_TEMPLATE_URL \
    --zone=ZONE \
    --default-action-on-vm-failure=do-nothing \
    --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": MIG_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.
    • MIG_SIZE : taille du 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
    • ZONE : la zone de votre MIG.
    • 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.

Utiliser des VM TPU uniques

Vous pouvez également créer des VM Spot TPU uniques.

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=SPOT \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

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

Remplacez les espaces réservés suivants :

Pour en savoir plus sur les VM Spot dans Compute Engine, consultez VM Spot.

Tarifs et quotas

Le prix des VM Spot TPU est nettement inférieur à celui des TPU à la demande et réservés. Pour en savoir plus sur la tarification, consultez la page Tarifs de Cloud TPU.

Vous avez besoin d'un quota préemptif pour utiliser les VM Spot TPU. Pour en savoir plus, consultez Quotas.

Étape suivante