Créer une instance de VM Cloud TPU à l'aide de Compute Engine

Ce document explique comment créer une VM TPU unique à l'aide de la commande gcloud compute instances create de Compute Engine. Vous pouvez également créer une instance de VM TPU en spécifiant un modèle d'instance. Pour en savoir plus, consultez Créer une VM à partir d'un modèle d'instance.

Prérequis

Respectez les prérequis suivants :

  1. Créez un Google Cloud projet pour vos TPU, comme décrit dans Configurer un Google Cloud projet pour les TPU.

  2. Déterminez vos besoins en matière de TPU, comme décrit dans Planifier vos ressources Cloud TPU.

Créer une instance de VM TPU

Les paramètres que vous utilisez pour créer une instance de VM TPU dépendent de l'option de consommation que vous utilisez : à la demande, Spot, liée à une réservation ou à démarrage flexible. Pour en savoir plus, consultez Planifier vos ressources TPU .

Créer une instance de VM TPU à la demande

Pour créer une instance de VM TPU à la demande, utilisez la gcloud compute instances create commande:

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"

Remplacez les espaces réservés suivants :

Créer une instance de VM Spot TPU

Pour créer une instance de VM Spot TPU, utilisez la gcloud compute instances create commande avec l'option --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"

Remplacez les espaces réservés suivants :

Créer une instance de VM TPU à l'aide d'une réservation

Pour créer une instance de VM TPU à l'aide de l'option de consommation liée à une réservation, utilisez la gcloud compute instances create commande avec les options --reservation-affinity=specific et --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"

Remplacez les espaces réservés suivants :

Créer une VM TPU à démarrage flexible

Pour créer une instance de VM TPU à démarrage flexible, utilisez la gcloud compute instances create commande avec l'option --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"

Remplacez les espaces réservés suivants :

  • PROJECT_ID : ID de votre Google Cloud projet.
  • TPU_NAME : nom de votre VM TPU.
  • MACHINE_TYPE : type de machine de la VM TPU (par exemple, ct6e-standard-8t).
  • IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version d'OS spécifique, utilisez l'option --image. Pour en savoir plus sur les images d'OS, consultez Images d'OS.
  • IMAGE_PROJECT : projet contenant l'image d'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
  • ZONE : zone de la VM TPU (par exemple us-central1-b).
  • MAX_RUN_DURATION : durée d'exécution maximale de la VM TPU (par exemple, 6h). Pour REST, spécifiez cette valeur en secondes (par exemple, 21600 pour 6 heures).
  • VALID_DURATION : durée maximale de validité de la requête. Pour REST, spécifiez cette valeur en secondes (par exemple, 3600 pour 1 heure). La requête est valide.

Pour en savoir plus sur la création d'instances Compute Engine, consultez Créer et démarrer une instance Compute Engine.

Étape suivante