Construction d'un environnement d'apprentissage profond - Installation du pilote Nvidia et de Cuda


avant-propos

Pour être honnête, l'auteur travaille depuis de nombreuses années après l'obtention de son diplôme, mais il reste encore de nombreux problèmes de configuration de l'environnement de développement qui rendent les gens confus. Heureusement, l'auteur a toujours eu l'habitude d'écrire des notes, qui ont été enregistrées dans le cloud privé avant, et maintenant je les trie et les partage avec vous. Et en plus d'expliquer les étapes, il expliquera également les raisons de le faire autant que possible, afin que les lecteurs puissent clarifier la logique.

Remarque : Cet article concerne les systèmes Linux


1. Configuration et fichiers de l'environnement

La configuration d'environnement utilisée dans cet article est :

  • Pilote graphique : nvdia430
    • Nom de fichier : NVIDIA-Linux-x86_64-430.14
  • file d'attente : file d'attente-10.0
    • Nom du fichier : cuda_10.0.130_410.48_linux
  • caché:caché7.5
    • Nom du fichier : cudnn-10.0-linux-x64-v7.5.0.56

On peut constater que le pilote de carte graphique que nous utilisons est la version 430, qui ne correspond pas au pilote de la version 410 inclus dans cuda10.0, mais ce n'est pas un gros problème, et le pilote 430 est entièrement compatible avec cuda-10. Cependant, il convient de noter que si le pilote d'affichage installé est trop différent de la version du pilote d'affichage par défaut de cuda, il n'est pas clair s'il y aura une incompatibilité.

De plus, le choix de différentes versions de cuda et cudnn est très important, car la prise en charge des principaux frameworks d'apprentissage en profondeur dans la dernière version peut ne pas être idéale.Par exemple, le package d'installation précompilé de tensorflow ne prend en charge que cuda10.0, et d'autres versions doivent être compilés manuellement ; lorsque cuda10 est sorti pour la première fois, la libtorch de pytorch ne prend en charge que cuda9, veuillez donc choisir en fonction de vos besoins.

2. Étapes d'installation

2.1 Dépendances liées à l'installation

sudo apt-get install build-essential #这是编译环境,包含make,GCC G++等

L'ordinateur de l'auteur ne peut installer le pilote de la carte graphique normalement qu'après l'installation de l'environnement de compilation, mais après avoir vérifié les informations, il s'avère que les dépendances données par les différents auteurs sont différentes. Ce qui suit est un résumé partiel. Si seul l'environnement de compilation est installé et le pilote de la carte graphique ne peut pas être installé normalement, veuillez essayer d'installer le package suivant

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

2.2 Installer le pilote officiel

Rendez-vous sur le site officiel de nvidia pour télécharger le pilote correspondant https://www.nvidia.com/Download/index.aspx?lang=cn
insérez la description de l'image ici
et sélectionnez le pilote correspondant à votre carte graphique à télécharger.

2.3 Désactiver nouveau et fermer l'interface graphique (Xserver)

Nouveau est un pilote 3D open source développé par un tiers pour les cartes graphiques NVIDIA, et il n'a pas été reconnu et pris en charge par NVIDIA. Bien que Nouveau Gallium3D soit loin d'être comparable au pilote privé officiel de NVIDIA en termes de vitesse de jeu, il permet à Linux de faire face plus facilement à divers environnements complexes de cartes graphiques NVIDIA, permettant aux utilisateurs d'accéder au bureau après l'installation du système et d'avoir un bon affichage. Par conséquent, de nombreuses distributions Linux intègrent par défaut le pilote Nouveau, qui est installé par défaut lorsqu'il rencontre une carte graphique NVIDIA. Cela est particulièrement vrai pour la version entreprise de Linux. Presque toutes les distributions Linux d'entreprise qui prennent en charge les interfaces graphiques incluent Nouveau.

Cependant, pour les utilisateurs de bureau personnels, Nouveau en phase de croissance n'est pas parfait. Contrairement à la version entreprise, les utilisateurs individuels ont souvent besoin d'effets spéciaux 3D en plus de vouloir afficher l'interface graphique normalement. Nouveau ne peut pas le terminer la plupart du temps. , et les utilisateurs de Nouveau sont devenus un obstacle lors de l'installation du pilote privé officiel de NVIDIA. Si vous ne tuez pas Nouveau, vous obtenez toujours une erreur lors de l'installation.

Xserver est l'interface graphique de Linux

Modifiez le fichier //etc/modprobe.d/blacklist.conf et ajoutez la commande suivante à la fin de ce fichier :

blacklist nouveau
options nouveau modeset = 0

Comme le montre la figure après modification :
insérez la description de l'image ici

Exécutez ensuite la commande pour mettre à jour le fichier de démarrage et redémarrez :

sudo update-initramfs -u
sudo reboot

Vérifiez si nouveau est fermé après le redémarrage, saisissez la commande suivante :

lsmod | grep nouveau

S'il n'y a pas de sortie, nouveau est désactivé.
Fermez enfin l'interface graphique :

 service lightdm stop

Notez que votre ordinateur n'a peut-être pas installé l'interface graphique lightdm, mais utilise gdm3, dans ce cas, vous devez exécuter

service gdm3 stop

Ou fermez-le après avoir installé lightdm (cela est recommandé, car par expérience, vous devrez probablement encore l'installer à l'avenir), la commande d'installation est la suivante :

sudo apt install lightdm

2.4 Installer le pilote

Entrez le répertoire où se trouve le fichier d'installation du pilote de la carte graphique et exécutez la commande suivante pour installer :

sudo ./NVIDIA-Linux-x86_64-430.14.run –no-opengl-files

Étant donné que la version du pilote que vous avez téléchargée peut être différente de la mienne, veuillez vous référer à votre propre nom de fichier. De plus, le paramètre –no-opengl-files signifie ne pas installer de fichiers OpenGL. Ce paramètre peut éviter le problème de ne pas pouvoir entrer l'interface graphique pendant le processus d'installation
. Acceptez simplement ou continuez jusqu'au bout. Une fois l'installation terminée, exécutez la commande suivante pour voir si l'installation a réussi :

nvidia-smi

S'il réussit, il s'affichera comme suit :
insérez la description de l'image ici
Vous constaterez que la version cuda du lecteur d'affichage est 10.2, mais cela ne semble pas entrer en conflit avec le cuda10.0 que nous sommes sur le point d'installer.
Ensuite, démarrez Xserver et redémarrez pour vérifier les bogues :

service lightdm start
sudo reboot

Si votre serveur X ne peut pas être démarré normalement, ou bloqué dans l'interface de connexion, il est très probable que le serveur X n'a ​​pas été fermé correctement lors des étapes d'installation ci-dessus ou que le paramètre –no-opengl-files n'a pas été ajouté lors de l'installation du pilote, veuillez vérifier , la méthode de gestion des erreurs est concentrée dans le chapitre suivant sur la gestion des bogues.

2.5 installer cuda

Après avoir installé le pilote de la carte graphique, commencez à installer cuda. ​​Vous devez également vous rendre sur la page cuda de nvidia pour télécharger le package d'installation correspondant.

Page de téléchargement de cuda : https://developer.nvidia.com/cuda-downloads

La page d'accueil fournit la version 10.1 par défaut, ce dont nous avons besoin est 10.0, cliquez sur les versions héritées pour télécharger la version antérieure :
insérez la description de l'image ici
insérez la description de l'image ici
téléchargez en fonction de votre propre version du système, l'auteur utilise ubuntu18,
insérez la description de l'image ici
téléchargez le premier programme d'installation de base et il peut être utilisé normalement, patch 1 est le patch , peut également être téléchargé si nécessaire.

Ensuite, démarrez l'installation. Notez que vous devez également d'abord fermer le serveur X, puis exécuter le fichier d'installation cuda10 :

service lightdm stop
sudo ./cuda_10.0.130_410.48_linux.run

À ce stade, de nombreuses invites vous demanderont de confirmer. Étant donné que le pilote de la carte graphique a été installé avec succès ci-dessus, il n'est pas nécessaire de le réinstaller ici.

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 XXX.XX ?

Choisissez non ici, les autres sont oui ou acceptez

Une fois l'installation réussie, commencez à ajouter des variables système. Ici, vous pouvez choisir de l'ajouter dans le profil ou de l'ajouter dans le fichier .bashrc sous votre propre utilisateur :

vim ~/.bashrc #打开配置文件
添加以下变量:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.0

L'effet après l'ajout est comme indiqué dans la figure :
insérez la description de l'image ici
Ces variables permettent à python de trouver la bibliothèque cuda et les fichiers d'en-tête, en évitant les erreurs telles que l'absence de recherche.
Exécutez la commande source pour que le fichier bashrc prenne effet :

source ~/.bashrc

Enfin, vérifiez si cuda est installé avec succès. Notez que vous devez installer l'exemple approprié lors de l'installation de cuda. ​​Si vous suivez le didacticiel de cet article, l'exemple a également été installé avec succès :

cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

Si vous voyez les informations suivantes, l'installation a réussi :
insérez la description de l'image ici

2.6 installation cudnn

Après avoir installé cuda, nous devons également installer cudnn : https://developer.nvidia.com/cudnn
Il convient de noter que cudnn doit être enregistré avant le téléchargement. L'auteur utilise cudnn version 7.5, vous devez donc également choisir une version antérieure. version à télécharger :
insérez la description de l'image ici
insérez la description de l'image ici
Installer cudnn :
cudnn est facile à installer, il suffit de décompresser le fichier et de le copier dans le répertoire racine de cuda :

tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz #解压
cd cudnn-10.0-linux-x64-v7.5.0.56 #进入cudnn文件夹
sudo cp -r cuda/* /usr/local/cuda-10.0/ #将文件夹下的所有文件拷贝进cuda10下

À ce stade, vous avez terminé et toutes les installations sont réussies.

3. Gestion des bogues

Voici une introduction aux bogues et solutions pertinents que l'auteur a rencontrés dans le lecteur d'affichage et cudnn :

3.1. Connexion circulaire ou impossibilité d'accéder à Xserver

On suppose que la principale raison de la connexion circulaire ou de l'impossibilité d'entrer dans l'interface graphique est une erreur dans openGL. Cela se reflète dans l'opération selon laquelle Xserver n'est pas désactivé ou nouveau n'est pas désactivé pendant le processus d'installation (mais théoriquement, le programme d'installation ne peut pas être exécuté sans nouveau, et une erreur sera signalée), la solution consiste donc à désinstaller le pilote de carte graphique actuel et à le réinstaller conformément au tutoriel. Voici la commande pour désinstaller le pilote de carte graphique :

service lightdm stop #关闭Xerver服务
sudo /usr/bin/nvidia-uninstall #nvidia自带的卸载程序
sudo apt-get install autoremove --purge nvidia* #通过apt来卸载

Les deux commandes ci-dessus peuvent être exécutées à nouveau pour éviter la désinstallation.

3.2. Le pilote de la carte graphique est manquant et nvidia-smi signale une erreur

S'il s'avère que cuda ne démarre pas normalement, entrez nvidia-smi pour signaler une erreur :

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

Il y a ici deux possibilités, parlons d'abord de la première : Si vous signalez cette erreur juste après l'installation du pilote, c'est que le pilote nvidia n'a pas été chargé par le noyau, vous pouvez essayer d'exécuter la commande suivante pour vérifier s'il existe un fichier noyau :

cd /lib/modules
find . -name "*.ko" | grep -i nvidia

La sortie dans des circonstances normales devrait être :
insérez la description de l'image ici
comparez et voyez s'il vous manque le fichier nvidia.ko (ou éventuellement nvidia_xxx.ko).
S'il est manquant, vous devez installer la source du noyau :

sudo apt-get install linux-source
sudo apt-get install linux-headers-4.18.0-25-generic

Parmi eux : 4.18.0-25-generic provient de la sortie de la commande uname -r.
Le deuxième cas est qu'il a été utilisé pendant un certain temps après une installation normale, et tout à coup une erreur est signalée un jour. Dans ce cas, l'environnement cuda a été modifié récemment, ce qui entraîne Le pilote de la carte graphique est endommagé.
Dans ce cas, la méthode la plus simple et grossière consiste à désinstaller et réinstaller tous les pilotes cuda et carte graphique :

service lightdm stop #关闭Xserver服务
sudo /usr/bin/nvidia-uninstall #nvidia自带的卸载程序
sudo apt-get autoremove --purge nvidia* #通过apt来卸载
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl #卸载cuda

Une fois la désinstallation terminée, réinstallez-le à nouveau.

Je suppose que tu aimes

Origine blog.csdn.net/TchaikovskyBear/article/details/129144438
conseillé
Classement