Crea una instancia de VM de TPU

En este documento, se describe cómo crear una instancia de máquina virtual (VM) de TPU. Una VM de TPU también se denomina porción de TPU de host único.

Para crear un grupo de segmentos de host único, consulta Crea un MIG con segmentos de TPU de host único.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  • Configura una región y una zona predeterminadas.
  • REST

    Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala Google Cloud CLI.

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

Requisitos previos

Antes de crear una instancia de TPU, debes hacer lo siguiente:

  1. Elige la versión de TPU: Selecciona la versión de TPU adecuada para tu carga de trabajo. Para obtener una lista de las versiones de TPU por tipo de carga de trabajo, consulta Versiones de TPU recomendadas por tipo de carga de trabajo.

  2. Valida la disponibilidad de las TPU en tu ubicación preferida: Las TPU están disponibles en regiones Google Cloud específicas. Para usar una versión de TPU, asegúrate de que esté disponible en la región que prefieras. Para obtener una lista de las ubicaciones de las TPU, consulta Disponibilidad de las TPU.

  3. Asegúrate de que tu proyecto tenga suficiente cuota de TPU: Si creas una instancia de TPU con VMs según demanda, con inicio flexible o Spot, debes tener suficiente cuota de TPU disponible en la región que deseas usar. La creación de una instancia de TPU que consume una reserva de TPU no requiere ninguna cuota de TPU, ya que la cuota se usa cuando se creó la reserva. Para obtener una lista de los nombres de las cuotas de TPU, consulta Cuota de TPU y, para obtener instrucciones sobre cómo ver la cuota, consulta Visualiza y administra cuotas.

  4. Elige una opción de consumo de TPU: Selecciona la opción de consumo que mejor se adapte a tu carga de trabajo, su duración y tus necesidades de costos. Para obtener una lista de la disponibilidad de las opciones de consumo por versiones de TPU, consulta Opciones de consumo de TPU.

Crea una instancia de VM de TPU

Los parámetros que usas para crear una instancia de TPU VM dependen de la opción de consumo que uses: según demanda, Spot, vinculada a la reserva o de inicio flexible. Para obtener más información, consulta Acerca de los modelos de aprovisionamiento de VMs.

Crea una instancia de VM de TPU a pedido

Para crear una instancia de VM de TPU a pedido, usa el comando gcloud compute instances create:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --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"
    },
    "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: Es el ID de tu proyecto de Google Cloud .
  • TPU_NAME: Es el nombre de tu VM de TPU.
  • MACHINE_TYPE: El tipo de máquina de la TPU VM (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es la familia de imágenes del SO de 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 de SO, consulta Imágenes de SO.
  • IMAGE_PROJECT: Es 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)

Crea una instancia de VM Spot de TPU

Para crear una instancia de VM Spot de TPU, usa el comando gcloud compute instances create con la marca --provisioning-model=SPOT:

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: Es el ID de tu proyecto de Google Cloud .
  • TPU_NAME: Es el nombre de tu VM de TPU.
  • MACHINE_TYPE: El tipo de máquina de la TPU VM (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es la familia de imágenes del SO de 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 de SO, consulta Imágenes de SO.
  • IMAGE_PROJECT: Es 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)

Crea una instancia de VM de TPU con una reserva

Para crear una instancia de VM de TPU con la opción de consumo vinculada a la reserva, usa el comando gcloud compute instances create con las marcas --reservation-affinity=specific y --reservation:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=reservation-bound \
  --reservation-affinity=specific \
  --reservation=RESERVATION_NAME \
  --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": "RESERVATION_BOUND",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "SPECIFIC_RESERVATION",
      "key": "compute.googleapis.com/reservation-name",
      "values": [
        "RESERVATION_NAME"
      ]
    }
  }' \
  "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: Es el ID de tu proyecto de Google Cloud .
  • TPU_NAME: Es el nombre de tu VM de TPU.
  • MACHINE_TYPE: El tipo de máquina de la TPU VM (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es la familia de imágenes del SO de 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 de SO, consulta Imágenes de SO.
  • IMAGE_PROJECT: Es 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)
  • RESERVATION_NAME: Es el nombre de tu reserva.

Crea una VM de TPU con inicio flexible

Para crear una instancia de VM de TPU con inicio flexible, usa el comando gcloud compute instances create con la marca --provisioning-model=FLEX_START:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=FLEX_START \
  --max-run-duration=MAX_RUN_DURATION \
  --request-valid-for-duration=VALID_DURATION \
  --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"
        }
      }
    ],
    "params": {
      "requestValidForDuration": {
        "seconds": VALID_DURATION
      }
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START",
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": MAX_RUN_DURATION
      }
    },
    "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: Es el ID de tu proyecto de Google Cloud .
  • TPU_NAME: Es el nombre de tu VM de TPU.
  • MACHINE_TYPE: El tipo de máquina de la TPU VM (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es la familia de imágenes del SO de 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 de SO, consulta Imágenes de SO.
  • IMAGE_PROJECT: Es 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)
  • MAX_RUN_DURATION: Es la duración máxima de ejecución de la VM de TPU (por ejemplo, 6h). Para REST, especifica este valor como una cantidad de segundos (por ejemplo, 21600 para 6 horas).
  • VALID_DURATION: Es la duración máxima durante la cual la solicitud es válida. En el caso de REST, especifica este valor como una cantidad de segundos (por ejemplo, 3600 para 1 hora).

Para obtener más información sobre cómo crear instancias de Compute Engine, consulta Crea y, luego, inicia una instancia de Compute Engine.

Limitaciones

  • Operaciones de ciclo de vida: No puedes detener, iniciar, reanudar ni suspender instancias de TPU. Para cambiar la configuración que requiere un reinicio o dejar de generar cargos, debes borrar las instancias.

  • Actualizar los detalles de la VM: Puedes actualizar las propiedades que solo requieren una acción de actualización (REFRESH). Si una configuración requiere un reinicio (RESTART), debes volver a crear la instancia.

¿Qué sigue?