Créer une instance A3 Ultra ou A4

Ce document explique comment créer des instances avec des GPU associés à partir des séries de machines A3 Ultra ou A4. Pour en savoir plus sur la création d'instances avec des GPU associés, consultez Présentation de la création d'une instance avec des GPU associés.

Les instances A3 Ultra et A4 sont compatibles avec Cluster Director. Avec Cluster Director, vous pouvez réserver des machines à allocation dense qui fournissent une planification tenant compte de la topologie, ainsi qu'une surveillance et une maintenance améliorées. Pour en savoir plus sur Cluster Director, consultez Cluster Director dans la documentation AI Hypercomputer.

Avant de commencer

  • Pour connaître les limites et les étapes préalables supplémentaires à la création d'instances avec des GPU associés (par exemple, comment sélectionner une image d'OS ou vérifier le quota de GPU), consultez Présentation de la création d'une instance avec des GPU associés.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet 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. Installez la Google Cloud CLI. Une fois l'installation terminée, initialisez la Google Cloud CLI 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.

    2. Set a default region and zone.

    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. Une fois l'installation terminée, initialisez la Google Cloud CLI 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.

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

Rôles requis

Pour obtenir les autorisations nécessaires à la création d'instances, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer des instances. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des instances :

  • compute.instances.create sur le projet
  • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
  • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
  • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
  • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
  • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
  • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
  • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
  • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
  • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
  • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
  • Pour définir des libellés pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service à utiliser avec la VM : compute.instances.setServiceAccount sur la VM
  • Pour créer un disque pour la VM : compute.disks.create sur le projet
  • Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.use sur le disque
  • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Déterminer comment créer des instances A3 Ultra ou A4

Pour déterminer les options à utiliser pour créer des instances A3 Ultra ou A4, procédez comme suit :

  1. Choisir une option de consommation : pour savoir comment choisir une option de consommation pour une instance A3 Ultra ou A4, consultez Choisir une option de consommation dans la documentation AI Hypercomputer.

  2. Obtenir de la capacité : pour savoir comment obtenir de la capacité pour les instances A3 Ultra ou A4 pour l'option de consommation que vous avez choisie, consultez Présentation de la capacité dans la documentation AI Hypercomputer.

  3. Sélectionnez les instructions de création : pour en savoir plus sur toutes les options que vous pouvez utiliser pour créer des instances A3 Ultra ou A4, comme les groupes d'instances gérés (MIG) ou les clusters, consultez Présentation de la création de VM et de clusters dans la documentation AI Hypercomputer.

    Si vous souhaitez utiliser les fonctionnalités de Cluster Director ou si vous ne souhaitez pas créer d'instances autonomes, sélectionnez plutôt une option de création dans la documentation AI Hypercomputer.

Créer une instance A3 Ultra ou A4

Pour créer une instance A3 Ultra ou A4, procédez comme suit :

  1. Créer des réseaux VPC

  2. Créer l'instance

  3. Préparer l'instance à l'utilisation

Créer des réseaux VPC

Pour configurer le réseau pour le type de machine A4 ou A3 Ultra, créez trois réseaux VPC pour les interfaces réseau suivantes :

  • Deux réseaux VPC standards pour les interfaces réseau gVNIC. Elles sont utilisées pour la communication d'hôte à hôte.
  • Un réseau VPC avec le profil réseau RoCE est requis pour les cartes réseau CX-7. Le réseau VPC RoCE doit comporter huit sous-réseaux, un pour chaque carte d'interface réseau CX-7. Ces cartes réseau utilisent RDMA over Converged Ethernet (RoCE), qui fournit la communication à bande passante élevée et à faible latence essentielle pour la communication entre GPU.

Pour en savoir plus sur la configuration des cartes d'interface réseau, consultez Examiner la bande passante réseau et la configuration des cartes d'interface réseau.

Créez les réseaux manuellement en suivant les guides d'instructions ou automatiquement à l'aide du script fourni.

Guides d'instructions

Pour créer les réseaux, vous pouvez suivre les instructions suivantes :

Pour ces réseaux VPC, nous vous recommandons de définir l'unité de transmission maximale (MTU) sur une valeur plus élevée. Pour les types de machines A4 ou A3 Ultra, la MTU recommandée est de 8896 octets. Pour connaître les paramètres MTU recommandés pour les autres types de machines GPU, consultez Paramètres MTU pour les types de machines GPU.

Script

Pour créer les réseaux, procédez comme suit.

Pour ces réseaux VPC, nous vous recommandons de définir l'unité de transmission maximale (MTU) sur une valeur plus élevée. Pour les types de machines A4 ou A3 Ultra, la MTU recommandée est de 8896 octets. Pour connaître les paramètres MTU recommandés pour les autres types de machines GPU, consultez Paramètres MTU pour les types de machines GPU.

  1. Utilisez le script suivant pour créer des réseaux VPC pour les cartes réseau gVNIC et CX-7.

      
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=10.0.0.0/8
        done
    
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
        # Assumes that an external IP is only created for vNIC 0
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for CX-7
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 7); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs
        done
    
      

    Remplacez les éléments suivants :

    • GVNIC_NAME_PREFIX : préfixe de nom personnalisé à utiliser pour les réseaux et sous-réseaux VPC standards des cartes gVNIC.
    • RDMA_NAME_PREFIX : préfixe de nom personnalisé à utiliser pour le réseau et les sous-réseaux VPC RoCE pour les cartes réseau CX-7.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible, par exemple us-central1-a. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • REGION : région dans laquelle vous souhaitez créer les sous-réseaux. Cette région doit correspondre à la zone spécifiée. Par exemple, si votre zone est us-central1-a, votre région est us-central1.
    • IP_RANGE : plage d'adresses IP à utiliser pour les règles de pare-feu SSH.
  2. Facultatif : Pour vérifier que les ressources de réseau VPC ont bien été créées, vérifiez les paramètres réseau dans la console Google Cloud  :
    1. Dans la console Google Cloud , accédez à la page Réseaux VPC.

      Accéder aux réseaux VPC

    2. Recherchez dans la liste les réseaux que vous avez créés à l'étape précédente.
    3. Pour afficher les sous-réseaux, les règles de pare-feu et les autres paramètres réseau, cliquez sur le nom du réseau.

Créer l'instance

Pour créer une instance, utilisez l'une des options suivantes. Si vous souhaitez utiliser le modèle de provisionnement à démarrage flexible, vous devez utiliser la Google Cloud CLI ou REST pour créer la VM.

Console

  1. Dans la console Google Cloud , accédez à la page Créer une instance.

    Accéder à la page Créer une instance

    L'écran Créer une instance s'affiche et le volet Configuration de la machine s'ouvre.

  2. Dans le volet Configuration de la machine, procédez comme suit :

    1. Indiquez un Nom pour votre instance. Consultez la convention d'attribution de noms des ressources.

    2. Sélectionnez la région et la zone dans lesquelles vous avez réservé de la capacité.

    3. Cliquez sur l'onglet GPU, puis procédez comme suit :

      1. Dans la liste Type de GPU, sélectionnez le type de GPU.

        • Pour les instances A4, sélectionnez NVIDIA B200.

        • Pour les instances A3 Ultra, sélectionnez NVIDIA H200 141 Go.

      2. Dans la liste Nombre de GPU, sélectionnez 8.

  3. Dans le menu de navigation, cliquez sur OS et stockage. Dans le volet OS et stockage qui s'affiche, procédez comme suit :

    1. Cliquez sur Modifier. Le volet Configuration du disque de démarrage s'affiche.

    2. Dans l'onglet Images publiques, sélectionnez une image recommandée. Pour obtenir la liste des images recommandées, consultez Systèmes d'exploitation.

    3. Cliquez sur Sélectionner pour confirmer vos options de disque de démarrage.

  4. Pour créer une instance multi-NIC, procédez comme suit. Sinon, ignorez ces étapes pour créer une instance à une seule interface réseau.

    • Dans le menu de navigation, cliquez sur Mise en réseau. Dans le volet Réseau qui s'affiche, procédez comme suit :

      1. Dans la section Interfaces réseau, procédez comme suit :

      2. Supprimez l'interface réseau par défaut. Pour supprimer l'interface, cliquez sur Supprimer.

      3. Cliquez sur Ajouter une interface réseau. Utilisez cette option pour ajouter des interfaces réseau qui se connectent aux réseaux VPC que vous avez créés dans la section précédente. Lorsque vous ajoutez des interfaces réseau, n'oubliez pas les points suivants :

        • Pour une interface réseau utilisée pour la communication d'hôte à hôte, sélectionnez un réseau et un sous-réseau VPC standards dans les listes Réseau et Sous-réseau, puis définissez la liste Carte d'interface réseau sur gVNIC.

        • Pour une interface réseau utilisée pour la communication entre GPU, sélectionnez le réseau et le sous-réseau VPC RoCE dans les listes Réseau et Sous-réseau, puis définissez la liste Carte d'interface réseau sur MRDMA pour ces interfaces réseau.

  5. Dans le menu de navigation, cliquez sur Avancé. Ensuite, suivez les étapes ci-dessous pour le modèle de provisionnement que vous souhaitez utiliser.

    Liée à la réservation

    1. Cliquez sur Choisir une réservation. Cette action ouvre un volet contenant la liste des réservations disponibles dans la zone sélectionnée. Dans la liste des réservations, procédez comme suit :

      1. Sélectionnez la réservation que vous souhaitez utiliser pour la VM. Vous pouvez également sélectionner un bloc spécifique dans la réservation.
      2. Cliquez sur Choisir.

    Spot

    1. Dans la section Modèle de provisionnement, sélectionnez Spot dans la liste Modèle de provisionnement de VM.
    2. Facultatif : Pour sélectionner l'action de terminaison qui se produit lorsque Compute Engine préempte la VM, procédez comme suit :

      1. Développez la section Paramètres avancés du modèle de provisionnement de VM.
      2. Dans la liste À l'arrêt de la VM, sélectionnez l'une des options suivantes :
        • Pour arrêter la VM pendant la préemption, sélectionnez Arrêter (sélection par défaut).
        • Pour supprimer la VM pendant la préemption, sélectionnez Supprimer.
  6. Pour créer et démarrer l'instance, cliquez sur Créer.

gcloud

Pour créer la VM, utilisez la commande gcloud compute instances create.

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=none \
    --provisioning-model=FLEX_START \
    --request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
    --max-run-duration=MAX_RUN_DURATION \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE

Remplacez les éléments suivants :

  • VM_NAME : Nom de la VM.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Détails des systèmes d'exploitation.
  • IMAGE_PROJECT : ID du projet de l'image OS.
  • ZONE : zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau virtuelles Google (gVNIC).
  • RDMA_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC qui utilisent des cartes d'interface réseau RDMA.
  • REQUEST_VALID_FOR_DURATION : durée de validité de la requête de création de la VM. Vous devez formater la valeur 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 un jour, deux heures, trois minutes et quatre secondes. Si vous ne spécifiez pas de durée, la durée par défaut est de 90 secondes.

    En fonction des exigences zonales de votre charge de travail, nous vous recommandons de spécifier l'une des durées suivantes pour augmenter vos chances de réussite de la demande de création de VM :

    • Charges de travail avec des exigences zonales strictes : si votre charge de travail vous oblige à créer la VM dans une zone spécifique, spécifiez une durée comprise entre 90 secondes et deux heures. Plus la durée est longue, plus vous avez de chances d'obtenir des ressources.
    • Charges de travail sans exigences strictes concernant les zones : si la VM peut s'exécuter dans n'importe quelle zone de la région, spécifiez une durée de zéro seconde (0). Cette action indique que Compute Engine n'alloue des ressources que si elles sont immédiatement disponibles. Si la requête de création de VM échoue en raison de l'indisponibilité des ressources, réessayez dans une autre zone.
  • MAX_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 et 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.

Liée à la réservation

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE

Remplacez les éléments suivants :

  • VM_NAME : Nom de la VM.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Détails des systèmes d'exploitation.
  • IMAGE_PROJECT : ID du projet de l'image OS.
  • ZONE : zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau virtuelles Google (gVNIC).
  • RDMA_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC qui utilisent des cartes d'interface réseau RDMA.
  • RESERVATION : nom de la réservation ou d'un bloc spécifique dans une réservation. Pour obtenir le nom de la réservation ou les blocs disponibles, consultez Afficher la capacité réservée. En fonction de vos exigences concernant l'emplacement des instances, choisissez l'une des options suivantes :
    • Pour créer l'instance sur un bloc :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      De plus, pour créer plusieurs instances dans le même bloc, appliquez la même stratégie d'emplacement compact qui spécifie une colocation de bloc (maxDistance=2) lors de la création de chaque instance. Compute Engine applique ensuite la règle à la réservation et crée des instances sur le même bloc.

    • Pour créer l'instance sur un bloc spécifique :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION : indique si Compute Engine arrête (STOP) ou supprime (DELETE) la VM à la fin de la période de réservation.

Spot

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION

Remplacez les éléments suivants :

  • VM_NAME : Nom de la VM.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Détails des systèmes d'exploitation.
  • IMAGE_PROJECT : ID du projet de l'image OS.
  • ZONE : zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau virtuelles Google (gVNIC).
  • RDMA_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC qui utilisent des cartes d'interface réseau RDMA.
  • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

REST

Pour créer la VM, envoyez une requête POST à la méthode instances.insert.

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "NO_RESERVATION",
  },
  "scheduling":{
    "provisioningModel": "FLEX_START",
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    },
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "DELETE",
    "onHostMaintenance": "TERMINATE",
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
  • ZONE : zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Pour en savoir plus, consultez Types de machines GPU.
  • VM_NAME : Nom de la VM.
  • DISK_SIZE : taille du disque de démarrage en Go
  • IMAGE_PROJECT : ID du projet de l'image OS.
  • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Détails des systèmes d'exploitation.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau virtuelles Google (gVNIC).
  • REGION : région du sous-réseau.
  • RDMA_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC qui utilisent des cartes d'interface réseau RDMA.
  • REQUEST_VALID_FOR_DURATION : durée de validité de la requête de création de la VM. Vous devez formater la valeur 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 un jour, deux heures, trois minutes et quatre secondes. Si vous ne spécifiez pas de durée, la durée par défaut est de 90 secondes.

    En fonction des exigences zonales de votre charge de travail, nous vous recommandons de spécifier l'une des durées suivantes pour augmenter vos chances de réussite de la demande de création de VM :

    • Charges de travail avec des exigences zonales strictes : si votre charge de travail vous oblige à créer la VM dans une zone spécifique, spécifiez une durée comprise entre 90 secondes et deux heures. Plus la durée est longue, plus vous avez de chances d'obtenir des ressources.
    • Charges de travail sans exigences strictes concernant les zones : si la VM peut s'exécuter dans n'importe quelle zone de la région, spécifiez une durée de zéro seconde (0). Cette action indique que Compute Engine n'alloue des ressources que si elles sont immédiatement disponibles. Si la requête de création de VM échoue en raison de l'indisponibilité des ressources, réessayez dans une autre zone.
  • MAX_RUN_DURATION : durée d'exécution des VM demandées. Vous devez mettre en forme la valeur en tant que nombre de secondes. Par exemple, spécifiez 86400 pour un jour. Cette valeur doit être comprise entre 10 minutes et sept jours.

Liée à la réservation

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values":[
      "RESERVATION"
    ]
  },
  "scheduling":{
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
  • ZONE : zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Pour en savoir plus, consultez Types de machines GPU.
  • VM_NAME : Nom de la VM.
  • DISK_SIZE : taille du disque de démarrage en Go
  • IMAGE_PROJECT : ID du projet de l'image OS.
  • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Détails des systèmes d'exploitation.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau virtuelles Google (gVNIC).
  • REGION : région du sous-réseau.
  • RDMA_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC qui utilisent des cartes d'interface réseau RDMA.
  • RESERVATION : nom de la réservation ou d'un bloc spécifique dans une réservation. Pour obtenir le nom de la réservation ou les blocs disponibles, consultez Afficher la capacité réservée. En fonction de vos exigences concernant l'emplacement des instances, choisissez l'une des options suivantes :
    • Pour créer l'instance sur un bloc :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      De plus, pour créer plusieurs instances dans le même bloc, appliquez la même stratégie d'emplacement compact qui spécifie une colocation de bloc (maxDistance=2) lors de la création de chaque instance. Compute Engine applique ensuite la règle à la réservation et crée des instances sur le même bloc.

    • Pour créer l'instance sur un bloc spécifique :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION : indique si Compute Engine arrête (STOP) ou supprime (DELETE) la VM à la fin de la période de réservation.

Spot

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "scheduling":
  {
    "provisioningModel": "SPOT",
    "instanceTerminationAction": "TERMINATION_ACTION"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
  • ZONE : zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Pour en savoir plus, consultez Types de machines GPU.
  • VM_NAME : Nom de la VM.
  • DISK_SIZE : taille du disque de démarrage en Go
  • IMAGE_PROJECT : ID du projet de l'image OS.
  • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Détails des systèmes d'exploitation.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau virtuelles Google (gVNIC).
  • REGION : région du sous-réseau.
  • RDMA_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC qui utilisent des cartes d'interface réseau RDMA.
  • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

Préparer l'instance pour l'utilisation

Pour préparer une instance à laquelle des GPU sont associés, procédez comme suit :

  1. Pour qu'une instance A4 ou A3 Ultra puisse utiliser ses GPU associés, des pilotes de GPU doivent être installés sur l'instance. À moins que l'image de l'instance n'inclue déjà les pilotes de GPU requis, installez les pilotes de GPU.

  2. Si vous avez créé une VM Spot dans la section précédente, procédez comme suit :

Étapes suivantes