Solicita VMs Spot de la TPU

Las VMs Spot ofrecen capacidad sin usar a tarifas con grandes descuentos. Si bien las VMs Spot se pueden interrumpir en cualquier momento, no tienen una duración máxima de ejecución, a diferencia de las TPU interrumpibles. Para reiniciar una instancia o un MIG de VMs Spot, debes borrarla y, luego, volver a crearla.

Para obtener más información sobre las VMs Spot, consulta la documentación de Compute Engine sobre las VMs Spot.

Crea VMs Spot de la TPU

Puedes crear VMs Spot de la TPU como instancias individuales o como parte de un grupo de instancias administrado (MIG).

Para crear VMs Spot de la TPU con un MIG, especifica el modelo de aprovisionamiento Spot en tu plantilla de instancias.

  1. Crea una plantilla de instancias:

    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"
    

    Reemplaza los marcadores de posición que se indican más abajo:

    • PROJECT_ID: El ID de tu Google Cloud proyecto.
    • INSTANCE_TEMPLATE_NAME: El nombre de tu plantilla de instancias.
    • MACHINE_TYPE: El tipo de máquina para la VM de TPU, por ejemplo, ct6e-standard-8t.
    • IMAGE_FAMILY: La familia de imágenes del SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca --image. Para obtener más información sobre las imágenes del SO, consulta Imágenes del SO.
    • IMAGE_PROJECT: El proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  2. Crea una política de cargas de trabajo

    Con el siguiente comando, se crea una política de cargas de trabajo. Esto es opcional para las porciones de un solo host.

    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"
    

    Reemplaza los marcadores de posición que se indican más abajo:

    • PROJECT_ID: El ID de tu Google Cloud proyecto.
    • WORKLOAD_POLICY_NAME: El nombre de tu política de cargas de trabajo.
    • TOPOLOGY: La topología de las VMs de TPU, por ejemplo, 4x4x8. Para obtener más información sobre la topología de cada versión de TPU, consulta Versiones de TPU.
    • REGION: La región de tu política de cargas de trabajo.
  3. Crea el 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"
    

    Reemplaza los marcadores de posición que se indican más abajo:

    • PROJECT_ID: El ID de tu Google Cloud proyecto.
    • MIG_NAME: El nombre de tu MIG.
    • MIG_SIZE: El tamaño del MIG.
    • INSTANCE_TEMPLATE_URL: La URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:
      • Para una plantilla de instancias regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • Para una plantilla de instancias global: INSTANCE_TEMPLATE_ID
    • ZONE: La zona de tu MIG.
    • WORKLOAD_POLICY_URL: La URL de la política de cargas de trabajo que deseas usar para crear instancias en el MIG. Por ejemplo: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

Usa VMs de TPU individuales

También puedes crear VMs Spot de la TPU individuales.

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"

Reemplaza los marcadores de posición que se indican más abajo:

  • PROJECT_ID: El ID de tu Google Cloud proyecto.
  • TPU_NAME: Un nombre para tu VM de TPU.
  • MACHINE_TYPE: El tipo de máquina para la VM de TPU (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: La familia de imágenes del SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la --image marca. Para obtener más información sobre las imágenes del SO, consulta Imágenes del SO.
  • IMAGE_PROJECT: El proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  • ZONE: La zona de la VM de TPU (por ejemplo, us-central1-b).

Para obtener más información sobre las VMs Spot en Compute Engine, consulta VMs Spot.

Precios y cuota

Los precios de las VMs Spot de la TPU son significativamente más bajos que los de las TPU reservadas y a pedido. Para obtener más información sobre los precios, consulta Precios de Cloud TPU.

Necesitas una cuota interrumpible para usar las VMs Spot de la TPU. Para obtener más información, consulta Cuotas.

¿Qué sigue?