Créer et démarrer une instance de VM avec des GPU NVIDIA

Ce document explique comment créer une instance de machine virtuelle (VM) basée sur Linux avec des unités de traitement graphique (GPU) NVIDIA. Pour effectuer des étapes similaires sur une instance de VM Windows, consultez Installer des pilotes de GPU NVIDIA sur une VM Windows.

Une machine virtuelle avec des GPU vous permet d'exécuter diverses charges de travail accélérées par GPU, par exemple l'intelligence artificielle et le machine learning.

Les machines virtuelles avec GPU font partie de la famille de machines de la série A "optimisées pour les accélérateurs", par exemple A2 et A3. Pour en savoir plus, consultez Afficher le type de machine VM.

Ce document est destiné aux développeurs des groupes d'administrateurs de plate-forme ou d'opérateurs d'applications qui créent des VM dans un environnement isolé Google Distributed Cloud (GDC). Pour en savoir plus, consultez Publics cibles de la documentation GDC sous air gap.

Avant de commencer

Préparer l'environnement

Pour utiliser les commandes de l'interface de ligne de commande (CLI) gdcloud, assurez-vous d'avoir téléchargé, installé et configuré la CLI gdcloud. Toutes les commandes de Distributed Cloud utilisent la CLI gdcloud ou kubectl et nécessitent un environnement Linux.

Demander des rôles IAM

Contactez l'administrateur IAM de votre projet pour demander les rôles suivants sur votre projet :

  • Administrateur de projet de machine virtuelle (project-vm-admin) : créez, modifiez, listez et supprimez des VM dans l'espace de noms du projet.

  • Lecteur de projet(project-viewer) : affichez toutes les ressources dans l'espace de noms du projet.

Tous les rôles de VM doivent être liés à l'espace de noms du projet dans lequel réside la VM. Suivez les étapes pour vérifier votre accès.

Créer une VM

Créez une VM en suivant les étapes décrites dans Créer une VM à partir d'une image et sélectionnez un type de machine de la série A.

Installer les pilotes NVIDIA

Cette section explique comment installer les pilotes NVIDIA sur votre instance de VM GDC.

Installer le package

À partir de la version v20250809, les images Ubuntu et Rocky Linux fournies par GDC sont préinstallées avec les pilotes NVIDIA.

Pour les versions d'image antérieures à v20250809 et les images personnalisées fournies par l'utilisateur, installez le pilote à partir du dépôt de packages GDC. Connectez-vous à la VM à l'aide de SSH et exécutez la commande correspondant à votre système d'exploitation (OS) de VM :

Ubuntu

 sudo apt install nvidia-dkms-570-server-open

Rocky Linux et RHEL

 sudo dnf install nvidia-driver-cuda

Exécuter DKMS

Activez le pilote NVIDIA sur votre VM avec la commande dkms. Vous n'avez besoin d'effectuer cette tâche qu'une seule fois par VM :

   sudo dkms autoinstall

Installer le kit d'outils CUDA

Le kit d'outils NVIDIA CUDA est disponible dans les dépôts de packages GDC. Connectez-vous à la VM à l'aide de SSH, puis exécutez la commande correspondant à votre système d'exploitation de VM :

Ubuntu

 sudo apt install cuda-toolkit-12-8

Rocky Linux et RHEL

 sudo dnf install cuda-toolkit-12-8

Activer le démarrage sécurisé et signer les pilotes

Si vous devez activer le démarrage sécurisé sur votre VM avec des GPU, vous devez signer les pilotes de GPU. Reportez-vous aux instructions correspondant à votre système d'exploitation.

Ubuntu

  1. Connectez-vous à la VM à l'aide de SSH.
  2. Passez à l'utilisateur racine :

    sudo su
    
  3. Générez une clé MOK si elle n'existe pas déjà :

    [ -f /var/lib/shim-signed/mok/MOK.der ] || openssl req -new -x509 -newkey rsa:2048 -keyout /var/lib/shim-signed/mok/MOK.priv \
        -outform DER -out /var/lib/shim-signed/mok/MOK.der \
        -nodes -days 36500 -subj "/CN=DKMS Signing Key/"
    
  4. Inscrivez la clé à l'aide de mokutil :

    mokutil --import /var/lib/shim-signed/mok/MOK.der
    
  5. Lorsque vous y êtes invité, créez et saisissez un nouveau mot de passe de votre choix.

  6. Signez les modules de noyau NVIDIA à l'aide du MOK :

    for module in nvidia nvidia_drm nvidia_modeset nvidia_uvm nvidia_peermem; do
        /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der $(modinfo -n $module)
    done
    

Rocky Linux et RHEL

  1. Connectez-vous à la VM à l'aide de SSH.
  2. Passez à l'utilisateur racine :

    sudo su
    
  3. Signez le pilote avec la clé à l'aide de dkms autoinstall :

    sudo dkms autoinstall
    
  4. Inscrivez la clé DKMS dans MOK :

    mokutil --import /var/lib/dkms/mok.pub
    

Finaliser l'inscription et la validation MOK

Pour accéder à l'écran de gestion MOK, assurez-vous de redémarrer l'instance de VM et de vous connecter immédiatement au port série. L'écran est sensible au temps et n'apparaît que brièvement pendant le processus de démarrage. Plus précisément, procédez comme suit :

  1. Redémarrez l'instance de VM :

    reboot
    
  2. Connectez-vous à la console série de la VM. Pour en savoir plus, consultez Se connecter à un port série.

  3. Inscrivez le MOK à partir de la console :

    Écran de gestion MOK de la console série de la VM

    Écran de gestion MOK de la console série de la VM avec l'option "Enroll MOK" (Enregistrer MOK) mise en évidence

    Vous pouvez afficher la clé pour vous assurer qu'elle correspond à celle générée lors d'une étape précédente :

    Écran de gestion MOK de la console série de la VM avec l'option "Continuer" sélectionnée

  4. Saisissez le mot de passe que vous avez sélectionné précédemment :

    Écran de gestion MOK de la console série de la VM demandant un mot de passe

  5. Sélectionnez "Reboot" (Redémarrer) dans le menu de gestion MOK :

    Écran de gestion MOK de la console série de la VM avec l'option "Reboot" (Redémarrer) sélectionnée

  6. Vérifiez que le pilote NVIDIA fonctionne en exécutant nvidia-smi.

    La sortie affiche l'état du GPU et les informations sur le pilote :

    $ nvidia-smi
    Wed Aug 13 00:09:17 2025
    +-----------------------------------------------------------------------------------------+
    | NVIDIA-SMI 570.158.01             Driver Version: 570.158.01     CUDA Version: 12.8     |
    |-----------------------------------------+------------------------+----------------------+
    | 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  NVIDIA H200                    Off |   00000000:08:00.0 Off |                    0 |
    | N/A   42C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   1  NVIDIA H200                    Off |   00000000:09:00.0 Off |                    0 |
    | N/A   36C    P0            127W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   2  NVIDIA H200                    Off |   00000000:0A:00.0 Off |                    0 |
    | N/A   34C    P0            122W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   3  NVIDIA H200                    Off |   00000000:0B:00.0 Off |                    0 |
    | N/A   40C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   4  NVIDIA H200                    Off |   00000000:0C:00.0 Off |                    0 |
    | N/A   39C    P0            125W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   5  NVIDIA H200                    Off |   00000000:0D:00.0 Off |                    0 |
    | N/A   35C    P0            122W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   6  NVIDIA H200                    Off |   00000000:0E:00.0 Off |                    0 |
    | N/A   39C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   7  NVIDIA H200                    Off |   00000000:0F:00.0 Off |                    0 |
    | N/A   35C    P0            121W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    
    +-----------------------------------------------------------------------------------------+
    | Processes:                                                                              |
    |  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
    |        ID   ID                                                               Usage      |
    |=========================================================================================|
    |  No running processes found                                                             |
    +-----------------------------------------------------------------------------------------+
    

Étape suivante