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


Ce document explique comment créer une VM à laquelle sont associés des GPU et qui utilise une famille de machines N1. Vous pouvez utiliser la plupart des types de machines N1, à l'exception de N1 shared-core.

Avant de commencer

  • Pour découvrir les étapes préalables supplémentaires, telles que la sélection d'une image de l'OS et la vérification du quota de GPU, consultez le document de présentation.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

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

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

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 la section Gérer les accès.

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 attribuer un ancien réseau à la VM : compute.networks.use sur le projet
  • 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 ancien réseau : compute.networks.useExternalIp sur le projet
  • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
  • 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 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.

Présentation

Les modèles de GPU suivants peuvent être associés à des VM utilisant des familles de machines N1.

GPU NVIDIA :

  • NVIDIA T4 : nvidia-tesla-t4
  • NVIDIA P4 : nvidia-tesla-p4
  • NVIDIA P100 : nvidia-tesla-p100
  • NVIDIA V100 : nvidia-tesla-v100
  • NVIDIA K80 : nvidia-tesla-k80. Consultez la page Fin de vie de NVIDIA K80.

Poste de travail virtuel NVIDIA RTX (vWS) (anciennement NVIDIA GRID) :

  • Poste de travail virtuel NVIDIA T4 : nvidia-tesla-t4-vws
  • Poste de travail virtuel NVIDIA P4 : nvidia-tesla-p4-vws
  • Poste de travail virtuel NVIDIA P100 : nvidia-tesla-p100-vws

    Pour ces postes de travail virtuels, une licence de poste de travail virtuel NVIDIA RTX (vWS) est automatiquement ajoutée à votre VM.

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

Vous pouvez créer une VM N1 à laquelle sont associés des GPU à l'aide de la console Google Cloud, de Google Cloud CLI ou de REST.

Console

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

    Accéder à la page Créer une instance

  2. Spécifiez un nom pour votre VM. Consultez la convention d'attribution de noms des ressources.

  3. Sélectionnez une région et une zone dans lesquelles les GPU sont disponibles. Consultez la liste des zones où les GPU sont disponibles.

  4. Dans la section Configuration de la machine, sélectionnez la famille de machines GPU, puis procédez comme suit :

    1. Dans la liste Type de GPU, sélectionnez l'un des modèles de GPU compatibles avec la machine N1.
    2. Dans la liste Nombre de GPU, sélectionnez le nombre de GPU.
    3. Si votre modèle de GPU est compatible avec les postes de travail virtuels NVIDIA RTX pour les charges de travail graphiques et que vous prévoyez d'exécuter des charges de travail graphiques lourdes sur la VM, sélectionnez l'option Activer Poste de travail virtuel (NVIDIA GRID).

    4. Dans la liste Type de machine, sélectionnez l'un des types de machines N1 prédéfinis. Vous pouvez également spécifier des paramètres personnalisés de type de machine.

  5. Dans la section Disque de démarrage, cliquez sur Modifier. La page Configuration du disque de démarrage s'ouvre.

  6. 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 Sélectionner pour confirmer vos options de disque de démarrage.
  7. Développez la section Options avancées.

    1. Développez la section Gestion.
    2. Dans la liste Pendant la maintenance de l'hôte, sélectionnez Arrêter l'instance de VM. Les VM auxquelles sont associés des GPU ne peuvent pas migrer à chaud. Consultez la section Gérer les événements de l'hôte GPU.
    3. Dans la liste Redémarrage automatique, sélectionnez Désactivé.
  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 en savoir plus, consultez la section GPU sur des instances préemptives.

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

--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 instance 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 :

    • GPU NVIDIA :

      • NVIDIA T4 : nvidia-tesla-t4
      • NVIDIA P4 : nvidia-tesla-p4
      • NVIDIA P100 : nvidia-tesla-p100
      • NVIDIA V100 : nvidia-tesla-v100
      • NVIDIA K80 : nvidia-tesla-k80. Consultez la page Fin de vie de NVIDIA K80.
    • Poste de travail virtuel NVIDIA RTX (vWS) (anciennement NVIDIA GRID) :

      • Poste de travail virtuel NVIDIA T4 : nvidia-tesla-t4-vws
      • Poste de travail virtuel NVIDIA P4 : nvidia-tesla-p4-vws
      • Poste de travail virtuel NVIDIA P100 : nvidia-tesla-p100-vws

        Pour ces postes de travail virtuels, une licence de poste de travail virtuel NVIDIA RTX (vWS) est automatiquement ajoutée à votre VM.

Exemple

Par exemple, vous pouvez exécuter la commande gcloud suivante pour démarrer une VM Ubuntu 22.04 avec un GPU NVIDIA T4 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-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure

REST

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.

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 instance 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 :

    • GPU NVIDIA :

      • NVIDIA T4 : nvidia-tesla-t4
      • NVIDIA P4 : nvidia-tesla-p4
      • NVIDIA P100 : nvidia-tesla-p100
      • NVIDIA V100 : nvidia-tesla-v100
      • NVIDIA K80 : nvidia-tesla-k80. Consultez la page Fin de vie de NVIDIA K80.
    • Poste de travail virtuel NVIDIA RTX (vWS) (anciennement NVIDIA GRID) :

      • Poste de travail virtuel NVIDIA T4 : nvidia-tesla-t4-vws
      • Poste de travail virtuel NVIDIA P4 : nvidia-tesla-p4-vws
      • Poste de travail virtuel NVIDIA P100 : nvidia-tesla-p100-vws

        Pour ces postes de travail virtuels, une licence de poste de travail virtuel NVIDIA RTX (vWS) est automatiquement ajoutée à votre VM.

Installer les pilotes

Pour installer les pilotes, choisissez l'une des options suivantes :

Étape suivante