Créer une instance de VM TPU

Ce document explique comment créer une instance de machine virtuelle (VM) TPU. Une VM TPU est également appelée tranche de TPU à hôte unique.

Pour créer un groupe de tranches à hôte unique, consultez Créer un MIG avec des tranches de TPU à hôte unique.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux Google Cloud services et aux API. Pour exécuter du code ou des exemples à partir d'un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • Définissez une région et une zone par défaut.
  • REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l' Google Cloud authentification.

Prérequis

Avant de créer une instance de TPU, vous devez procéder comme suit :

  1. Choisir la version de TPU : sélectionnez la version de TPU adaptée à votre charge de travail. Pour obtenir la liste des versions de TPU par type de charge de travail, consultez Versions de TPU recommandées par type de charge de travail.

  2. Valider la disponibilité des TPU dans l'emplacement de votre choix : les TPU sont disponibles dans des Google Cloud régions spécifiques. Pour utiliser une version de TPU, assurez-vous qu'elle est disponible dans la région de votre choix. Pour obtenir la liste des emplacements de TPU, consultez Disponibilité des TPU.

  3. Vérifier que votre projet dispose d'un quota de TPU suffisant : si vous créez une instance de TPU avec des VM Spot ou à la demande, vous devez disposer d' un quota de TPU suffisant dans la région que vous souhaitez utiliser. La création d'une instance de TPU qui consomme une réservation de TPU ne nécessite aucun quota de TPU, car le quota est utilisé lors de la création de la réservation. Pour obtenir la liste des noms de quotas de TPU, consultez Quotas de TPU. Pour savoir comment afficher le quota, consultez Afficher et gérer les quotas.

  4. Choisir une option de consommation de TPU : sélectionnez une option de consommation qui correspond le mieux à votre charge de travail, à sa durée et à vos besoins en termes de coûts. Pour obtenir la liste des options de consommation disponibles par version de TPU, consultez Options de consommation de 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 À propos des modèles de provisionnement de VM .

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 :

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

Limites

  • Opérations de cycle de vie : vous ne pouvez pas arrêter, démarrer, reprendre ni suspendre les instances de TPU. Pour modifier des configurations nécessitant un redémarrage ou pour ne plus être facturé, vous devez supprimer les instances.

  • Mettre à jour les détails d'une VM : vous pouvez mettre à jour les propriétés qui ne nécessitent qu'une action d'actualisation (REFRESH). Si une configuration nécessite un redémarrage (RESTART), vous devez recréer l'instance.

Étape suivante