Installer les pilotes GPU NVIDIA sur les machines virtuelles série N exécutant Linux
Attention
Cet article fait référence à CentOS, une distribution Linux ayant atteint l’état EOL (fin du service). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez l’aide relative à la fin de vie de CentOS.
S’applique à : ✔️ Machines virtuelles Linux
Pour tirer parti des fonctionnalités GPU de machines virtuelles de la série N Azure reposant sur les GPU NVIDIA, vous devez installer des pilotes GPU NVIDIA. L’extension du pilote GPU NVIDIA installe les pilotes CUDA ou GRID NVIDIA appropriés sur une machine virtuelle de série N. Installez ou gérez l’extension à l’aide du portail Azure ou d’outils tels qu’Azure CLI ou les modèles Azure Resource Manager. Consultez la documentation sur l’extension du pilote GPU NVIDIA pour connaître les distributions prises en charge et les étapes de déploiement.
Si vous choisissez d’installer manuellement les pilotes GPU NVIDIA, cet article indique les distributions prises en charge, les pilotes et les étapes d’installation et de vérification. Des informations de configuration manuelle du pilote sont également disponibles pour les machines virtuelles Windows.
Pour plus d’informations sur les spécifications, les capacités de stockage et les disques des machines virtuelles série N, consultez l’article Tailles de machine virtuelle Linux GPU.
Distributions et pilotes pris en charge
Pilotes CUDA NVIDIA
Pour les pilotes CUDA les plus récents et les systèmes d’exploitation pris en charge, rendez-vous sur le site web NVIDIA. Assurez-vous d’effectuer l’installation ou la mise à niveau en utilisant les derniers pilotes CUDA pris en charge pour votre distribution.
Notes
La version la plus récente prise en charge des pilotes CUDA pour les machines virtuelles de référence SKU de la série NC d’origine est actuellement la version 470.82.01. Les versions ultérieures des pilotes ne sont pas prises en charge sur les cartes K80 dans la série NC.
Remarque
Les machines virtuelles Azure NVads A10 v5 prennent en charge uniquement GRID 14.1(510.73) et les versions ultérieures de pilote. Le pilote vGPU pour la référence SKU A10 est un pilote unifié qui prend en charge les charges de travail graphiques et de calcul.
Conseil
Vous pouvez déployez une image de machine virtuelle de science des données Azure, comme alternative à une installation manuelle du pilote CUDA sur une machine virtuelle Linux. L’édition DSVM pour Ubuntu 16.04 LTS préinstalle les pilotes NVIDIA CUDA, la bibliothèque de réseau neuronal profond CUDA et d’autres outils.
Pilotes NVIDIA GRID
Microsoft redistribue les programmes d’installation du pilote GRID NVIDIA pour les machines virtuelles de série NV et NVv3 utilisées comme stations de travail virtuelles ou pour les applications virtuelles. Installez uniquement ces pilotes GRID sur des machines virtuelles Azure NV, et uniquement sur les systèmes d’exploitation répertoriés dans le tableau suivant. Ces pilotes incluent les licences des logiciels GRID Virtual GPU dans Azure. Vous n’avez pas besoin de configurer un serveur de licences logicielles NVIDIA vGPU.
Les pilotes GRID redistribués par Azure ne fonctionnent pas sur la plupart des machines virtuelles de série autre que NV, comme les machines virtuelles des séries NC, NCv2, NCv3, ND et NDv2, mais fonctionnent sur les machines virtuelles de la série NCasT4v3.
Pour plus d’informations sur les versions spécifiques du vGPU et de la branche de pilote, consultez le site web de NVIDIA.
Distribution | Pilote |
---|---|
Ubuntu 20.04 LTS, 22.04 LTS Red Hat Enterprise Linux 7.9, 8.6, 8.8, 8.9 SUSE Linux Enterprise Server 15 SP2, 12 SP2,12 SP5 Rocky Linux 8.4 |
NVIDIA vGPU 16.5, branche pilote R535(.exe) NVIDIA vGPU 16.3, branche pilote R535(.exe) |
Remarque
Pour les machines virtuelles Azure de série NVads A10 v5, nous recommandons aux clients d’avoir toujours la dernière version du pilote. La dernière branche (n) du pilote principal NVIDIA n’a de compatibilité descendante qu’avec la branche principale précédente (n-1). Par exemple, vGPU 17.x est a une compatibilité descendante avec vGPU 16.x uniquement. Toutes les machines virtuelles exécutant encore la version n-2 ou inférieures peuvent rencontrer les échecs de pilotes lorsque la branche de pilote la plus récente est déployée sur des hôtes Azure.
Les machines virtuelles NVs_v3 prennent en charge seulement la version vGPU 16 ou inférieure du pilote.
Visitez GitHub pour obtenir la liste complète de tous les liens précédents du pilote Nvidia GRID.
Avertissement
L’installation de logiciels tiers sur des produits Red Hat peut affecter les conditions de prise en charge de Red Hat. Consultez l’article de la Base de connaissances Red Hat.
Installer les pilotes CUDA sur les machines virtuelles de série N
Voici les étapes à suivre pour installer les pilotes CUDA de la boîte à outils CUDA NVIDIA sur des machines virtuelles de série N.
Les développeurs C et C++ peuvent éventuellement installer le kit d’outils complet pour créer des applications avec accélération GPU. Pour plus d’informations, consultez le Guide d’installation de CUDA.
Pour installer les pilotes CUDA, établissez une connexion SSH sur chaque machine virtuelle. Pour vérifier que le système dispose d’un GPU compatible CUDA, exécutez la commande suivante :
lspci | grep -i NVIDIA
La sortie est similaire à l’exemple suivant (illustrant une carte K80 Tesla NVIDIA) :
lspci répertorie les périphériques PCIe sur la machine virtuelle, y compris la carte réseau InfiniBand et les GPU, le cas échéant. Si lspci n’est pas correctement renvoyé, vous devrez peut-être installer LIS sur CentOS/RHEL.
Ensuite, exécutez les commandes d’installation spécifiques de votre distribution.
Ubuntu
Ubuntu empaquette les pilotes propriétaires NVIDIA. Ces pilotes proviennent directement de NVIDIA et sont simplement empaquetés par Ubuntu afin qu’ils puissent être managés automatiquement par le système. Le téléchargement et l’installation de pilotes à partir d’une autre source peuvent entraîner une panne du système. Par ailleurs, l’installation de pilotes tiers nécessite des étapes supplémentaires sur les machines virtuelles avec TrustedLaunch et le démarrage sécurisé activés. Ils demandent à l’utilisateur d’ajouter une nouvelle clé propriétaire de l’ordinateur pour que le système démarre. Les pilotes d’Ubuntu sont signés par Canonical et fonctionnent avec le démarrage sécurisé.
Installez l'utilitaire
ubuntu-drivers
:sudo apt update && sudo apt install -y ubuntu-drivers-common
Installez la dernière version du pilote NVIDIA :
sudo ubuntu-drivers install
Redémarrez la machine virtuelle après l’installation du pilote GPU.
Téléchargez et installez la boîte à outils CUDA à partir de NVIDIA :
Remarque
L’exemple montre le chemin d’accès au package CUDA pour Ubuntu 24.04 LTS. Utilisez le chemin d’accès spécifique à la version que vous envisagez d’utiliser.
Visitez le Centre de téléchargement NVIDIA ou la page Ressources NVIDIA CUDA pour obtenir le chemin complet spécifique à chaque version.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo apt install -y ./cuda-keyring_1.1-1_all.deb sudo apt update sudo apt -y install cuda-toolkit-12-5
L’installation peut prendre plusieurs minutes.
Redémarrez la machine virtuelle une fois l’installation terminée :
sudo reboot
Vérifiez que le GPU est bien reconnu (après le redémarrage) :
nvidia-smi
Mises à jour du pilote NVIDIA
Nous vous recommandons de mettre régulièrement à jour les pilotes NVIDIA après le déploiement.
sudo apt update
sudo apt full-upgrade
CentOS ou Red Hat Enterprise Linux
Mettez à jour le noyau (recommandé). Si vous choisissez de ne pas mettre à jour le noyau, vérifiez que les versions de
kernel-devel
etdkms
sont appropriées pour votre noyau.sudo yum install kernel kernel-tools kernel-headers kernel-devel sudo reboot
Installez les derniers services d’intégration Linux pour Hyper-V et Azure. Vérifiez si LIS est requis en vérifiant les résultats d’lspci. Si tous les périphériques GPU sont répertoriés comme prévu, il n’est pas nécessaire d’installer LIS.
LIS s’applique à Red Hat Enterprise Linux, CentOS et Oracle Linux Red Hat Compatible Kernel 5.2-5.11, 6.0-6.10 et 7.0-7.7. Pour plus d’informations, consultez la documentation relative aux services d’intégration Linux. Ignorez cette étape si vous envisagez d’utiliser CentOS/RHEL 7.8 (ou versions ultérieures), car LIS n’est plus nécessaire pour ces versions.
wget https://aka.ms/lis tar xvzf lis cd LISISO sudo ./install.sh sudo reboot
Reconnectez-vous à la machine virtuelle et continuez l’installation avec les commandes suivantes :
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo sudo yum clean all sudo yum -y install nvidia-driver-latest-dkms cuda-drivers
L’installation peut prendre plusieurs minutes.
Notes
Rendez-vous sur les référentiels Fedora et NVIDIA CUDA pour sélectionner le package approprié pour la version de CentOS ou RHEL que vous souhaitez utiliser.
Par exemple, CentOS 8 et RHEL 8 nécessitent les étapes suivantes.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install dkms
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo -O /etc/yum.repos.d/cuda-rhel8.repo
sudo yum install cuda-drivers
Pour éventuellement installer le kit d’outils CUDA complet, saisissez :
sudo yum install cuda
Notes
Si vous voyez un message d’erreur lié à des packages manquants comme vulkan-filesystem, vous devrez peut-être modifier /etc/yum.repos.d/rh-cloud, rechercher optional-rpms et définir enabled sur la valeur 1.
Redémarrez la machine virtuelle et vérifiez l’installation.
Vérification de l’installation du pilote
Pour interroger l’état de l’appareil GPU, connectez-vous par SSH à la machine virtuelle et exécutez l’utilitaire de ligne de commande nvidia-smi installé avec le pilote.
Si le pilote est installé, Nvidia SMI répertorie gpu-util comme 0 % jusqu’à ce que vous exécutiez une charge de travail GPU sur la machine virtuelle. La version de votre pilote et vos détails de GPU peuvent différer de ceux indiqués.
Connectivité réseau RDMA
La connectivité réseau RDMA peut être activée sur des machines virtuelles de série N compatibles RDMA, comme les machines NC24r déployées dans le même groupe à haute disponibilité ou dans un seul groupe de placement au sein d’un groupe de machines virtuelles identiques. Le réseau RDMA prend en charge le trafic MPI (Message Passing Interface) pour les applications exécutées avec Intel MPI 5.x ou une version ultérieure :
Distributions
Déployez des machines virtuelles de série N compatibles RDMA à partir de l’une des images suivantes de la Place de marché Azure qui prend en charge la connectivité RDMA sur des machines virtuelles de série N :
Ubuntu 16.04 LTS - Configurez les pilotes RDMA sur la machine virtuelle et inscrivez-vous auprès d’Intel pour télécharger Intel MPI :
Installer dapl, rdmacm, ibverbs et mlx4
sudo apt-get update sudo apt-get install libdapl2 libmlx4-1
Dans /etc/waagent.conf, activez RDMA en supprimant les marques de commentaire dans les lignes de configuration suivantes. Un accès racine est requis pour modifier ce fichier.
OS.EnableRDMA=y OS.UpdateRdmaDriver=y
Ajoutez ou modifiez les paramètres de mémoire suivants en Ko dans le fichier /etc/security/limits.conf. Un accès racine est requis pour modifier ce fichier. À des fins de test, vous pouvez définir pour memlock une valeur illimitée. Par exemple :
<User or group name> hard memlock unlimited
.<User or group name> hard memlock <memory required for your application in KB> <User or group name> soft memlock <memory required for your application in KB>
Installez la bibliothèque Intel MPI. Achetez et téléchargez la bibliothèque auprès d’Intel ou téléchargez la version d’évaluation gratuite.
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz
Seuls les runtimes Intel MPI 5.x sont pris en charge.
Pour les étapes d’installation, consultez le Guide d’installation de la bibliothèque Intel MPI.
Activez ptrace pour les processus non-racine et non-débogueur (nécessaire pour les versions les plus récentes d’Intel MPI).
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
CentOS 7.4 HPC - Les pilotes RDMA et Intel MPI 5.1 sont installés sur la machine virtuelle.
HPC basé sur CentOS - CentOS-HPC 7.6 et versions ultérieures (pour les références SKU où InfiniBand est pris en charge sur SR-IOV). Ces images ont des bibliothèques Mellanox OFED et MPI préinstallées.
Notes
Les cartes CX3 Pro sont prises en charge uniquement par le biais des versions LTS de Mellanox OFED. Utilisez la version LTS de Mellanox OFED (4.9-0.1.7.0) sur les machines virtuelles de la série N avec des cartes ConnectX3-Pro. Pour plus d’informations, consultez Pilotes Linux.
En outre, certaines des dernières images HPC de la Place de marché Azure ont Mellanox OFED 5.1 ou des versions ultérieures ; ces versions ne prennent pas en charge les cartes ConnectX3-Pro. Vérifiez la version de Mellanox OFED dans l’image HPC avant de l’utiliser sur des machines virtuelles avec des cartes ConnectX3-Pro.
Les images suivantes sont les dernières images CentOS-HPC qui prennent en charge les cartes ConnectX3-Pro :
- OpenLogic:CentOS-HPC:7.6:7.6.2020062900
- OpenLogic:CentOS-HPC:7_6gen2:7.6.2020062901
- OpenLogic:CentOS-HPC:7.7:7.7.2020062600
- OpenLogic:CentOS-HPC:7_7-gen2:7.7.2020062601
- OpenLogic:CentOS-HPC:8_1:8.1.2020062400
- OpenLogic:CentOS-HPC:8_1-gen2:8.1.2020062401
Installer les pilotes GRID sur les machines virtuelles de série NV ou NVv3
Pour installer les pilotes GRID NVIDIA sur les machines virtuelles de série NV ou NVv3, établissez une connexion SSH avec chaque machine virtuelle et suivez les étapes correspondant à votre distribution Linux.
Ubuntu
Exécutez la commande
lspci
. Vérifiez que la ou les cartes NVIDIA M60 sont visibles en tant que périphériques PCI.Installez les mises à jour.
sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y sudo apt-get install build-essential ubuntu-desktop -y sudo apt-get install linux-azure -y
Désactivez le pilote du noyau Nouveau, qui n’est pas compatible avec le pilote NVIDIA. (Utilisez uniquement le pilote NVIDIA sur les machines virtuelles NV ou NVv2.) Pour désactiver le pilote, créez un fichier
/etc/modprobe.d
nomménouveau.conf
avec le contenu suivant :blacklist nouveau blacklist lbm-nouveau
Redémarrez la machine virtuelle et reconnectez-vous. Quittez le serveur X :
sudo systemctl stop lightdm.service
Téléchargez et installez le pilote GRID :
wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=874272 chmod +x NVIDIA-Linux-x86_64-grid.run sudo ./NVIDIA-Linux-x86_64-grid.run
Lorsque vous êtes invité à indiquer si vous souhaitez exécuter l’utilitaire nvidia-xconfig pour mettre à jour votre fichier de configuration X, sélectionnez Oui.
Une fois l’installation terminée, copiez /etc/nvidia/gridd.conf.template sur un nouveau fichier gridd.conf dà l’emplacement etc/nvidia /
sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
Ajoutez la ligne suivante à
/etc/nvidia/gridd.conf
:IgnoreSP=FALSE EnableUI=FALSE
Le cas échéant, supprimez ce qui suit de
/etc/nvidia/gridd.conf
:FeatureType=0
Redémarrez la machine virtuelle et vérifiez l’installation.
Installer le pilote GRID sur Ubuntu avec le démarrage sécurisé activé
Le processus d’installation du pilote GRID ne propose aucune option permettant d’ignorer la construction et l’installation du module de noyau et de sélectionner une source différente de modules de noyau signés, de sorte que le démarrage sécurisé doit être désactivé dans les machines virtuelles Linux afin de les utiliser avec GRID, après l’installation des modules de noyau signés.
CentOS ou Red Hat Enterprise Linux
Mettez à jour le noyau et DKMS (recommandé). Si vous choisissez de ne pas mettre à jour le noyau, vérifiez que les versions de
kernel-devel
etdkms
sont appropriées pour votre noyau.sudo yum update sudo yum install kernel-devel sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install dkms sudo yum install hyperv-daemons
Désactivez le pilote du noyau Nouveau, qui n’est pas compatible avec le pilote NVIDIA. (Utilisez uniquement le pilote NVIDIA sur les machines virtuelles NV ou NV3.) Pour ce faire, créez un fichier
/etc/modprobe.d
nomménouveau.conf
avec le contenu suivant :blacklist nouveau blacklist lbm-nouveau
Redémarrez la machine virtuelle, reconnectez-vous et installez les derniers composants Linux Integration Services pour Hyper-V et Azure. Vérifiez si LIS est requis en vérifiant les résultats d’lspci. Si tous les périphériques GPU sont répertoriés comme prévu, il n’est pas nécessaire d’installer LIS.
Ignorez cette étape si vous envisagez d’utiliser CentOS/RHEL 7.8 (ou versions ultérieures), car LIS n’est plus nécessaire pour ces versions.
wget https://aka.ms/lis tar xvzf lis cd LISISO sudo ./install.sh sudo reboot
Reconnectez-vous à la machine virtuelle et exécutez la commande
lspci
. Vérifiez que la ou les cartes NVIDIA M60 sont visibles en tant que périphériques PCI.Téléchargez et installez le pilote GRID :
wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=874272 chmod +x NVIDIA-Linux-x86_64-grid.run sudo ./NVIDIA-Linux-x86_64-grid.run
Lorsque vous êtes invité à indiquer si vous souhaitez exécuter l’utilitaire nvidia-xconfig pour mettre à jour votre fichier de configuration X, sélectionnez Oui.
Une fois l’installation terminée, copiez /etc/nvidia/gridd.conf.template sur un nouveau fichier gridd.conf dà l’emplacement etc/nvidia /
sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
Ajoutez deux lignes à
/etc/nvidia/gridd.conf
:IgnoreSP=FALSE EnableUI=FALSE
Supprimer une ligne de
/etc/nvidia/gridd.conf
si elle est présente :FeatureType=0
Redémarrez la machine virtuelle et vérifiez l’installation.
Vérification de l’installation du pilote
Pour interroger l’état de l’appareil GPU, connectez-vous par SSH à la machine virtuelle et exécutez l’utilitaire de ligne de commande nvidia-smi installé avec le pilote.
Si le pilote est installé, Nvidia SMI répertoriera gpu-util comme 0 % jusqu’à ce que vous exécutiez une charge de travail GPU sur la machine virtuelle. La version de votre pilote et vos détails de GPU peuvent différer de ceux indiqués.
Serveur X11
Si vous avez besoin d’un serveur X11 pour les connexions à distance à une machine virtuelle NV ou NVv2, x11vnc est recommandé, car il permet l’accélération matérielle des graphiques. Le BusID de l’appareil M60 doit être ajouté manuellement au fichier de configuration de X11 (en règle générale, etc/X11/xorg.conf
). Ajoutez une section "Device"
similaire à la suivante :
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla M60"
BusID "PCI:0@your-BusID:0:0"
EndSection
En outre, mettez à jour votre section "Screen"
pour utiliser cet appareil.
Vous trouverez le BusID décimal en exécutant :
nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'
Le BusID peut changer lorsqu’une machine virtuelle est réaffectée ou redémarrée. Par conséquent, il peut être judicieux de créer un script pour mettre à jour le BusID dans la configuration X11 lors du redémarrage d’une machine virtuelle. Par exemple, créez un script nommé busidupdate.sh
(ou un autre nom de votre choix) avec un contenu similaire à ce qui suit :
#!/bin/bash
XCONFIG="/etc/X11/xorg.conf"
OLDBUSID=`awk '/BusID/{gsub(/"/, "", $2); print $2}' ${XCONFIG}`
NEWBUSID=`nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'`
if [[ "${OLDBUSID}" == "${NEWBUSID}" ]] ; then
echo "NVIDIA BUSID not changed - nothing to do"
else
echo "NVIDIA BUSID changed from \"${OLDBUSID}\" to \"${NEWBUSID}\": Updating ${XCONFIG}"
sed -e 's|BusID.*|BusID '\"${NEWBUSID}\"'|' -i ${XCONFIG}
fi
Ensuite, créez une entrée pour votre script de mise à jour dans /etc/rc.d/rc3.d
afin qu’il soit appelé en tant que racine au démarrage.
Dépannage
- Vous pouvez définir le mode de persistance à l’aide de
nvidia-smi
. De cette façon, la sortie de la commande est plus rapide quand vous avez besoin d’effectuer une requête sur les cartes. Pour définir le mode de persistance, exécuteznvidia-smi -pm 1
. Notez que si la machine virtuelle est redémarrée, le paramètre du mode n’est pas conservé. Vous pouvez toujours définir le paramètre du mode dans un script à exécuter au démarrage. - Si vous avez mis à jour les pilotes NVIDIA CUDA vers la dernière version et constatez que le connectivité RDMA ne fonctionne plus, réinstallez les pilotes RDMA pour rétablir cette connectivité.
- Lors de l’installation de LIS, si une certaine version du système d’exploitation CentOS/RHEL (ou du noyau) n’est pas prise en charge pour LIS, une erreur « Version de noyau non prise en charge » s’affiche. Signalez cette erreur en même temps que les versions du système d’exploitation et du noyau.
- Si des travaux sont interrompus par des erreurs ECC (corrigibles ou non) sur le GPU, commencez par vérifier si le GPU répond à l’un des critères RMA pour les erreurs ECC de Nvidia. Si le GPU est éligible pour RMA, contactez le support technique pour bénéficier d’un service. Sinon, redémarrez votre machine virtuelle pour rattacher le GPU comme décrit ici. Des méthodes moins invasives telles que
nvidia-smi -r
ne fonctionnent pas avec la solution de virtualisation déployée dans Azure.
Étapes suivantes
- Pour capturer une image Linux VM avec vos pilotes NVIDIA installés, consultez Généraliser et capturer une machine virtuelle Linux.