Scheda NVIDIA per CUDA e scheda AMD per la visualizzazione su Ubuntu 16.04


11

Sto usando Ubuntu 16.04, poiché è il sistema operativo che ho trovato più conveniente per lavorare con reti neurali convoluzionali (CNN). Il processo di installazione di Ubuntu è andato bene fino a quando non ho voluto installare due schede grafiche sullo stesso sistema:

  • NVIDIA 970 GTX
  • AMD R9 380

Volevo usare la mia scheda NVIDIA solo per CUDA per poter usare tutta la sua memoria grafica e l'AMD per l'interfaccia utente grafica. A tal fine, tutti i monitor verranno collegati a questa scheda.

I problemi:

  • Quando installo i driver nvidia e cuda 8.0 sembra tutto a posto, ma quando installo il driver AMD non riesco ad accedere a lightdm.
  • Se collego i monitor alle schede AMD, si dice che lightdm funziona in modalità grafica bassa e nulla funziona.
  • La modifica del file xorg.conf non fa alcuna differenza poiché viene sovrascritto da gpu-manager

Non sono riuscito a trovare alcun tutorial che spieghi come farlo.


Taglia e incolla la parte di risposta del post in una risposta separata di seguito.
edwinksl,

OK, l'ho fatto ..
Marcus,

Risposte:


11

Prima di iniziare, consiglio di installare ssh per poter spegnere il sistema da remoto se qualcosa va storto. Per fare ciò usa questo comando:

sudo apt-get install ssh

e per spegnere il tuo sistema devi ssh con un altro computer o dispositivo mobile e usare questo comando:

sudo shutdown -r now

Passo 1

Prima di tutto devi rimuovere fisicamente la scheda AMD, conservare la tua scheda NVIDIA e installare CUDA e il driver NVIDIA. Puoi scaricare cuda da qui: https://developer.nvidia.com/cuda-downloads

Assicurati che tutto funzioni usando questo comando:

nvidia-smi

Passo 2

A questo punto dobbiamo modificare grub per avviarlo in modalità console poiché stiamo scherzando con le schede grafiche.

Usando il tuo editor preferito (nel mio caso joe) modifica il file di configurazione di grub predefinito:

sudo joe /etc/default/grub

E cambia queste righe:

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

a questi:

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

Infine aggiorna grub usando questo comando:

sudo update-grub

Passaggio 3

Arrestare il sistema, rimuovere la scheda NVIDIA e collegare la scheda AMD. Accendi il computer e installa i driver grafici AMD più recenti. Nel mio caso ho installato i driver usando questi comandi:

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

Riavvia il tuo computer. Ora puoi avviare lightdm (l'interfaccia utente) usando questo comando:

sudo service lightdm start

Tutto dovrebbe funzionare come previsto e ora puoi configurare i tuoi display usando le impostazioni di sistema.

Passaggio 4

Spegni il sistema e ora aggiungi la tua scheda NVIDIA e non rimuovere l'AMD (a questo punto avrai due schede grafiche nel tuo sistema). Accendi il computer e accedi utilizzando il tuo nome utente ma NON AVVIARE LIGHTDM !!

A questo punto il gestore di gpu ha impostato automaticamente entrambe le schede grafiche per la modalità console e solo AMD per lightdm (da quando abbiamo avviato lightdm nel passaggio precedente). Se eseguiamo lightdm a questo punto, gpu-manager farà un casino. Quindi ora dobbiamo disabilitare completamente gpu-manager. A tal fine dobbiamo modificare nuovamente grub:

sudo joe /etc/default/grub

e sostituisci queste linee:

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

da questi:

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

Infine aggiorna grub usando questo comando:

sudo update-grub

Passaggio 5

Riavvia il sistema e se lightdm non si avvia correttamente (appare una schermata nera), devi premere Ctrl + F1, accedere in modalità console e aggiungere questo comando al file rc.local:

sudo joe /etc/rc.local

aggiungi questa riga prima di "exit 0":

service lightdm start

riavvia il sistema e tutto dovrebbe funzionare correttamente ora ...

In una console puoi verificare che entrambi i cad grafici siano in uso usando questo comando:

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

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

e nvidia-smi dovrebbe funzionare bene. dimostrando che stai utilizzando 0 megabyte di memoria:

+-----------------------------------------------------------------------------+
| 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                                                 |
+-----------------------------------------------------------------------------+

Ho provato a farlo funzionare per un paio di giorni. Quale kernel hai usato su Ubuntu 16.04?
Aaron Skomra,

Ci sei riuscito?
Szymon Roziewski,

1
@ d84_n1nj4 Non ho provato su Ubuntu 18.04, forse funziona direttamente senza dover fare tutti questi passaggi ... sarebbe bello poter condividere la tua esperienza.
Marcus,

1
@Marcus Lo farò. Dovrebbe averlo avviato / completato entro lunedì. Bene, non appena Amazon spedisce il mio monitor 4K in ordine arretrato> <
d84_n1nj4 il

2
@Marcus in realtà ha funzionato direttamente dopo la connessione - Non ho dovuto fare alcun passo ^^
d84_n1nj4
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.