Créer des VM auxquelles sont associés des GPU


Compute Engine offre la possibilité d'ajouter des processeurs graphiques (GPU) aux machines virtuelles (VM). Vous pouvez utiliser ces GPU pour accélérer des charges de travail spécifiques sur vos VM, telles que le machine learning et le traitement des données.

Cette page explique comment créer une VM avec des GPU associés. Si vous souhaitez ajouter des GPU aux VM existantes, consultez la page Ajouter ou supprimer des GPU.

Pour plus d'informations sur ce que vous pouvez faire avec les GPU et sur les types de matériel GPU disponibles, consultez la page GPU dans Compute Engine.

Avant de commencer

  • Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, procédez comme suit :
    1. Installez la dernière version de l'outil de ligne de commande gcloud ou appliquez la mise à jour correspondante.
    2. Définissez une région et une zone par défaut.
  • Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
  • Consultez la page sur la tarification des GPU dans Compute Engine pour mieux comprendre le coût d'utilisation des GPU sur vos VM.
  • Consultez la section sur les restrictions imposées aux VM comportant des GPU.
  • Vérifiez votre quota de GPU.
  • Choisissez une image de système d'exploitation :
    • Si vous exploitez des GPU pour le machine learning, vous pouvez utiliser une instance Deep Learning VM Image pour votre VM. Les instances Deep Learning VM Image ont des pilotes de GPU pré-installés et incluent des packages tels que TensorFlow et PyTorch. Vous pouvez également utiliser les images de VM de deep learning pour les charges de travail générales des GPU. Pour en savoir plus sur les images disponibles et les packages installés sur les images, consultez la page Choisir une image.
    • Vous pouvez également utiliser n'importe quelle image publique ou image personnalisée, mais certaines images peuvent nécessiter un pilote ou un processus d'installation spécifique non traité dans ce document. Vous devez identifier les pilotes appropriés pour vos images. Pour connaître les étapes d'installation des pilotes, consultez la section concernant l'installation des pilotes de GPU.

Vérifier le quota de GPU

Pour protéger les systèmes et les utilisateurs de Compute Engine, les nouveaux projets bénéficient d'un quota global de GPU, ce qui limite le nombre total de GPU que vous pouvez créer dans les zones disponibles.

Exécutez la commande regions describe pour vous assurer que vous disposez d'un quota de GPU suffisant dans la région où vous souhaitez créer des VM avec les GPU.

gcloud compute regions describe REGION

Remplacez REGION par la région pour laquelle vous souhaitez vérifier le quota de GPU.

Si vous avez besoin d'un quota de GPU supplémentaire, demandez une augmentation de quota. Lorsque vous demandez un quota de GPU, vous devez demander un quota pour les modèles de GPU que vous souhaitez créer dans chaque région, mais également un quota mondial supplémentaire pour le nombre total de GPU de tout type dans toutes les zones.

Si votre projet a un historique de facturation établi, il recevra automatiquement un quota après l'envoi de la demande.

Présentation

Pour créer une VM avec des GPU associés, procédez comme suit :

  1. Créez la VM. La méthode utilisée pour créer une VM dépend du modèle de GPU.

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

  3. Si vous avez activé des postes de travail virtuels NVIDIA® GRID, installez les pilotes GRID® pour les postes de travail virtuels.

Créer des VM avec des GPU associés (GPU A100)

Cette section explique comment créer des VM auxquelles sont associés des GPU NVIDIA® A100. Pour les autres types de GPU, consultez la section Créer des VM avec des GPU associés (autres types de GPU).

Limites (A100)

  • Les types de machines a2-megagpu-16g ne sont pas compatibles avec le système d'exploitation Windows. Si vous utilisez un système d'exploitation Windows, choisissez un autre type de machine. Pour obtenir la liste des types de machines, consultez la section GPU NVIDIA® A100.
  • Pour les VM Windows utilisant des types de machines A2, vous ne pouvez pas effectuer un formatage rapide des disques SSD locaux associés. Pour formater ces disques SSD locaux, vous devez effectuer un formatage complet en utilisant l'utilitaire diskpart et en spécifiant format fs=ntfs label=tmpfs.

Console

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur Create instance (Créer une instance).

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

  4. Sélectionnez une région et une zone dans lesquelles les GPU sont disponibles. Consultez la liste des zones où le GPU A100 est disponible.

  5. Dans la section Machine configuration (Configuration de la machine), procédez comme suit :

    1. Sous Famille de machines, cliquez sur GPU.
    2. Sous Série, sélectionnez A2.
    3. Sous Machine type (Type de machine), sélectionnez le type de machine A2 souhaité.

      Section sur la configuration de la machine.

    4. Développez la section Plate-forme du processeur et GPU.

      Section sur la configuration du GPU.

    5. Sous Plate-forme du processeur et GPU, consultez les champs Type de GPU et Nombre de GPU.

  6. Pour configurer votre disque de démarrage, dans la section Disque de démarrage, cliquez sur Modifier. La page Configuration du disque de démarrage s'ouvre.

  7. 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.
    2. Spécifiez une taille de disque de démarrage d'au moins 40 Go.
    3. Cliquez sur Enregistrer pour confirmer vos options de disque de démarrage.
  8. Configurez tous les autres paramètres de VM dont vous avez besoin. Par exemple, vous pouvez modifier les paramètres de préemption pour configurer votre VM en tant qu'instance préemptive. Cela réduit le coût de votre VM et des GPU utilisés. Pour plus d'informations, consultez la section GPU sur des instances préemptives.

  9. Cliquez sur le bouton Créer pour créer et démarrer la VM.

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 à définir l'option --maintenance-policy TERMINATE.

--preemptible est une option facultative qui configure votre VM en tant qu'instance préemptive. Cela réduit le coût de votre VM et des GPU utilisés. Pour en savoir plus, consultez la section GPU sur des instances préemptives.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

Remplacez l'élément suivant :

  • VM_NAME : nom de la nouvelle VM.
  • MACHINE_TYPE : type de machine A2 que vous avez sélectionné pour la VM.
  • ZONE : zone de la VM. Cette zone doit être compatible avec les GPU A100.
  • 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.
  • IMAGE ou IMAGE_FAMILY compatibles avec les GPU. Spécifiez l'une des options suivantes :

    • IMAGE : version requise d'une image publique. Exemple :--image debian-10-buster-v20200309
    • IMAGE_FAMILY : famille d'images. Cette action crée la VM à partir de l'image de l'OS la plus récente et non obsolète. Par exemple, si vous spécifiez --image-family debian-10, Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.

    Vous pouvez également spécifier une image personnalisée ou une instance Deep Learning VM Image.

  • IMAGE_PROJECT : projet d'image Compute Engine auquel la famille d'images appartient. Si vous utilisez une image personnalisée ou une instance Deep Learning VM Image, spécifiez le projet auquel ces images appartiennent.

API

Dans l'API, 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.

"preemptible": true est un paramètre facultatif qui permet de configurer votre VM en tant qu'instance préemptive. Cela réduit le coût de votre VM et des GPU utilisés. Pour en savoir plus, consultez la section GPU sur des instances préemptives.

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": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

Remplacez l'élément suivant :

  • VM_NAME : Nom de la VM.
  • PROJECT_ID : ID de votre projet.
  • ZONE : zone de la VM. Cette zone doit être compatible avec les GPU A100.
  • MACHINE_TYPE : type de machine A2 que vous avez sélectionné pour la VM.
  • IMAGE ou IMAGE_FAMILY : spécifiez l'un des éléments suivants :

    • IMAGE : version requise d'une image publique. Exemple : "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY : famille d'images. Cette action crée la VM à partir de l'image de l'OS la plus récente et non obsolète. Par exemple, si vous spécifiez "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.

    Vous pouvez également spécifier une image personnalisée ou une instance Deep Learning VM Image.

  • IMAGE_PROJECT : projet d'image Compute Engine auquel la famille d'images appartient. Si vous utilisez une image personnalisée ou une VM Deep Learning VM Image, spécifiez le projet auquel ces images appartiennent.

  • 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 default pour utiliser votre réseau par défaut.

Étape suivante : Installez le pilote de GPU sur votre VM pour que votre système puisse utiliser l'appareil. Pour les GPU A100, CUDA 11 est requis.

Exemples (GPU A100)

Dans ces exemples, les VM sont créées avec des GPU NVIDIA® A100 à l'aide de l'outil de ligne de commande gcloud. Toutefois, vous pouvez également utiliser Google Cloud Console ou l'API Compute Engine pour créer ces VM.

Les exemples suivants montrent comment créer des VM à l'aide des images suivantes :

Image DLVM

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.

  1. Créez une VM à l'aide de l'image tf2-ent-2-3-cu110 et du type de machine a2-highgpu-1g. Dans cet exemple, des options facultatives, telles que la taille du disque de démarrage et le champ d'application, sont spécifiées.

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-c \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --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 l'élément suivant :

    • VM_NAME : nom de votre VM.
    • PROJECT_ID : ID de votre projet.
  2. L'exemple de commande précédent génère également un notebook AI Platform Notebooks pour la VM. Pour accéder au notebook, accédez à la page AI Platform dans Google Cloud Console.

    Accéder à la page AI Platform

Image publique ou personnalisée

Vous pouvez créer des VM avec des GPU associés qui utilisent une image publique disponible sur Compute Engine ou une image personnalisée.

Pour créer une VM à l'aide de l'image la plus récente et non obsolète de la famille d'images CentOS 7 et du type de machine a2-highgpu-1g, procédez comme suit :

  1. Créez la VM. Dans cet exemple, des options facultatives, telles que le type et la taille du disque de démarrage, sont également spécifiées.

    gcloud compute instances create VM_NAME \
        --project PROJECT_ID \
        --zone us-central1-c \
        --machine-type a2-highgpu-1g \
        --maintenance-policy TERMINATE --restart-on-failure \
        --image-family centos-7 \
        --image-project centos-cloud \
        --boot-disk-size 200GB \
        --boot-disk-type pd-ssd
    

    Remplacez l'élément suivant :

    • VM_NAME : nom de votre VM.
    • PROJECT_ID : ID de votre projet.
  2. Installez le pilote NVIDIA et CUDA. Pour les GPU NVIDIA® A100, la version 11 (ou une version ultérieure) de CUDA est requise.

COS

Vous pouvez créer des VM avec des GPU associés qui utilisent des images optimisées pour les conteneurs (COS).

Pour créer une VM à l'aide de l'image cos-85-lts et du type de machine a2-highgpu-1g, procédez comme suit depuis votre client local : Les exemples suivants peuvent être exécutés sur un client Mac ou Linux :

  1. S'il n'existe pas déjà, créez un répertoire /tmp.

    mkdir /tmp
  2. Ajoutez un fichier de configuration /cloud-init.yaml au répertoire /tmp.

    Ces informations sont requises pour configurer votre VM optimisée pour les conteneurs et installent également le pilote NVIDIA et CUDA au démarrage de la VM.

    cat <<'EOF' > /tmp/cloud-init.yaml
    #cloud-config
    
    write_files:
      - path: /etc/systemd/system/cos-gpu-installer.service
        permissions: 0755
        owner: root
        content: |
          [Unit]
          Description=Run the GPU driver installer container
          Requires=network-online.target gcr-online.target
          After=network-online.target gcr-online.target
    
          [Service]
          User=root
          Type=oneshot
          RemainAfterExit=true
          Environment=INSTALL_DIR=/var/lib/nvidia
          ExecStartPre=/bin/mkdir -p ${INSTALL_DIR}
          ExecStartPre=/bin/mount --bind ${INSTALL_DIR} ${INSTALL_DIR}
          ExecStartPre=/bin/mount -o remount,exec ${INSTALL_DIR}
          ExecStart=/usr/bin/docker run --privileged \
                                        --net=host  \
                                        --pid=host \
                                        --volume ${INSTALL_DIR}:/usr/local/nvidia \
                                        --volume /dev:/dev \
                                        --volume /:/root \
                                        --env NVIDIA_DRIVER_VERSION=450.80.02 \
                                        gcr.io/cos-cloud/cos-gpu-installer:v20200701
          StandardOutput=journal+console
          StandardError=journal+console
    
    runcmd:
      - systemctl daemon-reload
      - systemctl enable cos-gpu-installer.service
      - systemctl start cos-gpu-installer.service
    
    EOF
    
  3. Créez une VM optimisée pour les conteneurs à l'aide de la famille d'images cos-85-lts et du type de machine a2-highgpu-1g.

    Vous devez fournir le fichier de configuration à l'aide de l'option -metadata-from-file user-data.

    Dans cet exemple, l'option facultative sur la taille du disque de démarrage est également spécifiée.

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-a \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family cos-85-lts \
       --image-project cos-cloud \
       --boot-disk-size 200GB \
       --metadata-from-file user-data=/tmp/cloud-init.yaml
    

    Remplacez l'élément suivant :

    • VM_NAME : nom de votre VM.
    • PROJECT_ID : ID de votre projet.

    Connectez-vous à la VM une fois celle-ci créée et exécutez la commande suivante pour vérifier que le pilote NVIDIA est installé.

    /var/lib/nvidia/bin/nvidia-smi

    L'installation du pilote prend environ cinq minutes.

GPU multi-instances (A100)

Un GPU multi-instance partitionne un seul GPU NVIDIA A100 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 au GPU A100 de fournir un service de qualité de service (QoS) garanti jusqu'à sept fois supérieur à l'utilisation par rapport aux modèles de GPU précédents.

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 VM avec des GPU A100 associés.

  2. Activez les pilotes de GPU NVIDIA.

  3. Activez les GPU multi-instances et redémarrez la VM.

    sudo nvidia-smi -mig 1
    sudo reboot
    
  4. 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.5gb     19     7/7        4.75       No     14     0     0   |
    |                                                          1     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 2g.10gb    14     3/3        9.75       No     28     1     0   |
    |                                                          2     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 3g.20gb     9     2/2        19.62      No     42     2     0   |
    |                                                          3     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 4g.20gb     5     1/1        19.62      No     56     2     0   |
    |                                                          4     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 7g.40gb     0     1/1        39.50      No     98     5     0   |
    |                                                          7     1     1   |
    +--------------------------------------------------------------------------+
    
  5. 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 crée deux instances de GPU MIG 3g.20gb à l'aide d'une combinaison du nom de profil abrégé (3g.20gb) et 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,3g.20gb -C
    

    Le résultat ressemble à ce qui suit :

    Successfully created GPU instance ID  2 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 3g.20gb (ID  2)
    Successfully created GPU instance ID  1 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  1 using profile MIG 3g.20gb (ID  2)
    
  6. Vérifiez que les deux GPU multi-instances sont créés :

    sudo nvidia-smi mig -lgi
    

    Le résultat ressemble à ce qui suit :

    +----------------------------------------------------+
    | GPU instances:                                     |
    | GPU   Name          Profile  Instance   Placement  |
    |                       ID       ID       Start:Size |
    |====================================================|
    |   0  MIG 3g.20gb       9        1          0:4     |
    +----------------------------------------------------+
    |   0  MIG 3g.20gb       9        2          4:4     |
    +----------------------------------------------------+
    
  7. Vérifiez que les GI et les CI correspondants sont créés.

    sudo nvidia-smi
    

    Le résultat ressemble à ce qui suit :

    Tue May 18 18:32:22 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.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  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                   On |
    | N/A   43C    P0    52W / 350W |     22MiB / 40537MiB |     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  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

Créer des VM avec des GPU associés (autres types de GPU)

Vous pouvez créer une VM avec un ou plusieurs GPU à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud ou de l'API Compute Engine.

Cette section explique comment créer des VM à l'aide des types de GPU suivants :

  • NVIDIA® T4 : nvidia-tesla-t4
  • Poste de travail virtuel NVIDIA® T4 avec NVIDIA® GRID® : nvidia-tesla-t4-vws
  • NVIDIA V100 : nvidia-tesla-v100
  • NVIDIA® P100 : nvidia-tesla-p100
  • Poste de travail virtuel NVIDIA® P100 avec NVIDIA® GRID® : nvidia-tesla-p100-vws

  • NVIDIA® P4 : nvidia-tesla-p4

  • Poste de travail virtuel NVIDIA® P4 avec NVIDIA® GRID® : nvidia-tesla-p4-vws

  • NVIDIA® K80 : nvidia-tesla-k80

Console

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur Create instance (Créer une instance).

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

  4. Sélectionner une région et une zone Consultez la liste des zones où les GPU sont disponibles.

  5. Sur la page Machine configuration (Configuration de la machine), procédez comme suit :

    1. Sous Série, sélectionnez N1.
    2. Sous Machine type (Type de machine), sélectionnez le type de machine N1 souhaité. Vous pouvez également spécifier des paramètres de type de machine personnalisés si vous le souhaitez.
    3. Développez la section Plate-forme du processeur et GPU.
    4. Cliquez sur Ajouter un GPU.

      Section sur la configuration de la machine.

    5. Spécifiez le type de GPU et le nombre de GPU.
    6. Si votre modèle de GPU est compatible avec les postes de travail virtuels et que vous prévoyez d'exécuter des charges de travail graphiques lourdes sur la VM, sélectionnez l'option Enable Virtual Workstation (NVIDIA GRID) (Activer le poste de travail virtuel (NVIDIA GRID).

      Pour en savoir plus sur les postes de travail virtuels NVIDIA® GRID, consultez la section GPU NVIDIA® GRID® pour les charges de travail graphiques.

      Section sur la configuration du GPU.

  6. Pour sélectionner votre système d'exploitation, dans la section Disque de démarrage, cliquez sur Modifier. La page Configuration du disque de démarrage s'ouvre.

  7. 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.
    2. Spécifiez une taille de disque de démarrage d'au moins 40 Go.
    3. Cliquez sur Enregistrer pour confirmer vos options de disque de démarrage.
  8. Configurez tous les autres paramètres d'instance dont vous avez besoin. Par exemple, vous pouvez modifier les paramètres de préemption pour configurer votre instance en tant qu'instance préemptive. Cela réduit le coût de votre instance et des GPU utilisés. Pour plus d'informations, consultez la section GPU sur des instances préemptives.

  9. Cliquez sur le bouton Créer pour créer et démarrer la VM.

gcloud

Pour créer et démarrer une VM, exécutez la commande gcloud compute instances create avec les options suivantes.

--preemptible est une option facultative qui configure votre VM en tant qu'instance préemptive. Cela réduit le coût de votre VM et des GPU utilisés. Pour en savoir plus, consultez la section GPU sur des instances préemptives.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

Remplacez l'élément suivant :

  • VM_NAME : nom de la nouvelle VM.
  • MACHINE_TYPE : type de machine que vous avez sélectionné pour la VM.
  • ZONE : zone de la VM. Cette zone doit être compatible avec le type de GPU.
  • 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.
  • IMAGE ou IMAGE_FAMILY compatibles avec les GPU. Spécifiez l'une des options suivantes :

    • IMAGE : version requise d'une image publique. Exemple :--image debian-10-buster-v20200309
    • IMAGE_FAMILY : famille d'images. Cette action crée la VM à partir de l'image de l'OS la plus récente et non obsolète. Par exemple, si vous spécifiez --image-family debian-10, Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.

    Vous pouvez également spécifier une image personnalisée ou une instance Deep Learning VM Image.

  • IMAGE_PROJECT : projet d'image Compute Engine auquel la famille d'images appartient. Si vous utilisez une image personnalisée ou une VM Deep Learning VM Image, spécifiez le projet auquel ces images appartiennent.

  • ACCELERATOR_COUNT : nombre de GPU que vous souhaitez ajouter à la VM. Consultez la page GPU sur Compute Engine pour obtenir la liste des limites de GPU en fonction du type de machine de votre VM.

  • ACCELERATOR_TYPE : modèle de GPU que vous souhaitez utiliser. Si vous prévoyez d'exécuter des charges de travail graphiques lourdes sur la VM, utilisez l'un des modèles de postes de travail virtuels.

    Choisissez l'une des valeurs suivantes :

    • NVIDIA® T4 : nvidia-tesla-t4
    • Poste de travail virtuel NVIDIA® T4 avec NVIDIA® GRID® : nvidia-tesla-t4-vws
    • NVIDIA® P4 : nvidia-tesla-p4
    • Poste de travail virtuel NVIDIA® P4 avec NVIDIA® GRID® : nvidia-tesla-p4-vws
    • NVIDIA® P100 : nvidia-tesla-p100
    • Poste de travail virtuel NVIDIA® P100 avec NVIDIA® GRID® : nvidia-tesla-p100-vws
    • NVIDIA V100 : nvidia-tesla-v100
    • NVIDIA® K80 : nvidia-tesla-k80

Exemple

Par exemple, vous pouvez exécuter la commande gcloud suivante pour démarrer une VM Ubuntu 16.04 avec un GPU NVIDIA K80 et deux processeurs virtuels dans la zone us-east1-d.

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-k80,count=1 \
    --image-family ubuntu-1604-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure

API

Identifiez le type de GPU que vous souhaitez ajouter à votre VM. Soumettez une demande GET pour répertorier les types de GPU disponibles pour votre projet dans une zone spécifique.

"preemptible": true est un paramètre facultatif qui permet de configurer votre VM en tant qu'instance préemptive. Cela réduit le coût de votre VM et des GPU utilisés. Pour en savoir plus, consultez la section GPU sur des instances préemptives.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes

Remplacez l'élément suivant :

  • PROJECT_ID : ID du projet
  • ZONE : zone dans laquelle vous souhaitez répertorier les types de GPU disponibles.

Dans l'API, envoyez une requête POST à la méthode instances.insert. Incluez le paramètre acceleratorType pour spécifier le type de GPU que vous souhaitez utiliser et incluez le paramètre acceleratorCount pour spécifier le nombre de GPU à ajouter. Définissez également 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": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

Remplacez l'élément suivant :

  • VM_NAME : Nom de la VM.
  • PROJECT_ID : ID de votre projet.
  • ZONE : zone de la VM. Cette zone doit être compatible avec le type de GPU.
  • MACHINE_TYPE : type de machine que vous avez sélectionné pour l'instance. Consultez la section GPU sur Compute Engine pour connaître les types de machines disponibles en fonction du nombre de GPU souhaité.
  • IMAGE ou IMAGE_FAMILY : spécifiez l'un des éléments suivants :

    • IMAGE : version requise d'une image publique. Exemple : "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY : famille d'images. Cette action crée la VM à partir de l'image de l'OS la plus récente et non obsolète. Par exemple, si vous spécifiez "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.

    Vous pouvez également spécifier une image personnalisée ou une instance Deep Learning VM Image.

  • IMAGE_PROJECT : projet d'image Compute Engine auquel la famille d'images appartient. Si vous utilisez une image personnalisée ou une VM Deep Learning VM Image, spécifiez le projet auquel ces images appartiennent.

  • 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 default pour utiliser votre réseau par défaut.

  • ACCELERATOR_COUNT : nombre de GPU que vous souhaitez ajouter à la VM. Consultez la page GPU sur Compute Engine pour obtenir la liste des limites de GPU en fonction du type de machine de votre VM.

  • ACCELERATOR_TYPE : modèle de GPU que vous souhaitez utiliser. Si vous prévoyez d'exécuter des charges de travail graphiques lourdes sur la VM, utilisez l'un des modèles de postes de travail virtuels.

    Choisissez l'une des valeurs suivantes :

    • NVIDIA® T4 : nvidia-tesla-t4
    • Poste de travail virtuel NVIDIA® T4 avec NVIDIA® GRID® : nvidia-tesla-t4-vws
    • NVIDIA® P4 : nvidia-tesla-p4
    • Poste de travail virtuel NVIDIA® P4 avec NVIDIA® GRID® : nvidia-tesla-p4-vws
    • NVIDIA® P100 : nvidia-tesla-p100
    • Poste de travail virtuel NVIDIA® P100 avec NVIDIA® GRID® : nvidia-tesla-p100-vws
    • NVIDIA V100 : nvidia-tesla-v100
    • NVIDIA® K80 : nvidia-tesla-k80

Étape suivante : Pour vous assurer que votre système peut utiliser les GPU, procédez comme suit :

Étapes suivantes