Créer un MIG comprenant des VM avec GPU


Ce document explique comment créer un groupe d'instances géré (MIG) avec des instances de machine virtuelle (VM) auxquelles des GPU sont associés. Il explique comment ajouter simultanément des VM avec GPU dans le groupe à l'aide de demandes de redimensionnement.

L'utilisation d'une requête de redimensionnement améliore l'obtention des VM avec GPU dans un MIG. Dans la requête, spécifiez le nombre de VM avec GPU ainsi que la durée pendant laquelle vous souhaitez exécuter ces VM. Le planificateur de charge de travail dynamique (DWS), mécanisme de planification sous-jacent, planifie les demandes de redimensionnement créées dans Compute Engine en fonction des durées demandées et de la disponibilité des ressources. Lorsque les ressources sont disponibles, le MIG crée automatiquement les VM.

Si votre tâche exécutée sur ces VM se termine avant la durée demandée, vous pouvez supprimer ces VM. Sinon, le MIG supprime automatiquement les VM à la fin de la durée définie.

Vous pouvez également découvrir d'autres scénarios de base pour la création d'un MIG.

Avant de commencer

  • Pour vous assurer que vous disposez d'un quota de GPU suffisant pour les ressources que vous demandez, vérifiez votre quota de GPU.
  • Pour comprendre la consommation de quota, consultez la section VM GPU et quotas d'allocation préemptive.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Limites

Consultez les limites liées à la création d'une demande de redimensionnement dans un MIG.

Créer un MIG et ajouter des VM avec GPU en même temps

Pour créer un MIG et ajouter des VM avec GPU en même temps dans le groupe, procédez comme suit :

  1. Créez un modèle d'instance, qui est nécessaire pour créer un MIG. Le MIG crée chaque VM du groupe en fonction du modèle d'instance. Dans le modèle, spécifiez la configuration des VM avec GPU et les configurations supplémentaires requises pour utiliser des requêtes de redimensionnement.

    Pour en savoir plus sur les modèles d'instances, consultez la section À propos des modèles d'instances.

  2. Créez un MIG et une requête de redimensionnement pour ajouter toutes les VM avec GPU à la fois.

Créer un modèle d'instance

Créez un modèle d'instance comme décrit dans cette section, puis utilisez-le pour créer un MIG.

Console

  1. Accédez à la page Modèles d'instance.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Créer un modèle d'instance.

  3. Dans le champ Nom, saisissez un nom pour le modèle d'instance.

  4. Dans la section Configuration de la machine, procédez comme suit :

    1. Cliquez sur l'onglet GPU.
    2. Dans la liste Type de GPU, sélectionnez le type de GPU.
    3. Dans la liste Nombre de GPU, sélectionnez le nombre de GPU.
    4. Dans le menu Type de machine, sélectionnez un type de machine.
  5. Pour modifier le type ou l'image de disque de démarrage par défaut, cliquez sur Modifier dans la section Disque de démarrage. Suivez ensuite les instructions pour modifier le disque de démarrage.

  6. Développez la section Options avancées et procédez comme suit :

    1. Développez la section Gestion.
    2. Dans la liste Réservations, sélectionnez Ne pas utiliser.
  7. Cliquez sur Créer.

gcloud

Créez un modèle d'instance à l'aide de la commande instance-templates create.

La commande suivante crée un modèle d'instance global basé sur une image Deep Learning VM.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-project=deeplearning-platform-release \
    --image-family=common-cu121 \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine compatible avec les GPU. Si vous spécifiez un type de machine N1, incluez l'option --accelerator pour spécifier le nombre et le type de GPU à associer à vos VM.

REST

Créez un modèle d'instance en envoyant une requête POST à la méthode instanceTemplates.insert.

La requête suivante crée un modèle d'instance global basé sur une image Deep Learning VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "mode": "READ_WRITE",
        "type": "PERSISTENT",
        "initializeParams": {
          "sourceImage": "projects/deeplearning-platform-release/global/images/family/common-cu121"
        }
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer le MIG.
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine compatible avec les GPU. Si vous spécifiez un type de machine N1, incluez l'option guestAccelerators pour spécifier le nombre et le type de GPU à associer à vos VM.

Créer un MIG et ajouter des VM avec GPU en même temps

Créez un MIG comme décrit dans cette section. Pour utiliser une requête de redimensionnement dans le MIG, vous ne devez pas configurer l'autoscaling et devez désactiver les réparations.

Console

  1. Accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur Créer un groupe d'instances.

  3. Renseignez les champs suivants:

    1. Nom : saisissez un nom pour le groupe.
    2. Modèle d'instance: sélectionnez le modèle d'instance que vous avez configuré dans la section précédente.
    3. Dans la section Emplacement :
      1. Sélectionnez Zone unique.
      2. Dans les listes Région et Zone, sélectionnez l'emplacement où vous souhaitez créer le groupe.

    Le champ Nombre d'instances sera disponible à la modification une fois que vous aurez supprimé la configuration d'autoscaling et désactivé les réparations dans les étapes suivantes.

  4. Supprimez la configuration d'autoscaling comme suit:

    1. Dans la section Autoscaling, cliquez sur la liste Mode d'autoscaling, puis sur Supprimer la configuration d'autoscaling.
    2. Dans la boîte de dialogue Supprimer la configuration d'autoscaling ?, cliquez sur Supprimer.
  5. Désactivez les réparations dans le MIG comme suit:

    Dans la section Cycle de vie de l'instance de VM, définissez le champ Action par défaut en cas d'échec sur Aucune action.

  6. Spécifiez le nombre de VM avec GPU et la durée d'exécution pour créer une requête de redimensionnement:

    1. Dans le champ Nombre d'instances, saisissez le nombre de VM avec GPU que vous souhaitez créer simultanément.

      Champ "Nombre d'instances" sur la page "Créer un groupe d'instances".

    2. Cochez la case Utiliser la requête de redimensionnement pour créer plusieurs VM à la fois. Les champs permettant de saisir la durée de l'exécution s'affichent.

    3. Dans le champ Durée d'exécution demandée et dans la liste Unité, spécifiez la durée d'exécution des VM avec GPU. La durée doit être comprise entre 1 heure et 7 jours.

  7. Cliquez sur Créer.

gcloud

  1. Créez un MIG zonal à l'aide de la commande instance-groups managed create.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_NAME \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. Dans le MIG, créez une demande de redimensionnement à l'aide de la commande instance-groups managed resize-requests create. Spécifiez le nombre de VM avec GPU souhaité et la durée d'exécution de ces VM.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --requested-run-duration=RUN_DURATION\
       --zone=ZONE
    

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance pour les VM avec GPU.
  • ZONE : une des zones disponibles pour Compute Engine.
  • RESIZE_REQUEST_NAME : nom de la requête de redimensionnement.
  • COUNT : nombre de VM à ajouter simultanément dans le groupe.
  • RUN_DURATION : durée d'exécution des VM demandées. La valeur doit être formatée en nombre de jours, d'heures, de minutes ou de secondes, suivis respectivement de d, h, m et s. Par exemple, spécifiez 30m pour 30 minutes ou 1d2h3m4s pour 1 jour, 2 heures, 3 minutes et 4 secondes. Cette valeur doit être comprise entre 10 minutes et 7 jours.

REST

  1. Créez un MIG zonal en envoyant une requête POST à la méthode instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. Dans le MIG, créez une demande de redimensionnement en envoyant une requête POST à la méthode instanceGroupManagerResizeRequests.insert. Dans le corps de la requête, spécifiez le nombre de VM avec GPU que vous souhaitez créer simultanément et la durée pendant laquelle vous souhaitez exécuter ces VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT,
     "requestedRunDuration": {
       "seconds": "RUN_DURATION"
     }
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer le MIG.
  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance pour les VM avec GPU.
  • ZONE : une des zones disponibles pour Compute Engine.
  • RESIZE_REQUEST_NAME : nom de la requête de redimensionnement.
  • COUNT : nombre de VM à ajouter simultanément dans le groupe.
  • RUN_DURATION : durée, en secondes, pendant laquelle vous souhaitez que les VM demandées s'exécutent avant que le MIG ne les supprime automatiquement. La valeur doit être comprise entre 600, soit 600 secondes (10 minutes), et 604800, soit 604 800 secondes (7 jours).

La requête de redimensionnement que vous créez reste à l'état ACCEPTED jusqu'à ce que le MIG crée toutes les VM avec GPU demandées. Une fois toutes les VM avec GPU créées dans le groupe, l'état de la requête passe à SUCCEEDED.

Étape suivante