Carte NVIDIA pour CUDA et carte AMD pour affichage sur Ubuntu 16.04

11

J'utilise Ubuntu 16.04, car c'est le système d'exploitation que j'ai trouvé plus pratique pour travailler avec les réseaux de neurones convolutifs (CNN). Le processus d'installation d'Ubuntu s'est bien passé jusqu'à ce que je veuille 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 l'AMD pour l'interface utilisateur graphique. À cette fin, tous les moniteurs seront branchés sur cette carte.

Problèmes:

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

Je n'ai trouvé aucun tutoriel expliquant comment procéder.

Marcus
la source
Veuillez couper et coller la partie réponse du message dans une réponse séparée ci-dessous.
edwinksl
OK, je l'ai fait ..
Marcus

Réponses:

11

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 arrêter votre système, vous devez ssh avec un autre ordinateur ou appareil mobile et utiliser cette commande:

sudo shutdown -r now

Étape 1

Tout d'abord, vous devez retirer physiquement la carte AMD, conserver votre carte NVIDIA et installer CUDA et le pilote NVIDIA. Vous pouvez télécharger cuda 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 afin de démarrer en mode console car nous jouons avec les cartes graphiques.

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

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 et retirez la carte NVIDIA et branchez la carte AMD. Allumez votre ordinateur et installez les derniers pilotes graphiques AMD. Dans mon cas, j'ai installé les pilotes à l'aide de 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 à l'aide des paramètres système.

Étape 4

Arrêtez votre système et ajoutez maintenant votre carte NVIDIA et ne retirez pas l'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 DÉMARREZ PAS LIGHTDM !!

À ce stade, le gpu-manager a automatiquement configuré les deux cartes graphiques pour le mode console et uniquement AMD pour lightdm (depuis que nous avons démarré lightdm à l'étape précédente). Si nous exécutons lightdm à ce stade, gpu-manager fera un gâchis. Alors maintenant, nous devons désactiver complètement le gpu-manager. À cette fin, nous devons à nouveau 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 le lightdm ne démarre pas correctement (il apparaît un écran noir) alors 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 bien fonctionner maintenant ...

Dans une console, vous pouvez vérifier que les deux cadets graphiques sont en cours d'utilisation à 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 fonctionner correctement. montrant 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                                                 |
+-----------------------------------------------------------------------------+
Marcus
la source
J'essaie de faire fonctionner ça depuis quelques jours. Quel noyau avez-vous utilisé sur Ubuntu 16.04?
Aaron Skomra
Avez-vous réussi?
Szymon Roziewski
1
@ d84_n1nj4 Je n'ai pas essayé sur ubuntu 18.04, peut-être que cela fonctionne directement sans avoir à faire toutes ces étapes ... ce serait bien si vous pouviez partager votre expérience.
Marcus
1
@Marcus, je vais le faire. Devrait-il avoir commencé / fait d'ici lundi. Eh bien, dès qu'Amazon expédie mon moniteur 4K en rupture de stock> <
d84_n1nj4
2
@Marcus, cela a fonctionné directement après la connexion - je n'ai pas eu à passer par toutes les étapes ^^
d84_n1nj4