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 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

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 (vWS) 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. Facultatif : Configurez le modèle de provisionnement. Par exemple, si votre charge de travail est tolérante aux pannes et peut résister à une éventuelle préemption de VM, envisagez d'utiliser des VM Spot pour réduire le coût de vos VM et des GPU associés. Pour en savoir plus, consultez GPU sur des VM Spot. Pour ce faire, procédez comme suit :

    1. Dans la section Règles de disponibilité, sélectionnez Spot dans la liste Modèle de provisionnement de VM. Ce paramètre désactive les options de redémarrage automatique et de maintenance de l'hôte pour la VM.
    2. Facultatif : dans la liste À l'arrêt de la VM, sélectionnez ce qui se passe lorsque Compute Engine préempte la VM :
      • 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.

Si votre charge de travail est tolérante aux pannes et peut résister à une éventuelle préemption de VM, envisagez d'utiliser des VM Spot pour réduire le coût de vos VM et des GPU associés. Pour en savoir plus, consultez GPU sur des VM Spot. --provisioning-model=SPOT est une option facultative qui configure vos VM en tant que VM Spot. Pour les VM Spot, les options de redémarrage automatique et de maintenance de l'hôte sont désactivées.

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 \
    [--provisioning-model=SPOT]

Remplacez les éléments suivants :

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

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.

Si votre charge de travail est tolérante aux pannes et peut résister à une éventuelle préemption de VM, envisagez d'utiliser des VM Spot pour réduire le coût de vos VM et des GPU associés. Pour en savoir plus, consultez GPU sur des VM Spot. "provisioningModel": "SPOT" est un paramètre facultatif qui configure vos VM en tant que VM Spot. Pour les VM Spot, les options de redémarrage automatique et de maintenance de l'hôte sont désactivées.

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

Remplacez les éléments suivants :

  • 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":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    ["provisioningModel": "SPOT"]
  },
}

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