Richiedi VM spot TPU

Le VM spot offrono capacità inutilizzata a tariffe scontate in modo significativo. Sebbene le VM spot siano prerilasciabili in qualsiasi momento, non hanno una durata massima di esecuzione, a differenza delle TPU prerilasciabili. Per riavviare un'istanza o un MIG di VM spot, devi eliminarlo e poi ricrearlo.

Per ulteriori informazioni sulle VM spot, consulta la documentazione di Compute Engine sulle VM spot.

Crea VM spot TPU

Puoi creare VM spot TPU come singole istanze o come parte di un gruppo di istanze gestite (MIG).

Per creare VM spot TPU con un MIG, specifica il modello di provisioning spot nel modello di istanza.

  1. Crea un template di istanza:

    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"
    

    Sostituisci i seguenti segnaposto:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.
    • MACHINE_TYPE: il tipo di macchina per la VM TPU, ad esempio ct6e-standard-8t.
    • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag --image. Per ulteriori informazioni sulle immagini del sistema operativo, consulta Immagini del sistema operativo.
    • IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo è ubuntu-os-accelerator-images.
  2. Crea una policy del workload

    Il seguente comando crea una policy del workload. Questo passaggio è facoltativo per le slice a host singolo.

    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"
    

    Sostituisci i seguenti segnaposto:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • WORKLOAD_POLICY_NAME: il nome della policy del workload.
    • TOPOLOGY: la topologia delle VM TPU, ad esempio 4x4x8. Per ulteriori informazioni sulla topologia per ogni versione di TPU, consulta Versioni di TPU.
    • REGION: la regione per la policy del workload.
  3. Crea il 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"
    

    Sostituisci i seguenti segnaposto:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • MIG_NAME: il nome del MIG.
    • MIG_SIZE: la dimensione del MIG.
    • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l' ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
      • Per un modello di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • Per un modello di istanza globale: INSTANCE_TEMPLATE_ID
    • ZONE: la zona per il MIG.
    • WORKLOAD_POLICY_URL: l'URL della policy del workload che vuoi utilizzare per creare istanze nel MIG. Ad esempio: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

Utilizzo di singole VM TPU

Puoi anche creare singole VM spot TPU.

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"

Sostituisci i seguenti segnaposto:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • TPU_NAME: un nome per la VM TPU.
  • MACHINE_TYPE: il tipo di macchina per la VM TPU (ad esempio ct6e-standard-8t).
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il --image flag. Per ulteriori informazioni sulle immagini del sistema operativo, consulta Immagini del sistema operativo.
  • IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo è ubuntu-os-accelerator-images.
  • ZONE: la zona per la VM TPU (ad esempio us-central1-b).

Per ulteriori informazioni sulle VM spot in Compute Engine, consulta VM spot.

Prezzi e quote

I prezzi delle VM spot TPU sono notevolmente inferiori rispetto a quelli delle TPU on demand e riservate. Per ulteriori informazioni sui prezzi, consulta Prezzi di Cloud TPU.

Per utilizzare le VM spot TPU, devi avere una quota prerilasciabile. Per scoprire di più, consulta Quote.

Passaggi successivi