Pour utiliser des GPU avec une Confidential VM, vous devez créer une instance Confidential VM à l'aide du modèle de provisionnement Spot ou Flex Start basé sur le type de machine a3-highgpu-1g et utiliser Intel TDX. Après avoir créé l'instance de VM, vous activez le mode Informatique confidentielle sur le GPU associé.
Exigence de quota de GPU
Avant de créer une instance de VM confidentielle avec GPU, assurez-vous que vous disposez d'un quota de GPU suffisant alloué à votre projet Google Cloud. Pour créer une instance de VM confidentielle avec GPU, vous devez disposer d'un quota suffisant pour les types de quota suivants :
Quota de GPU préemptifs pour les modèles de GPU que vous souhaitez créer dans chaque région.
Quota mondial pour le nombre total de GPU de tous types dans toutes les régions.
Pour demander une augmentation de ces quotas de GPU, consultez Demander un quota de GPU préemptifs et Demander un quota global.
Demander un quota préemptif
Pour demander une augmentation de quota régional de GPU NVIDIA H100 préemptifs, procédez comme suit :
Dans la console Google Cloud , accédez à la page Quotas.
Dans la zone Filtre, saisissez
PREEMPTIBLE_NVIDIA_H100_GPUS
, puis appuyez sur la touche Entrée ou Retour.Dans la colonne Dimensions du tableau, recherchez la ligne correspondant à la région dont vous souhaitez augmenter le quota.
Sur cette ligne, cliquez sur
Autres actions, puis sur Modifier le quota.Dans le volet Modifications de quota, saisissez le nombre de GPU souhaité dans la zone Nouvelle valeur.
Cliquez sur Envoyer la requête.
Demander un quota mondial
Pour demander une augmentation globale du quota, procédez comme suit :
Dans la console Google Cloud , accédez à la page Quotas.
Dans la zone Filtrer, saisissez
GPUS_ALL_REGIONS
, puis appuyez sur la touche Entrée ou Retour.Dans la ligne qui s'affiche, cliquez sur
Autres actions, puis sur Modifier le quota.Dans le volet Modifications de quota, saisissez le nombre de GPU souhaité dans la zone Nouvelle valeur.
Cliquez sur Envoyer la requête.
Que se passe-t-il après une demande de quota ?
Si votre demande de quota est acceptée, vous recevrez un e-mail de confirmation. Patientez 15 minutes après avoir reçu l'e-mail, puis actualisez la page Quotas pour vérifier si le quota a été modifié. Si le quota n'a toujours pas été mis à jour au bout de 15 minutes, contactez Cloud Customer Care.
Si votre demande de quota est refusée, vous recevrez peut-être un e-mail vous expliquant la marche à suivre. Pour demander à nouveau plus de quota, suivez les instructions de l'e-mail.
Créer une instance Confidential VM avec GPU
Pour créer une instance de VM à l'aide du modèle Spot ou Démarrage flexible, procédez comme suit :
Pour utiliser le modèle Spot, créez une instance de VM Spot optimisée pour les accélérateurs. Pour connaître la procédure détaillée, consultez Modèle Spot.
Pour utiliser le modèle de démarrage flexible, créez un groupe d'instances géré (MIG). Pour connaître la procédure détaillée, consultez Modèle à démarrage flexible.
Modèle Spot
gcloud
Pour créer une instance de VM Spot optimisée pour les accélérateurs avec gcloud CLI, utilisez la sous-commande instances create
avec l'option --provisioning-model
.
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=SPOT \
--confidential-compute-type=TDX \
--machine-type=a3-highgpu-1g \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
Indiquez les valeurs suivantes :
INSTANCE_NAME
: nom de la nouvelle instance de VM.IMAGE_PROJECT
: projet contenant l'image du système d'exploitation compatible. Nous vous recommandons d'utiliser le projet d'imageubuntu-os-cloud
pour les images Ubuntu. Vous pouvez également utiliser le projet d'imagesconfidential-vm-images
pour les images Container-Optimized OS.IMAGE_FAMILY_NAME
: famille de l'image de système d'exploitation compatible avec les Confidential VM. Lorsque vous utilisez le projet d'imageubuntu-os-cloud
, nous vous recommandons d'utiliser la famille d'imagesubuntu-2204-lts
. Pour les images Container-Optimized OS du projetconfidential-vm-images
, utilisez la famille d'imagescos-tdx-113-lts
.ZONE_NAME
: zone compatible dans laquelle créer la VM.
REST
Pour créer une instance VM Spot, envoyez la requête POST suivante avec le contenu de corps approprié.
Méthode HTTP et URL :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Corps JSON de la requête :
{
"name": "INSTANCE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "TDX"
},
"machineType": "zones/ZONE_NAME/machineTypes/a3-highgpu-1g",
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT"
},
"disks": [
{
"autoDelete": true,
"boot": true,
"index": 0,
"initializeParams": {
"diskSizeGb": "30",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
},
"kind": "compute#attachedDisk",
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT",
"kind": "compute#accessConfig",
"networkTier": "PREMIUM"
}
],
"kind": "compute#networkInterface",
"name": "nic0",
"network": "projects/PROJECT_ID/global/networks/default"
}
]
}
Indiquez les valeurs suivantes :
INSTANCE_NAME
: nom du nouveau modèle d'instance de VM.IMAGE_PROJECT
: projet contenant l'image du système d'exploitation compatible. Nous vous recommandons d'utiliser le projet d'imageubuntu-os-cloud
pour les images Ubuntu. Vous pouvez également utiliser le projet d'imagesconfidential-vm-images
pour les images Container-Optimized OS.IMAGE_FAMILY_NAME
: famille de l'image de système d'exploitation compatible avec les Confidential VM. Lorsque vous utilisez le projet d'imageubuntu-os-cloud
, nous vous recommandons d'utiliser la famille d'imagesubuntu-2204-lts
. Pour les images Container-Optimized OS du projetconfidential-vm-images
, utilisez la famille d'imagescos-tdx-113-lts
.PROJECT_ID
: facultatif. ID du projet dans lequel créer la VM.ZONE_NAME
: zone compatible dans laquelle créer la VM.
Modèle à démarrage flexible
Pour utiliser le modèle de démarrage flexible, vous devez d'abord créer un modèle d'instance, puis un groupe d'instances géré (MIG) à l'aide de ce modèle. Vous pouvez ensuite ajouter des instances de VM avec GPU au MIG à l'aide de demandes de redimensionnement.
L'utilisation d'une requête de redimensionnement de MIG avec le modèle de provisionnement Démarrage flexible améliore l'obtention des instances de VM avec GPU. Pour en savoir plus, consultez À propos des requêtes de redimensionnement dans un MIG.
Avant de commencer
Consultez les conditions préalables pour créer un MIG et les limites pour créer une demande de redimensionnement dans un MIG.
Créer un MIG avec des instances de VM avec GPU
Pour créer un modèle d'instance, puis l'utiliser pour créer un MIG, procédez comme suit.
Créez un modèle d'instance.
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=TDX \ --machine-type=a3-highgpu-1g \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --reservation-affinity=none \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_ID
Pour activer le démarrage sécurisé, vous pouvez éventuellement utiliser l'indicateur
--shielded-secure-boot
pour les démarrages d'instances de VM.Indiquez les valeurs suivantes :
INSTANCE_TEMPLATE_NAME
: nom du nouveau modèle d'instance de VM.IMAGE_PROJECT
: projet contenant l'image du système d'exploitation compatible. Nous vous recommandons d'utiliser le projet d'imageubuntu-os-cloud
pour les images Ubuntu. Vous pouvez également utiliser le projet d'imagesconfidential-vm-images
pour les images Container-Optimized OS.IMAGE_FAMILY_NAME
: famille de l'image de système d'exploitation compatible avec les Confidential VM. Lorsque vous utilisez le projet d'imageubuntu-os-cloud
, nous vous recommandons d'utiliser la famille d'imagesubuntu-2204-lts
. Pour les images Container-Optimized OS du projetconfidential-vm-images
, utilisez la famille d'imagescos-tdx-113-lts
.RUN_DURATION
: durée d'exécution des instances de VM demandées. Vous devez formater la valeur en nombre de jours, d'heures, de minutes ou de secondes, suivis respectivement ded
,h
,m
ets
. Par exemple, spécifiez30m
pour 30 minutes ou1d2h3m4s
pour un jour, deux heures, trois minutes et quatre secondes. Cette valeur doit être comprise entre 10 minutes et sept jours.PROJECT_ID
: facultatif. ID du projet dans lequel créer la VM.
REST
Pour créer un modèle d'instance Confidential VM, envoyez la requête POST suivante avec le contenu de corps approprié.
Méthode HTTP et URL :
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Corps JSON de la requête :
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "TDX" }, "machineType": "a3-highgpu-1g", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": RUN_DURATION }, "automaticRestart": true, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START", "preemptible": false }, "disks": [ { "autoDelete": true, "index": 0, "boot": true, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME", "diskSizeGb": "30" }, "type": "PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "canIpForward": false } }
Pour activer le démarrage sécurisé, vous pouvez éventuellement inclure l'objet suivant pour les démarrages d'instances de VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }
Indiquez les valeurs suivantes :
PROJECT_ID
: facultatif. ID du projet dans lequel créer la VM.ZONE_NAME
: zone compatible dans laquelle créer le MIG.INSTANCE_TEMPLATE_NAME
: nom du nouveau modèle d'instance de VM.IMAGE_PROJECT
: projet contenant l'image du système d'exploitation compatible. Nous vous recommandons d'utiliser le projet d'imageubuntu-os-cloud
pour les images Ubuntu. Vous pouvez également utiliser le projet d'imagesconfidential-vm-images
pour les images Container-Optimized OS.IMAGE_FAMILY_NAME
: famille de l'image de système d'exploitation compatible avec les Confidential VM. Lorsque vous utilisez le projet d'imageubuntu-os-cloud
, nous vous recommandons d'utiliser la famille d'imagesubuntu-2204-lts
. Pour les images Container-Optimized OS du projetconfidential-vm-images
, utilisez la famille d'imagescos-tdx-113-lts
.RUN_DURATION
: durée, en secondes, pendant laquelle vous souhaitez que les instances de VM demandées s'exécutent. La valeur doit être comprise entre600
et604800
secondes, ce qui correspond à une plage comprise entre 10 minutes et sept jours.
Créez un MIG et une requête de redimensionnement pour ajouter toutes les instances de VM avec GPU à la fois.
Répertoriez les instances présentes dans le MIG.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
Indiquez les valeurs suivantes :
INSTANCE_GROUP_NAME
: nom du MIG.ZONE_NAME
: zone compatible à partir de laquelle obtenir la liste des instances de VM.PROJECT_ID
: facultatif. ID du projet à partir duquel obtenir la liste des instances de VM.
REST
Pour répertorier toutes les instances, envoyez la requête GET suivante.
Méthode HTTP et URL :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Pour limiter la liste des instances à une zone spécifique, envoyez la requête GET suivante.
Méthode HTTP et URL :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Indiquez les valeurs suivantes :
ZONE_NAME
: zone compatible à partir de laquelle obtenir la liste des instances de VM.PROJECT_ID
: ID du projet pour lequel vous souhaitez obtenir une liste des instances de VM.
Activer le mode d'informatique confidentielle sur le GPU
Connectez-vous à une instance de VM du MIG à l'aide de la commande gcloud compute ssh.
gcloud compute ssh
Mettez à jour la liste des packages et installez les outils et bibliothèques nécessaires.
sudo apt-get update --yes sudo apt-get install linux-headers-$(uname -r) sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12
Installez les pilotes de GPU appropriés sur l'instance de VM. Pour les instances de VM sur lesquelles le démarrage sécurisé est activé, consultez Installer des pilotes de GPU (VM avec démarrage sécurisé). Nous vous recommandons d'utiliser la version
nvidia-driver-575-open
du pilote.Pour configurer une communication sécurisée entre le GPU et le pilote de GPU, activez l'API Linux Kernel Crypto (LKCA).
echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf sudo update-initramfs -u
Activez le mode persistant pour établir une connexion SPDM (Security Protocol and Data Model) sécurisée entre le GPU et le pilote de GPU.
sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service sudo systemctl daemon-reload
Redémarrez l'instance de VM pour appliquer les configurations LKCA et du mode persistant.
sudo reboot
(Facultatif) Installez les exemples CUDA suivants.
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.5.tar.gz tar xzvf cuda-samples.tar.gz
Étapes suivantes
Découvrez comment vérifier que le mode confidentiel est activé sur les GPU.
Découvrez comment vérifier votre quota de GPU.
Consultez VM GPU et quotas d'allocation préemptive pour comprendre la consommation de quotas.