Compute Engine offre la possibilité d'ajouter des processeurs graphiques (GPU) aux instances de machines virtuelles. Vous pouvez utiliser ces GPU pour accélérer des charges de travail spécifiques sur vos instances, telles que le machine learning et le traitement des données.
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 :
- Installez la dernière version de l'outil de ligne de commande gcloud ou appliquez la mise à jour correspondante.
- 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 instances.
- Consultez la page sur les restrictions imposées aux instances utilisant des GPU pour savoir comment ces instances fonctionnent de manière différente de la plupart des instances.
- Découvrez comment les instances fonctionnent lorsque vous planifiez leur arrêt pour les événements de maintenance de l'hôte. Si vous ajoutez des GPU à une instance, vous devez également configurer l'instance pour qu'elle s'arrête lors de la maintenance de l'hôte.
- Consultez la page des quotas pour vous assurer que vous avez suffisamment de GPU disponibles pour votre projet. Si vous avez besoin d'un quota de GPU supplémentaire, demandez une augmentation de quota.
- Choisissez une image de système d'exploitation :
- Si vous utilisez des GPU pour le machine learning, vous pouvez utiliser une image de VM de deep learning pour votre instance. Les images Deep Learning VM ont des pilotes de GPU pré-installés et incluent des packages tels que TensorFlow et PyTorch. Vous pouvez également utiliser les images Deep Learning VM pour les charges de travail générales des GPU. Pour plus d'informations sur les images disponibles et les packages installés sur les images, consultez la documentation de Deep Learning VM.
- 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 guide. 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.
Créer une instance avec un GPU
Lorsque vous créez une instance avec un ou plusieurs GPU, vous devez configurer l'instance pour qu'elle s'arrête lors de la maintenance de l'hôte. Les instances comportant des GPU ne peuvent pas migrer à chaud car elles sont affectées à des périphériques matériels spécifiques. Consultez les restrictions relatives aux GPU pour plus de détails.
Créez une instance 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.
Console
- Accédez à la page Instances de VM.
- Cliquez sur Créer une instance.
- Sélectionnez une zone où les GPU sont disponibles. Consultez la liste des zones où les GPU sont disponibles.
- Dans la section Configuration de la machine, sélectionnez le type de machine que vous souhaitez utiliser pour cette instance. Vous pouvez également spécifier des paramètres de type de machine personnalisés si vous le souhaitez.
- Dans la section Configuration de la machine, cliquez sur Plate-forme du processeur et GPU pour afficher les options avancées de type de machine et les GPU disponibles.
- Cliquez sur les GPU pour afficher la liste des GPU disponibles.
- Spécifiez le type de GPU et le nombre de GPU dont vous avez besoin.
- Si nécessaire, ajustez le type de machine en fonction des paramètres de GPU que vous désirez. Si vous laissez ces paramètres tels quels, l'instance utilise le type de machine prédéfini que vous avez spécifié avant d'ouvrir l'écran de personnalisation du type de machine.
- Pour configurer votre disque de démarrage, dans la section Disque de démarrage, cliquez sur Modifier.
- Dans l'onglet Images publiques, choisissez un système d'exploitation et une version.
- Cliquez sur Enregistrer pour confirmer vos options de disque de démarrage.
- 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.
- En bas de la page, cliquez sur Créer pour créer l'instance.
gcloud
Utilisez 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 instances avec GPU.
Remplacez region
par la région pour laquelle vous souhaitez vérifier le quota de GPU.
gcloud compute regions describe region
Pour créer et démarrer une instance, utilisez la commande gcloud compute instances create
avec les options suivantes :
gcloud compute instances create instance-name \ --machine-type machine-type --zone zone \ --accelerator type=accelerator-type,count=accelerator-count \ --image-family image-family --image-project image-project \ --maintenance-policy TERMINATE --restart-on-failure \ [--preemptible]
Remplacez l'élément suivant :
instance-name
: nom de la nouvelle instancemachine-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é.zone
: zone de l'instanceimage-family
: famille d'images compatible avec les GPUimage-project
: projet d'image auquel cette famille d'images appartientaccelerator-count
: nombre de GPU que vous souhaitez ajouter à votre instance. Consultez la section GPU sur Compute Engine pour obtenir la liste des limites de GPU en fonction du type de machine de votre instance.accelerator-type
: modèle de GPU que vous souhaitez utiliser. Appliquez l'une des valeurs suivantes :- NVIDIA® Tesla® T4 :
nvidia-tesla-t4
- Poste de travail virtuel NVIDIA® Tesla® T4 avec NVIDIA® GRID® :
nvidia-tesla-t4-vws
- NVIDIA® Tesla® P4 :
nvidia-tesla-p4
- Poste de travail virtuel NVIDIA® Tesla® P4 avec NVIDIA® GRID® :
nvidia-tesla-p4-vws
- NVIDIA® Tesla® P100 :
nvidia-tesla-p100
- Poste de travail virtuel NVIDIA® Tesla® P100 avec NVIDIA® GRID® :
nvidia-tesla-p100-vws
- NVIDIA® Tesla® V100 :
nvidia-tesla-v100
- NVIDIA® Tesla® K80 :
nvidia-tesla-k80
Consultez la section GPU sur Compute Engine pour obtenir la liste des modèles de GPU disponibles.
- NVIDIA® Tesla® T4 :
--preemptible
est une option facultative qui configure 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.
Par exemple, vous pouvez utiliser la commande gcloud
suivante pour démarrer une instance Ubuntu 16.04 avec un GPU NVIDIA Tesla 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 \ --accelerator type=nvidia-tesla-k80,count=1 \ --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud \ --maintenance-policy TERMINATE --restart-on-failure
Cet exemple de commande permet de démarrer l'instance, mais notez que CUDA et le pilote doivent être installés sur l'instance au préalable.
API
Identifiez le type de GPU que vous souhaitez ajouter à votre instance. Soumettez une demande GET pour répertorier les types de GPU disponibles pour votre projet dans une zone spécifique.
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes
Remplacez les éléments suivants :
project-id
: ID du projetzone
: zone dans laquelle vous souhaitez répertorier les types de GPU disponibles
Dans l'API, créez une requête POST pour créer une nouvelle instance. 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?key={YOUR_API_KEY} { "machineType": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/machineTypes/machine-type", "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskSizeGb": "disk-size", "sourceImage": "https://www.googleapis.com/compute/v1/projects/image-project/global/images/family/image-family" }, "boot": true } ], "name": "instance-name", "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network" } ], "guestAccelerators": [ { "acceleratorCount": accelerator-count, "acceleratorType": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes/accelerator-type" } ], "scheduling": { "onHostMaintenance": "terminate", "automaticRestart": true, ["preemptible": true] }, }
Remplacez l'élément suivant :
instance-name
: nom de l'instanceproject-id
: ID de votre projetzone
: zone de l'instancemachine-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-family
: image de disque de démarrage pour votre instance. Spécifiez une famille d'images dans la liste des images publiques disponibles.image-project
: projet d'image auquel cette famille d'images appartientdisk-size
: taille de votre disque de démarrage en Gonetwork
: réseau VPC que vous souhaitez utiliser pour l'instance. Vous pouvez spécifierdefault
pour utiliser votre réseau par défaut.accelerator-count
: nombre de GPU que vous souhaitez ajouter à votre instance. Consultez la section GPU sur Compute Engine pour obtenir la liste des limites de GPU en fonction du type de machine de votre instance.accelerator-type
: modèle de GPU que vous souhaitez utiliser. Consultez la section GPU sur Compute Engine pour obtenir la liste des modèles de GPU disponibles."preemptible": true
est un paramètre facultatif qui permet de configurer votre instance en tant qu'instance préemptive. Cela réduit le coût de votre instance et des GPU utilisés. Pour en savoir plus, consultez la page GPU sur des instances préemptives.
Ensuite, installez le pilote GPU sur votre instance pour que votre système puisse utiliser le périphérique.
Ajouter ou supprimer des GPU sur des instances existantes
Vous pouvez ajouter des GPU sur vos instances existantes ou les retirer, mais vous devez d'abord arrêter l'instance et modifier le paramètre de maintenance de l'hôte pour qu'elle s'arrête plutôt que de migrer à chaud. Les instances comportant des GPU ne peuvent pas migrer à chaud car elles sont affectées à des périphériques matériels spécifiques. Consultez les restrictions relatives aux GPU pour plus de détails.
Sachez également que vous devez installer les pilotes de GPU sur cette instance après avoir ajouté un GPU. L'image de disque de démarrage que vous avez utilisée pour créer cette instance détermine les pilotes nécessaires. Vous devez identifier les pilotes appropriés pour le système d'exploitation sur les images de disque de démarrage persistantes de votre instance. Consultez la section Installer des pilotes de GPU pour plus de détails.
Vous pouvez ajouter des GPU à une instance ou supprimer des GPU d'une instance à l'aide de Google Cloud Console ou de l'API.
Console
Vous pouvez ajouter ou supprimer des GPU dans votre instance en arrêtant celle-ci et en modifiant sa configuration.
Vérifiez que toutes vos applications critiques sont arrêtées sur l'instance.
Accédez à la page Instances de VM pour afficher votre liste d'instances.
Cliquez sur le nom de l'instance à laquelle vous souhaitez ajouter des GPU. La page Informations sur l'instance de VM s'affiche.
Procédez comme suit à partir de la page Informations sur l'instance de VM.
En haut de la page, cliquez sur Arrêter pour arrêter l'instance.
Une fois l'instance arrêtée, cliquez sur Modifier pour modifier ses propriétés.
Si l'instance dispose d'un type de machine à cœur partagé, vous devez modifier le type de machine pour avoir un ou plusieurs processeurs virtuels. Vous ne pouvez pas ajouter d'accélérateurs à des instances avec des types de machines à cœur partagé.
Dans la section Configuration de la machine, cliquez sur Plate-forme du processeur et GPU pour afficher les options avancées de type de machine et les GPU disponibles.
Cliquez sur Ajouter un GPU. Si vous possédez déjà des GPU, ceux-ci sont affichés à la place de la section Ajouter un GPU.
Cliquez sur Type de GPU pour afficher la liste des GPU disponibles.
Sélectionnez le nombre de GPU et le modèle de GPU que vous souhaitez ajouter à votre instance. Vous pouvez également supprimer un GPU en cliquant sur le X situé à côté du GPU existant.
Consultez la section Pendant la maintenance de l'hôte.
- Si vous avez ajouté des GPU à une instance, le paramètre de maintenance de l'hôte est automatiquement défini sur Arrêter l'instance de VM. Consultez la section Gérer les événements de maintenance de l'hôte GPU.
- Si vous avez supprimé des GPU de l'instance, vous pouvez éventuellement redéfinir le paramètre de maintenance de l'hôte sur Transférer l'instance de VM.
En bas de la page, cliquez sur Enregistrer pour appliquer vos modifications.
Une fois les paramètres de l'instance enregistrés, cliquez sur Démarrer en haut de la page pour redémarrer l'instance.
API
Vous pouvez ajouter des GPU à votre instance ou les supprimer en arrêtant l'instance et en modifiant la configuration de votre instance via l'API.
Vérifiez que toutes vos applications critiques sont arrêtées sur l'instance, puis créez une commande POST pour arrêter l'instance afin qu'elle puisse être déplacée vers un système hôte sur lequel les GPU sont disponibles.
POST https://compute.googleapis.com/compute/v1/projects/compute/zones/zone/instances/instance-name/stop
Remplacez l'élément suivant :
Identifiez le type de GPU que vous souhaitez ajouter à votre instance. Soumettez une demande GET pour répertorier les types de GPU disponibles pour votre projet dans une zone spécifique.
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes
Remplacez les éléments suivants :
project-id
: ID de votre projetzone
: zone dans laquelle vous souhaitez répertorier les types de GPU disponibles
Si l'instance dispose d'un type de machine à cœur partagé, vous devez modifier le type de machine pour avoir un ou plusieurs processeurs virtuels. Vous ne pouvez pas ajouter d'accélérateurs à des instances avec des types de machines à cœur partagé.
Une fois l'instance arrêtée, créez une requête POST pour ajouter ou supprimer un ou plusieurs GPU sur votre instance.
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name/setMachineResources { "guestAccelerators": [ { "acceleratorCount": accelerator-count, "acceleratorType": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes/accelerator-type" } ] }
Remplacez l'élément suivant :
instance-name
: nom de l'instanceproject-id
: ID de votre projetzone
: zone de l'instanceaccelerator-count
: nombre de GPU que vous souhaitez ajouter à votre instance. Pour obtenir la liste des limites de GPU en fonction du type de machine de votre instance, consultez la page GPU sur Compute Engine.accelerator-type
: modèle de GPU que vous souhaitez utiliser. Pour obtenir la liste des modèles de GPU disponibles, consultez la page GPU sur Compute Engine.
Créez une requête POST pour définir les options de planification de l'instance. Si vous ajoutez des GPU à une instance, vous devez spécifier
"onHostMaintenance": "TERMINATE"
. Si vous supprimez des GPU d'une instance, vous pouvez également spécifier"onHostMaintenance": "MIGRATE"
.POST https://compute.googleapis.com/compute/v1/projects/compute/zones/zone/instances/instance-name/setScheduling { "onHostMaintenance": "maintenance-type", "automaticRestart": true }
Remplacez l'élément suivant :
instance-name
: nom de l'instance à laquelle vous souhaitez ajouter des GPUzone
: zone où se trouve l'instancemaintenance-type
: action que votre instance doit effectuer lorsque la maintenance de l'hôte est nécessaire. IndiquezTERMINATE
si vous ajoutez des GPU à votre instance. Vous pouvez également spécifier"onHostMaintenance": "MIGRATE"
si vous avez supprimé tous les GPU de votre instance et que vous souhaitez que l'instance reprenne la migration en réponse aux événements de maintenance de l'hôte.
Démarrez l'instance.
POST https://compute.googleapis.com/compute/v1/projects/compute/zones/zone/instances/instance-name/start
Remplacez l'élément suivant :
Ensuite, installez le pilote de GPU sur votre instance pour que votre système puisse utiliser le périphérique.
Étape suivante
- Obtenez plus d'informations sur les GPU sur Compute Engine.
- Ajoutez des disques SSD locaux à vos instances. Les disques SSD locaux fonctionnent bien avec les GPU lorsque vos applications nécessitent un stockage hautes performances.
- Créez des groupes d'instances de GPU à l'aide des modèles d'instance.
- Pour surveiller les performances du GPU, consultez la section Surveiller les performances des GPU.
- Pour optimiser les performances du GPU, consultez la section Optimiser les performances des GPU.
- Pour gérer la maintenance de l'hôte GPU, consultez la section Gérer les événements de maintenance de l'hôte GPU.
- Suivez le tutoriel Exécuter des charges de travail d'inférence TensorFlow avec des GPU TensorRT5 et NVIDIA T4.