Installer des pilotes de GPU


Une fois que vous avez créé une instance avec un ou plusieurs GPU, votre système requiert des pilotes d'appareils NVIDIA pour que vos applications puissent accéder à l'appareil. Assurez-vous que vos instances de machine virtuelle (VM) disposent d'un espace disque disponible suffisant (choisissez au moins 30 Go pour le disque de démarrage lorsque vous créez la VM).

Ce document explique comment installer des pilotes propriétaires NVIDIA sur des VM créées à l'aide d'images publiques ou d'images personnalisées.

Pour installer des pilotes GRID pour les postes de travail virtuels, consultez la section Installer des pilotes GRID pour les postes de travail virtuels.

Avant de commencer

Versions du pilote NVIDIA, de CUDA Toolkit et des environnements d'exécution CUDA

Il existe différents composants de pilotes et d'exécutions avec versions gérées qui peuvent être nécessaires dans votre environnement. En voici quelques-uns :

  • Pilote NVIDIA
  • CUDA Toolkit
  • Environnement d'exécution CUDA

Lors de l'installation de ces composants, vous avez la possibilité de configurer votre environnement en fonction de vos besoins. Par exemple, si vous possédez une version antérieure de Tensorflow qui fonctionne le mieux avec une version antérieure du kit CUDA, mais que le GPU que vous souhaitez utiliser nécessite une version ultérieure du pilote NVIDIA, vous pouvez installer une version antérieure d'un kit CUDA avec une version ultérieure du pilote NVIDIA.

Cependant, vous devez vous assurer que vos versions de pilote NVIDIA et de CUDA Toolkit sont compatibles. Pour connaître la compatibilité de CUDA Toolkit et du pilote NVIDIA, consultez la documentation de NVIDIA sur la compatibilité avec CUDA.

Versions du pilote NVIDIA requises

Les GPU NVIDIA exécutés sur Compute Engine doivent utiliser les versions de pilotes NVIDIA suivantes :

  • Pour les GPU A100 :
    • Linux : 450.80.0 ou version ultérieure
    • Windows : 452.77 ou une version ultérieure
  • Pour tous les autres types de GPU :
    • Linux : pilote NVIDIA 410.79 ou version ultérieure
    • Windows : pilote 426.00 ou version ultérieure

Installer des pilotes GPU sur des VM

Pour installer le pilote NVIDIA sur la plupart des VM, vous pouvez installer le NVIDIA CUDA Toolkit.

Pour installer NVIDIA Toolkit, procédez comme suit :

  1. Sélectionnez un CUDA Toolkit compatible avec le pilote minimal dont vous avez besoin.

  2. Connectez-vous à la VM sur laquelle vous souhaitez installer le pilote.

  3. Sur votre VM, téléchargez et installez CUDA Toolkit. Vous trouverez le guide d'installation de chaque toolkit recommandé dans le tableau suivant. Avant d'installer le toolkit, veillez à suivre la procédure d'installation indiquée dans le guide d'installation.

    Type de GPU Version minimale de CUDA Toolkit recommandée Instructions d'installation
    • NVIDIA A100
    • NVIDIA T4
    • NVIDIA V100
    • NVIDIA P100
    • NVIDIA P4
    • NVIDIA K80

Exemples

Les étapes suivantes montrent comment installer CUDA 11 et les pilotes associés pour les GPU NVIDIA® sur certains systèmes d'exploitation.

CentOS/RHEL

  1. Connectez-vous à la VM sur laquelle vous souhaitez installer le pilote.

  2. Installez la dernière version du package de noyau. Si nécessaire, cette commande entraîne également le redémarrage du système.

    sudo yum clean all
    sudo yum install -y kernel | grep -q 'already installed' || sudo reboot
    
  3. Si le système a redémarré à l'étape précédente, reconnectez-vous à l'instance.

  4. Installez les en-têtes de noyau et les packages de développement.

    sudo yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
    
  5. Installez le dépôt epel-release. Ce dépôt comprend les packages DKMS requis pour installer les pilotes NVIDIA sur CentOS.

    • CentOS 7/8 et RHEL 7

      sudo yum install epel-release
      
    • RHEL 8 uniquement

      sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
      
  6. Installez yum-utils.

    sudo yum install yum-utils
    
  7. Sélectionnez un dépôt de pilotes pour le CUDA Toolkit et ajoutez-le à votre instance.

    • CentOS/RHEL 8

      sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
      
    • CentOS/RHEL 7

      sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
      
  8. Nettoyez le cache Yum :

    sudo yum clean all
    
  9. Installez CUDA.

    • CentOS/RHEL 8

      sudo dnf -y module install nvidia-driver:latest-dkms
      sudo dnf -y install cuda
      
    • CentOS/RHEL 7

      sudo yum -y install nvidia-driver-latest-dkms cuda
      
  10. Installez le pilote NVIDIA. Cette commande installe CUDA 11.

    sudo yum -y install cuda-drivers
    

SLES

  1. Connectez-vous à la VM sur laquelle vous souhaitez installer le pilote.

  2. Installez le dernier package de noyau. Si nécessaire, cette commande entraîne également le redémarrage du système.

    sudo zypper refresh
    sudo zypper up -y kernel-default | grep -q 'already installed' || sudo reboot
    
  3. Si le système a redémarré à l'étape précédente, reconnectez-vous à l'instance.

  4. Sélectionnez un dépôt de pilotes pour le CUDA Toolkit et ajoutez-le à votre instance.

    sudo rpm --import https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/7fa2af80.pub
    sudo zypper install https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/cuda-11.0.3-1.x86_64.rpm
    
  5. Actualisez Zypper.

    sudo zypper refresh
    
  6. Installez CUDA, qui inclut le pilote NVIDIA.

    sudo zypper install cuda
    

Ubuntu

  1. Connectez-vous à la VM sur laquelle vous souhaitez installer le pilote.

  2. Installez la dernière version du package de noyau.

    sudo apt install linux-headers-$(uname -r)
  3. Sélectionnez un dépôt de pilotes pour le CUDA Toolkit et installez-le sur votre VM. Suivez les étapes correspondant à votre version d'Ubuntu.

    Ubuntu 20.04

    1. Téléchargez le dépôt de pilotes Ubuntu 20.04.

      curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
      
    2. Déplacez le dépôt.

      sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
      
    3. Récupérez les clés.

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
      
    4. Ajoutez un dépôt.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
      
    5. Mettez à jour les listes de packages.

      sudo apt update
      
    6. Installez CUDA, qui inclut le pilote NVIDIA.

      sudo apt -y install cuda
      

    Ubuntu 18.04

    1. Téléchargez le dépôt de pilotes Ubuntu 18.04.

      curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
      
    2. Déplacez le dépôt.

      sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
      
    3. Récupérez les clés.

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
      
    4. Ajoutez un dépôt.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
      
    5. Mettez à jour les listes de packages.

      sudo apt update
      
    6. Installez CUDA, qui inclut le pilote NVIDIA.

      sudo apt -y install cuda
      

    Ubuntu 16.04

    1. Téléchargez le dépôt de pilotes Ubuntu 16.04.

      curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin
      
    2. Déplacez le dépôt.

      sudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600
      
    3. Récupérez les clés.

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
      
    4. Ajoutez un dépôt.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/ /"
      
    5. Mettez à jour les listes de packages.

      sudo apt update
      
    6. Installez CUDA, qui inclut le pilote NVIDIA.

      sudo apt -y install cuda
      

Windows Server

  1. Connectez-vous à l'instance sur laquelle vous souhaitez installer le pilote.

  2. Téléchargez sur votre instance un fichier d'installation .exe contenant la branche R426 (pilote NVIDIA 452.77 ou supérieur). Pour la plupart des instances Windows Server, vous pouvez utiliser l'une des options suivantes :

    Par exemple, dans Windows Server 2019, vous pouvez ouvrir un terminal PowerShell en tant qu'administrateur et utiliser la commande Invoke-WebRequest pour télécharger le programme d'installation du pilote dont vous avez besoin. Invoke-WebRequest est disponible sur PowerShell 3.0 ou version ultérieure.

    Invoke-WebRequest https://developer.download.nvidia.com/compute/cuda/11.2.0/network_installers/cuda_11.2.0_win10_network.exe -O cuda_11.2.0_win10_network.exe
  3. Lancez le programme d'installation .exe. Par exemple, vous pouvez ouvrir un terminal PowerShell en tant qu'administrateur et exécuter la commande suivante :

    PS C:\> .\\cuda_11.2.0_win10_network.exe
    

Installer des pilotes de GPU sur des VM qui utilisent le démarrage sécurisé

Pour les VMS sur lesquelles le démarrage sécurisé est activé, tous les modules de noyau doivent être signés par la clé approuvée par le système. Actuellement, seules les versions Ubuntu 18.04 et 20.04 dotées ds paramètres de démarrage sécurisé par défaut sont compatibles avec l'installation du pilote NVIDIA. D'autres systèmes d'exploitation seront bientôt disponibles.

Ubuntu 18.04 et 20.04

  1. Connectez-vous à la VM sur laquelle vous souhaitez installer le pilote.

  2. Mettez le dépôt à jour.

    sudo apt-get update
    
  3. Recherchez le package de module de noyau NVIDIA le plus récent ou la version de votre choix. Ce package contient des modules de noyau NVIDIA signés par la clé Ubuntu. Exécutez la commande suivante pour afficher les derniers packages :

    NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
    

    Par exemple, indiquez le numéro sur 2 pour obtenir la prochaine version antérieure :

    NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 2 | head -n 1 | awk -F"-" '{print $4}')
    

    Vous pouvez vérifier la version de pilote choisie en exécutant echo $NVIDIA_DRIVER_VERSION. Il en résulte une chaîne de version telle que 455.

  4. Installez le package des modules de noyau et le pilote NVIDIA correspondant :

    sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
    

    Si la commande échoue avec une erreur indiquant que le package est introuvable, il se peut que le dernier pilote NVIDIA soit absent du dépôt. Revenez à la dernière étape pour rechercher une version de pilote antérieure.

  5. Vérifiez que le pilote NVIDIA est installé. Vous devrez peut-être redémarrer la VM.

  6. Configurez APT pour utiliser le dépôt de packages NVIDIA.

    1. Pour aider APT à choisir la dépendance appropriée, épinglez les dépôts comme suit :

      sudo tee /etc/apt/preferences.d/cuda-repository-pin-600 > /dev/null <<EOL
      Package: nsight-compute
      Pin: origin *ubuntu.com*
      Pin-Priority: -1
      Package: nsight-systems Pin: origin *ubuntu.com* Pin-Priority: -1
      Package: nvidia-modprobe Pin: release l=NVIDIA CUDA Pin-Priority: 600
      Package: nvidia-settings Pin: release l=NVIDIA CUDA Pin-Priority: 600
      Package: * Pin: release l=NVIDIA CUDA Pin-Priority: 100 EOL

    2. Installez software-properties-common. Cette action est requise si vous utilisez des images Ubuntu Minimal.

      sudo apt install software-properties-common
      

    3. Ajoutez le dépôt NVIDIA :

      • Ubuntu 18.04

        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
        sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
        
      • Ubuntu 20.04

        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
        sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
        
  7. Recherchez la version compatible du pilote CUDA.

    Le script suivant détermine la dernière version du pilote CUDA compatible avec le pilote NVIDIA que nous venons d'installer :

    CUDA_DRIVER_VERSION=$(apt-cache madison cuda-drivers | awk '{print $3}' | sort -r | while read line; do
       if dpkg --compare-versions $(dpkg-query -f='${Version}\n' -W nvidia-driver-${NVIDIA_DRIVER_VERSION}) ge $line ; then
           echo "$line"
           break
       fi
    done)
    

    Vous pouvez vérifier la version du pilote CUDA en exécutant echo $CUDA_DRIVER_VERSION. Il en résulte une chaîne de version telle que 455.32.00-1.

  8. Installez les pilotes CUDA avec la version identifiée à l'étape précédente.

    sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
    

  9. Facultatif : Conservez les packages dkms en attente.

    Une fois le démarrage sécurisé activé, tous les modules de noyau doivent être signés pour pouvoir être chargés. Les modules de noyau créés par dkms ne fonctionnent pas sur la VM, car ils ne sont pas correctement signés par défaut. Cette étape est facultative, mais elle peut vous permettre d'éviter l'installation accidentelle d'autres packages dkms par la suite.

    Pour conserver les packages dkms, exécutez la commande suivante :

    sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  10. Installez le CUDA Toolkit et l'environnement d'exécution CUDA.

    Choisissez la version CUDA appropriée. Le script suivant détermine la dernière version de CUDA compatible avec le pilote CUDA que nous venons d'installer :

    CUDA_VERSION=$(apt-cache showpkg cuda-drivers | grep -o 'cuda-runtime-[0-9][0-9]-[0-9],cuda-drivers [0-9\.]*' | while read line; do
       if dpkg --compare-versions ${CUDA_DRIVER_VERSION} ge $(echo $line | grep -Eo '[[:digit:]]+\.[[:digit:]]+') ; then
           echo $(echo $line | grep -Eo '[[:digit:]]+-[[:digit:]]')
           break
       fi
    done)
    

    Vous pouvez vérifier la version de CUDA en exécutant echo $CUDA_VERSION. Il en résulte une chaîne de version telle que 11-1.

    Installez le package CUDA :

    sudo apt install cuda-${CUDA_VERSION}
    

  11. Vérifiez l'installation de CUDA :

    sudo nvidia-smi
    /usr/local/cuda/bin/nvcc --version
    
    La première commande affiche les informations du GPU. La deuxième commande affiche la version du compilateur CUDA installé.

Vérifier l'installation du pilote de GPU

Une fois l'installation du pilote effectuée, vérifiez que celui-ci est correctement installé et initialisé.

Linux

Connectez-vous à l'instance Linux et utilisez la commande nvidia-smi pour vérifier que le pilote fonctionne correctement.

sudo nvidia-smi

Le résultat ressemble à ce qui suit :

Wed Oct 28 21:34:28 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.32.00    Driver Version: 455.32.00    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| 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  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                    0 |
| N/A   40C    P0    52W / 400W |      0MiB / 40536MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Si cette commande échoue, examinez les éléments suivants :

  • Vérifiez qu'un GPU est installé sur la VM.

    Utilisez la commande suivante pour rechercher des appareils NVIDIA PCI :

    sudo lspci | grep -i "nvidia".

  • Vérifiez que la version du noyau du pilote et celle du noyau de la VM sont identiques.

    • Pour vérifier la version du noyau de la VM, exécutez uname -r.
    • Pour vérifier la version du noyau du pilote, exécutez sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp.

    Si les versions ne correspondent pas, redémarrez la VM avec la nouvelle version du noyau.

Windows Server

Connectez-vous à l'instance Windows Server, ouvrez un terminal PowerShell en tant qu'administrateur, puis exécutez la commande suivante pour vérifier que le pilote fonctionne correctement.

&"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"

Le résultat ressemble à ce qui suit :

Thu Feb  4 21:21:39 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.89       Driver Version: 460.89       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla P4            TCC  | 00000000:00:04.0 Off |                    0 |
| N/A   31C    P8     7W /  75W |      8MiB /  7611MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Étape suivante