placa NVIDIA para CUDA e placa AMD para exibição no Ubuntu 16.04

6

Estou usando o Ubuntu 16.04, pois é o sistema operacional que achei mais conveniente para trabalhar com redes neurais convolucionais (CNN). O processo de instalação do Ubuntu foi bom até eu querer configurar duas placas gráficas no mesmo sistema:

  • NVIDIA 970 GTX
  • AMD R9 380

Eu queria usar minha placa NVIDIA apenas para CUDA para poder usar toda a sua memória gráfica e a AMD para a interface gráfica do usuário. Para isso, todos os monitores serão conectados a este cartão.

Problemas:

  • Quando eu instalo os drivers nvidia e cuda 8.0 tudo parece OK, mas quando Eu instalei o driver AMD eu não consigo logar no lightdm.
  • Se eu ligar os monitores nas placas AMD, ele diz que lightdm é executando em modo gráfico baixo e nada funciona.
  • Modificar o arquivo xorg.conf não faz diferença, já que é sobrescrito pelo gpu-manager

Não encontrei nenhum tutorial explicando como fazer isso.

    
por Marcus 13.03.2017 / 12:07

1 resposta

8

Antes de começar, eu recomendo instalar o ssh para poder desligar o sistema remotamente se algo der errado. Para fazer isso, use este comando:

sudo apt-get install ssh

e para desligar o seu sistema você tem que ssh com outro computador ou dispositivo móvel e usar este comando:

sudo shutdown -r now

Etapa 1

Primeiro de tudo você tem que remover a placa AMD fisicamente, manter sua placa NVIDIA e instalar CUDA e o driver NVIDIA. Você pode baixar cuda aqui: link

Certifique-se de que tudo esteja funcionando usando este comando:

nvidia-smi

Etapa 2

Neste ponto, temos que modificar o grub para começar no modo de console, já que estamos mexendo nas placas gráficas.

Usando seu editor favorito (no meu caso joe) edite o arquivo de configuração padrão do grub:

sudo joe /etc/default/grub

E altere estas linhas:

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

para estes:

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

Finalmente atualize o grub usando este comando:

sudo update-grub

Etapa 3

Desligue o sistema, remova a placa NVIDIA e insira o cartão AMD. Ligue o computador e instale os drivers gráficos AMD mais recentes. No meu caso eu instalei os drivers usando estes comandos:

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

Reinicie seu computador. Agora você pode iniciar o lightdm (a interface do usuário) usando este comando:

sudo service lightdm start

Tudo deve funcionar como esperado e agora você pode configurar seus monitores usando as configurações do sistema.

Etapa 4

Encerre o seu sistema e agora adicione sua placa NVIDIA e não remova a AMD (neste ponto, você terá duas placas gráficas em seu sistema). Ligue o seu computador e faça o login usando o seu nome de usuário, mas NÃO COMECE O LIGHTDM !!

Neste ponto, o gpu-manager configurou automaticamente ambas as placas gráficas para o modo de console e somente AMD para lightdm (desde que iniciamos o lightdm na etapa anterior). Se rodarmos o lightdm neste ponto, o gpu-manager fará uma bagunça. Então agora nós temos que desabilitar completamente o gpu-manager. Para este fim, temos que modificar o grub novamente:

sudo joe /etc/default/grub

e substitua estas linhas:

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

por estes:

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

Finalmente atualize o grub usando este comando:

sudo update-grub

Etapa 5

Reinicie o seu sistema e se o lightdm não iniciar corretamente (aparece uma tela preta), então você tem que pressionar Ctrl + F1, faça o login no modo de console e adicione este comando ao arquivo rc.local:

sudo joe /etc/rc.local

adicione esta linha antes da "saída 0":

service lightdm start

reinicie o seu sistema e tudo deve funcionar bem agora ...

Em um console, você pode verificar se os dois operadores gráficos estão em uso usando este comando:

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

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

e o nvidia-smi deve funcionar bem. mostrando que você está usando 0 megabytes de memória:

+-----------------------------------------------------------------------------+
| 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                                                 |
+-----------------------------------------------------------------------------+
    
por Marcus 13.03.2017 / 12:08