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 un MIG zonal à l'aide de demandes de redimensionnement et du modèle de provisionnement Démarrage flexible. Pour créer une demande de redimensionnement de MIG pouvant utiliser les fonctionnalités et services disponibles dans Cluster Director, consultez la section Créer un MIG et une demande de redimensionnement dans la documentation de l'hypercalculateur d'IA.

L'utilisation d'une requête de redimensionnement de MIG avec le modèle de provisionnement Démarrage flexible améliore l'obtention des VM avec GPU. 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 leur durée d'exécution.

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 Google Cloud services et aux API. 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Limites

Consultez les limites liées à la création d'une demande de redimensionnement de 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. La page Créer un modèle d'instance s'ouvre.

  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 la section Type de machine, sélectionnez un type de machine.

  5. Dans la section Modèle de provisionnement, procédez comme suit:

    1. Dans la liste Modèle de provisionnement de VM, sélectionnez Démarrage Flex.

    2. Pour définir une durée d'exécution pour les VM créées à l'aide du modèle d'instance, saisissez le nombre d'heures dans le champ Indiquez le nombre d'heures. La valeur doit être comprise entre une heure (1) et sept jours (168).

  6. 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.

  7. Cliquez sur Créer.

gcloud

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

gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-termination-action=DELETE \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --max-run-duration=RUN_DURATION \
    --provisioning-model=FLEX_START \
    --reservation-affinity=none

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE_FAMILY : famille d'images. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • REGION: région dans laquelle créer le 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.

  • RUN_DURATION : durée d'exécution des VM demandées. Vous devez formater la valeur en nombre de jours, d'heures, de minutes ou de secondes, suivis respectivement de d, h, m ou s. Par exemple, spécifiez 30m pour 30 minutes ou 1d2h3m4s pour un jour, deux heures, trois minutes et quatre secondes. Cette valeur doit être comprise entre 10 minutes et sept jours.

REST

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

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": RUN_DURATION
      },
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel vous souhaitez créer le modèle d'instance.

  • REGION: région dans laquelle créer le modèle d'instance.

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • 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.

  • 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 (sept jours).

Une fois le modèle d'instance créé, vous pouvez l'afficher pour voir son ID et consulter ses propriétés.

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 créer une demande 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. La page Créer un groupe d'instances s'ouvre.

  3. Dans le champ Nom, saisissez un nom pour le MIG.

  4. Avant de sélectionner un modèle d'instance, vous devez supprimer la configuration d'autoscaling et désactiver les réparations comme suit:

    1. Pour supprimer la configuration d'autoscaling, procédez comme suit :
      1. Dans la section Autoscaling (Autoscaling), cliquez sur la liste Mode d'autoscaling, puis sur Supprimer la configuration d'autoscaling.
      2. Dans la boîte de dialogue de confirmation, cliquez sur Supprimer.
    2. Pour désactiver les réparations, dans la section Cycle de vie d'une instance de VM, cliquez sur la liste Action par défaut en cas d'échec, puis sélectionnez Aucune action.
  5. Revenez au champ Modèle d'instance. Dans la liste Modèle d'instance, sélectionnez le modèle d'instance que vous avez créé dans la section précédente.

  6. Effectuez l'une des opérations suivantes :

    • Pour créer une demande de redimensionnement avec le MIG, procédez comme suit :
      1. Dans le champ Nombre d'instances, saisissez le nombre de VM que vous souhaitez créer simultanément.
      2. Cochez la case Utiliser la requête de redimensionnement pour créer plusieurs VM à la fois.
      3. Facultatif: Pour spécifier une durée d'exécution différente pour les VM que celle définie dans le modèle d'instance, spécifiez une durée dans les champs Durée d'exécution demandée et Unité. La durée doit être comprise entre une heure et sept jours.
    • Pour créer une demande de redimensionnement après avoir créé le MIG, saisissez 0 dans le champ Nombre d'instances.
  7. Dans la section Emplacement, indiquez si vous souhaitez créer un MIG zonal ou régional comme suit:

    1. Pour créer un MIG zonal, sélectionnez Zone unique. Pour créer un MIG régional, sélectionnez Plusieurs zones.
    2. Sélectionnez la région et les zones du MIG.
    3. Si vous créez un MIG régional, procédez comme suit :
      1. Dans le champ Forme de distribution cible, sélectionnez Une des zones.
      2. Dans la boîte de dialogue qui s'affiche, cliquez sur Désactiver la redistribution des instances.
  8. 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_URL \
       --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 \
       --zone=ZONE
    

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des VM dans le MIG. L'URL peut contenir l'ID ou le nom du modèle d'instance. Spécifiez l'une des valeurs suivantes :
    • Pour un modèle d'instance régional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global: INSTANCE_TEMPLATE_ID
  • 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.

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": "INSTANCE_TEMPLATE_URL"
       }
     ],
     "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
    }
    

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_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des VM dans le MIG. L'URL peut contenir l'ID ou le nom du modèle d'instance. Spécifiez l'une des valeurs suivantes :
    • Pour un modèle d'instance régional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Pour un modèle d'instance global: INSTANCE_TEMPLATE_ID
  • 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.

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