Créer une instance A3 High ou A2

Ce document explique comment créer une instance de machine virtuelle (VM) qui utilise un type de machine des séries de machines optimisées pour les accélérateurs A2 ou A3 High.

Pour les types de machines A3 High, ce document ne couvre que les types de machines associés à moins de huit GPU. Ces types de machines A3 High avec moins de huit GPU ne peuvent être créés que sous forme de VM Spot ou de VM à démarrage flexible. Pour créer une instance A3 à laquelle sont associés huit GPU, consultez Créer une instance A3 Mega, A3 High ou A3 Edge avec GPUDirect activé.

Pour créer plusieurs VM A3 ou A2, vous pouvez également utiliser l'une des options suivantes :

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 (comme la sélection d'une image de l'OS et la vérification du 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 que la Google Cloud CLI est installée, initialisez-la 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 que la Google Cloud CLI est installée, initialisez-la 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 de VM, 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 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 VM. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

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

  • 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 étiquettes pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service que doit utiliser 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.

Créer une VM à laquelle sont associés des GPU

Vous pouvez créer une VM optimisée pour les accélérateurs A2 ou A3 à l'aide de la consoleGoogle Cloud , de Google Cloud CLI ou de REST.

Console

  1. Accédez à la page Créer une instance dans la console Google Cloud .

    Accéder à la page "Créer une instance"
  2. Dans le champ Nom, saisissez un nom unique pour votre instance. Consultez la convention d'attribution de noms des ressources.
  3. Sélectionnez une région et une zone dans lesquelles ces types de machines GPU sont disponibles. Consultez Régions et zones GPU.
  4. Dans la section "Types de machines", sélectionnez GPU.
    1. Dans la liste Type de GPU, sélectionnez le type de GPU.
      • Pour les VM optimisées pour les accélérateurs A2, sélectionnez NVIDIA A100 40GB ou NVIDIA A100 80GB.
      • Pour les VM optimisées pour les accélérateurs A3, sélectionnez NVIDIA H100 80GB.
    2. Dans la liste Nombre de GPU, sélectionnez le nombre de GPU.
  5. Configurez le disque de démarrage comme suit :
    1. Dans la section OS et stockage, cliquez sur Modifier. La page Configuration du disque de démarrage s'ouvre.
    2. Sur la page Configuration du disque de démarrage, procédez comme suit :
      1. Dans l'onglet Images publiques, choisissez une image Compute Engine acceptée ou une instance Deep Learning VM Image.
      1. Spécifiez une taille de disque de démarrage d'au moins 40 Gio.
      2. Cliquez sur Sélectionner pour confirmer vos options de disque de démarrage.
  6. Configurez le modèle d'approvisionnement. Dans la section Options avancées, sous Modèle de provisionnement de VM, sélectionnez l'une des options suivantes :
    • Standard : pour les charges de travail à usage général.
    • Démarrage flexible : pour les charges de travail de courte durée qui peuvent tolérer une heure de début flexible. Pour en savoir plus, consultez À propos des VM à démarrage flexible.
    • Spot : pour les charges de travail tolérantes aux pannes qui peuvent être préemptées. Pour en savoir plus, consultez VM Spot.
  7. Facultatif : Dans la liste À l'arrêt de la VM, sélectionnez ce qui se passe lorsque Compute Engine préempte les VM Spot ou que les VM à démarrage flexible atteignent la fin de leur durée d'exécution :
    • 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.
  8. Pour créer et démarrer la VM, cliquez sur Créer.

gcloud

Pour créer et démarrer une VM, exécutez la commande gcloud compute instances create avec les options suivantes. Les VM comportant des GPU ne peuvent pas migrer à chaud. Veillez donc à définir l'option --maintenance-policy=TERMINATE.

L'exemple de commande montre également l'indicateur --provisioning-model. Ce flag définit le modèle de provisionnement de la VM. Cette option est requise lorsque vous créez des types de machines A3 avec moins de huit GPU. Elle doit être définie sur SPOT ou FLEX_START. Pour les types de machines A2, cet indicateur est facultatif. Si vous ne spécifiez pas de modèle, le modèle de provisionnement standard est utilisé. Pour en savoir plus, consultez Modèles de provisionnement des instances Compute Engine.

  gcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --zone=ZONE \
      --boot-disk-size=DISK_SIZE \
      --image=IMAGE \
      --image-project=IMAGE_PROJECT \
      --maintenance-policy=TERMINATE \
      --provisioning-model=PROVISIONING_MODEL
  
Remplacez les éléments suivants :
  • VM_NAME : nom de la nouvelle VM.
  • MACHINE_TYPE : type de machine A2 ou type de machine A3 avec 1, 2 ou 4 GPU. Pour les types de machines A3, vous devez spécifier un modèle d'approvisionnement.
  • ZONE : zone de la VM. Cette zone doit être compatible avec le modèle de GPU sélectionné.
  • DISK_SIZE : taille de votre disque de démarrage en Gio. Spécifiez une taille de disque de démarrage d'au moins 40 Gio.
  • IMAGE : image de système d'exploitation compatible avec les GPU. Si vous souhaitez utiliser l'image la plus récente dans une famille d'images, remplacez l'option --image par l'option --image-family et définissez sa valeur sur une famille d'images compatible avec les GPU. Exemple : --image-family=rocky-linux-8-optimized-gcp.
    Vous pouvez également spécifier une image personnalisée ou une instance Deep Learning VM Image.
  • IMAGE_PROJECT : projet d'image Compute Engine auquel l'image de l'OS appartient. Si vous utilisez une image personnalisée ou une instance Deep Learning VM Image, spécifiez le projet auquel ces images appartiennent.
  • PROVISIONING_MODEL : modèle d'approvisionnement à utiliser pour créer la VM. Vous pouvez spécifier SPOT ou FLEX_START. Si vous supprimez l'indicateur --provisioning-model de la commande, le modèle de provisionnement standard est utilisé. Cet indicateur est obligatoire lorsque vous créez des VM A3 avec moins de huit GPU.

REST

Envoyez une requête POST à la méthode instances.insert. Les VM comportant des GPU ne peuvent pas migrer à chaud. Veillez à définir le paramètre onHostMaintenance sur TERMINATE.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
"disks":
[
  {
    "type": "PERSISTENT",
    "initializeParams":
    {
      "diskSizeGb": "DISK_SIZE",
      "sourceImage": "SOURCE_IMAGE_URI"
    },
    "boot": true
  }
],
"name": "VM_NAME",
"networkInterfaces":
[
  {
    "network": "projects/PROJECT_ID/global/networks/NETWORK"
  }
],
"scheduling":
{
  "onHostMaintenance": "terminate",
  "automaticRestart": true
}
}

Remplacez les éléments suivants :
  • VM_NAME : nom de la nouvelle VM.
  • PROJECT_ID : ID de votre projet.
  • ZONE : zone de la VM. Cette zone doit être compatible avec le modèle de GPU sélectionné.
  • MACHINE_TYPE : type de machine A2 ou type de machine A3 avec 1, 2 ou 4 GPU. Pour les types de machines A3, vous devez spécifier un modèle d'approvisionnement.
  • PROVISIONING_MODEL : modèle d'approvisionnement de la VM. Indiquez SPOT ou FLEX_START. Ce champ est obligatoire lorsque vous créez des VM A3 avec moins de huit GPU. Pour les VM A2, ce champ est facultatif. Si vous ne spécifiez pas de modèle, le modèle de provisionnement standard est utilisé. Pour en savoir plus, consultez Modèles de provisionnement des instances Compute Engine.
  • SOURCE_IMAGE_URI : URI de l'image ou de la famille d'images spécifique que vous souhaitez utiliser. Par exemple :
    • Image spécifique : "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-10-optimized-gcp-v20251017"
    • Famille d'images : "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-10-optimized-gcp"
    Lorsque vous spécifiez une famille d'images, Compute Engine crée une VM à partir de l'image de l'OS non obsolète la plus récente dans cette famille. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques concernant les familles d'images.
  • DISK_SIZE : taille de votre disque de démarrage en Go Spécifiez une taille de disque de démarrage d'au moins 40 Go.
  • NETWORK : réseau VPC que vous souhaitez utiliser pour la VM. Vous pouvez spécifier "par défaut" pour utiliser votre réseau par défaut.
Paramètres supplémentaires :
  • Pour spécifier un modèle de provisionnement, ajoutez le champ "provisioningModel": "PROVISIONING_MODEL" à l'objet scheduling de votre requête. Cette option est requise pour les types de machines A3 comportant moins de huit GPU. Si vous spécifiez de créer des VM Spot, les champs onHostMaintenance et automaticRestart sont ignorés.
    "scheduling":
      {
        "onHostMaintenance": "terminate",
        "automaticRestart": true,
        "provisioningModel": "PROVISIONING_MODEL"
      }
    

Installer les pilotes

Installez le pilote de GPU sur votre VM pour que celle-ci puisse utiliser le GPU.

Exemples

Dans ces exemples, la plupart des VM sont créées à l'aide de Google Cloud CLI. Toutefois, vous pouvez également utiliser Google Cloud console ou REST pour créer ces VM.

Les exemples suivants montrent comment créer une VM Spot A3 à l'aide d'une image d'OS standard et une VM A2 à l'aide d'une image Deep Learning VM Images.

Créer une VM Spot A3 à l'aide de la famille d'images d'OS Debian 13

Cet exemple crée une VM Spot A3 (a3-highgpu-1g) à l'aide de la famille d'images d'OS Debian 13.

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a3-highgpu-1g \
    --provisioning-model=SPOT \
    --maintenance-policy=TERMINATE \
    --image-family=debian-13 \
    --image-project=debian-cloud \
    --boot-disk-size=200GB \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Remplacez les éléments suivants :

  • VM_NAME : nom de votre instance de VM
  • PROJECT_ID : ID de votre projet.
  • ZONE : zone de l'instance de VM

Créer une VM A2 avec une instance de notebooks gérés par l'utilisateur Vertex AI Workbench sur la VM

Cet exemple crée une VM A2 Standard (a2-highgpu-1g) à l'aide de l'image tf2-ent-2-3-cu110 Deep Learning VM Images. Dans cet exemple, des options facultatives, telles que la taille du disque de démarrage et le champ d'application, sont spécifiées.

L'utilisation d'images DLVM est le moyen le plus simple de commencer, car les pilotes NVIDIA et les bibliothèques CUDA sont déjà préinstallés sur ces images.

Ces images fournissent également des optimisations des performances.

Les images DLVM suivantes sont compatibles avec les GPU NVIDIA A100 :

  • common-cu110 : pilote NVIDIA et CUDA préinstallé
  • tf-ent-1-15-cu110 : pilote NVIDIA, CUDA, TensorFlow Enterprise 1.15.3 préinstallé
  • tf2-ent-2-1-cu110 : pilote NVIDIA, CUDA, TensorFlow Enterprise 2.1.1 préinstallé
  • tf2-ent-2-3-cu110 : pilote NVIDIA, CUDA, TensorFlow Enterprise 2.3.1 préinstallé
  • pytorch-1-6-cu110 : pilote NVIDIA, CUDA, PyTorch 1.6

Pour en savoir plus sur les images DLVM disponibles et les packages installés sur les images, consultez la documentation consacrée aux VM de deep learning.

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a2-highgpu-1g \
    --maintenance-policy=TERMINATE \
    --image-family=tf2-ent-2-3-cu110 \
    --image-project=deeplearning-platform-release \
    --boot-disk-size=200GB \
    --metadata="install-nvidia-driver=True,proxy-mode=project_editors" \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Remplacez les éléments suivants :

  • VM_NAME : nom de votre instance de VM
  • PROJECT_ID : ID de votre projet.
  • ZONE : zone de l'instance de VM

L'exemple de commande précédent génère également une instance de notebooks gérés par l'utilisateur Vertex AI Workbench pour la VM. Pour accéder au notebook, accédez à la page Vertex AI Workbench > Notebooks gérés par l'utilisateur dans la console Google Cloud .

Accéder à la page "Notebooks gérés par l'utilisateur".

GPU multi-instance

Un GPU multi-instance partitionne un seul GPU NVIDIA A100 ou NVIDIA H100 dans la même VM en sept instances GPU indépendantes. Elles s'exécutent simultanément, chacune avec sa propre mémoire, le cache et ses multiprocesseurs de diffusion. Cette configuration permet aux GPU NVIDIA A100 et H100 de fournir une qualité de service (QoS) cohérente jusqu'à sept fois supérieure à l'utilisation par rapport aux modèles de GPU précédents.

Vous pouvez créer jusqu'à sept GPU multi-instances. Pour les GPU A100 de 40 Go, chaque GPU multi-instance se voit attribuer 5 Go de mémoire. Avec les GPU A100 80 Go, la mémoire allouée double à 10 Go chacun. Avec les GPU H100 de 80 Go, chaque GPU multi-instance se voit également attribuer 10 Go de mémoire.

Pour en savoir plus sur l'utilisation des GPU multi-instances, consultez le guide de l'utilisateur sur les GPU multi-instances NVIDIA.

Pour créer des GPU multi-instances, procédez comme suit :

  1. Créez une instance de VM A2 (A100) ou A3 (H100) optimisée pour les accélérateurs.

  2. Connectez-vous à l'instance de VM. Pour en savoir plus, consultez Se connecter à des VM Linux ou Se connecter à des VM Windows.

  3. Activez les pilotes de GPU NVIDIA.

  4. Activez les GPU multi-instances.

    sudo nvidia-smi -mig 1
    
  5. Examinez les formes de GPU multi-instances disponibles.

    sudo nvidia-smi mig --list-gpu-instance-profiles
    

    Le résultat ressemble à ce qui suit :

    +-----------------------------------------------------------------------------+
    | GPU instance profiles:                                                      |
    | GPU   Name             ID    Instances   Memory     P2P    SM    DEC   ENC  |
    |                              Free/Total   GiB              CE    JPEG  OFA  |
    |=============================================================================|
    |   0  MIG 1g.10gb       19     7/7        9.62       No     16     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.10gb+me    20     1/1        9.62       No     16     1     0   |
    |                                                             1     1     1   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.20gb       15     4/4        19.50      No     26     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 2g.20gb       14     3/3        19.50      No     32     2     0   |
    |                                                             2     2     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 3g.40gb        9     2/2        39.25      No     60     3     0   |
    |                                                             3     3     0   |
    +-----------------------------------------------------------------------------+
    .......
    
  6. Créez le GPU multi-instance (GI) et les instances de calcul associées (CI) de votre choix. Vous pouvez créer ces instances en spécifiant le nom de profil complet ou abrégé, l'ID de profil ou une combinaison des deux. Pour en savoir plus, consultez la page Créer des instances de GPU.

    L'exemple suivant permet de créer deux instances de GPU MIG 3g.20gb à l'aide de l'ID de profil (9).

    L'option -C est également spécifiée, elle sert à créer les instances de calcul associées au profil requis.

    sudo nvidia-smi mig -cgi 9,9 -C
    
  7. Vérifiez que les deux GPU multi-instances sont créés :

    sudo nvidia-smi mig -lgi
    
  8. Vérifiez que les GI et les CI correspondants sont créés.

    sudo nvidia-smi
    

    Le résultat ressemble à ce qui suit :

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA H100 80G...  Off  | 00000000:04:00.0 Off |                   On |
    | N/A   33C    P0    70W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    |   1  NVIDIA H100 80G...  Off  | 00000000:05:00.0 Off |                   On |
    | N/A   32C    P0    69W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

Étape suivante