web-dev-qa-db-fra.com

Carte NVIDIA pour CUDA et AMD pour affichage sur Ubuntu 16.04

J'utilise Ubuntu 16.04, car c'est le système d'exploitation que j'ai trouvé plus pratique pour travailler avec des réseaux de neurones à convolution (CNN). Le processus d'installation d'Ubuntu s'est bien déroulé jusqu'à ce que je souhaite installer deux cartes graphiques sur le même système:

  • NVIDIA 970 GTX
  • AMD R9 380

Je voulais utiliser ma carte NVIDIA uniquement pour CUDA afin de pouvoir utiliser toute sa mémoire graphique et la carte AMD pour l'interface utilisateur graphique. À cette fin, tous les moniteurs seront connectés à cette carte.

Problèmes:

  • Lorsque j'installe les pilotes nvidia et cuda 8.0, tout semble aller pour le mieux, mais lorsque j'installe le pilote AMD, je ne peux pas me connecter à lightdm.
  • Si je connecte les moniteurs aux cartes AMD, cela signifie que lightdm fonctionne en mode graphique bas et que rien ne fonctionne.
  • Modifier le fichier xorg.conf ne fait aucune différence puisqu'il est écrasé par le gpu-manager

Je n'ai trouvé aucun tutoriel expliquant comment faire.

9
Marcus

Avant de commencer, je recommande d'installer ssh afin de pouvoir arrêter le système à distance en cas de problème. Pour ce faire, utilisez cette commande:

Sudo apt-get install ssh

et pour éteindre votre système, vous devez utiliser ssh avec un autre ordinateur ou appareil mobile et utiliser cette commande:

Sudo shutdown -r now

Étape 1

Tout d’abord, vous devez retirer la carte AMD physiquement, conserver votre carte NVIDIA et installer CUDA et le pilote NVIDIA. Vous pouvez télécharger cuda à partir d’ici: https://developer.nvidia.com/cuda-downloads

Assurez-vous que tout fonctionne avec cette commande:

nvidia-smi

Étape 2

À ce stade, nous devons modifier grub pour pouvoir démarrer en mode console car nous nous amusons avec les cartes graphiques.

En utilisant votre éditeur préféré (dans mon cas, Joe), éditez le fichier de configuration par défaut de grub:

Sudo joe /etc/default/grub

Et changez ces lignes:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console

à ceux-ci:

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

Enfin, mettez à jour grub en utilisant cette commande:

Sudo update-grub

Étape 3

Arrêtez votre système, retirez la carte NVIDIA et insérez la carte AMD. Allumez votre ordinateur et installez les derniers pilotes graphiques AMD. Dans mon cas, j'ai installé les pilotes en utilisant ces commandes:

wget https://www2.ATI.com/drivers/linux/ubuntu/amdgpu-pro-16.40-348864.tar.xz
tar -Jxvf amdgpu-pro-16.40-348864.tar.xz
cd amdgpu-pro-16.40-348864/
./amdgpu-pro-install
Sudo usermod -a -G video $USER

Redémarrez votre ordinateur. Vous pouvez maintenant démarrer lightdm (l'interface utilisateur) à l'aide de cette commande:

Sudo service lightdm start

Tout devrait fonctionner comme prévu et vous pouvez maintenant configurer vos écrans en utilisant les paramètres du système.

Étape 4

Arrêtez votre système et ajoutez maintenant votre carte NVIDIA sans retirer AMD (à ce stade, vous aurez deux cartes graphiques dans votre système). Allumez votre ordinateur et connectez-vous en utilisant votre nom d'utilisateur, mais NE LANCEZ PAS LIGHTDM !!

À ce stade, gpu-manager a automatiquement configuré les deux cartes graphiques pour le mode console et uniquement AMD pour lightdm (puisque nous avons démarré lightdm à l'étape précédente). Si nous exécutons lightdm à ce stade, gpu-manager fera des dégâts. Alors maintenant, nous devons complètement désactiver le gestionnaire de gpu. Pour cela nous devons encore modifier grub:

Sudo joe /etc/default/grub

et remplacez ces lignes:

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

par ceux-ci:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nogpumanager"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console

Enfin, mettez à jour grub en utilisant cette commande:

Sudo update-grub

Étape 5

Redémarrez votre système et si lightdm ne démarre pas correctement (un écran noir apparaît), vous devez appuyer sur Ctrl + F1, vous connecter en mode console et ajouter cette commande au fichier rc.local:

Sudo joe /etc/rc.local

ajoutez cette ligne avant "exit 0":

service lightdm start

redémarrez votre système et tout devrait fonctionner correctement maintenant ...

Dans une console, vous pouvez vérifier que les deux fichiers graphiques sont utilisés à l'aide de cette commande:

lspci -nnk | grep -i vga -A3 | grep 'in use'

Kernel driver in use: amdgpu
Kernel driver in use: nvidia

et nvidia-smi devrait bien fonctionner. indiquant que vous utilisez 0 mégaoctet de mémoire:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26                 Driver Version: 375.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 970     Off  | 0000:02:00.0     Off |                  N/A |
| 30%   42C    P0    36W / 163W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
10
Marcus