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 porciones de host único, consulta Crea un MIG con porciones 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 Google Cloud servicios y APIs. 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 según cómo planeas usar las muestras en esta página:

    gcloud

    1. Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI ejecutando el siguiente comando:

      gcloud init
  • 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 y, luego, accede a 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 continuar para 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 versiones de TPU por tipo de carga de trabajo, consulta Versiones de TPU recomendadas por tipos de carga de trabajo.

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

  3. Asegúrate de que tu proyecto tenga suficiente cuota de TPU: Si creas una instancia de TPU con VMs según demanda o Spot, debes tener suficiente cuota de TPU disponible en la región que deseas usar. Crear una instancia de TPU que consuma 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 nombres de 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 una opción de consumo que se adapte mejor a tu carga de trabajo, su duración y tus necesidades de costos. Para obtener una lista de la disponibilidad de 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 según demanda

Para crear una instancia de VM de TPU según demanda, usa el gcloud compute instances create comando:

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 Google Cloud proyecto.
  • TPU_NAME: Es un nombre para tu VM de TPU.
  • MACHINE_TYPE: Es el tipo de máquina para la VM de TPU (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es 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: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  • ZONE: Es 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 gcloud compute instances create comando con la --provisioning-model=SPOT marca:

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 Google Cloud proyecto.
  • TPU_NAME: Es un nombre para tu VM de TPU.
  • MACHINE_TYPE: Es el tipo de máquina para la VM de TPU (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es 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: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  • ZONE: Es 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 gcloud compute instances create comando 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 Google Cloud proyecto.
  • TPU_NAME: Es un nombre para tu VM de TPU.
  • MACHINE_TYPE: Es el tipo de máquina para la VM de TPU (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es 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: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  • ZONE: Es 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 de inicio flexible

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

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 Google Cloud proyecto.
  • TPU_NAME: Es un nombre para tu VM de TPU.
  • MACHINE_TYPE: Es el tipo de máquina para la VM de TPU (por ejemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: Es 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: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  • ZONE: Es 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 esto como una cantidad de segundos (por ejemplo, 21600 durante 6 horas).
  • VALID_DURATION: Es la duración máxima durante la cual la solicitud es válida. Para REST, especifica esto como una cantidad de segundos (por ejemplo, 3600 durante 1 hora). La solicitud es válida.

Para obtener más información sobre la creación de 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 las configuraciones que requieren un reinicio o para 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?