Estou usando o Ubuntu 14.04LTS, com uma placa gráfica Intel CPU + integrada, com uma GPU GTX650. Eu fiz essa pergunta no SO, mas eles disseram que era offtopic.
Quero usar minha GPU para depurar o código CUDA e, para isso, preciso alterar a exibição para somente integrado. Este é o erro que recebo quando tento depurá-lo atualmente:
"All cuda devices are used for display and cannot be used while debugging"
Entrei no BIOS e troquei o monitor primário para iGPU (o integrado, HD4600). Nada mais saiu das portas da GPU (em termos de exibição) e eu conectei meus monitores na placa-mãe. Apenas um dos monitores funciona. Normalmente eu os tenho como:
|[Monitor 1, VGA]| |[Monitor 2, DVI]|
Nessa configuração, com o iGPU, nada é exibido no Monitor 1 (é preto, mas o computador sabe que está lá - a luz verde está acesa e todas as minhas janelas se abrem). A única maneira de fazê-lo funcionar é trocar o Monitor 2 para VGA e o Monitor 1 para DVI.
Se eu entrar lspci | grep VGA
no Terminal, recebo o seguinte:
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
Correr xrandr
me dá:
Screen 0: minimum 8 x 8, current 3360 x 1050, maximum 16384 x 16384
DVI-D-0 disconnected primary (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
VGA1 connected 1680x1050+0+0 474mm x 296mm
1680x1050 60.0*+
1600x1000 60.0 +
1280x1024 75.0 72.0 60.0
1440x900 75.0 59.9
1152x864 75.0
1024x768 75.1 70.1 60.0
800x600 72.2 75.0 60.3
640x480 75.0 72.8 66.7 60.0
720x400 70.1
DP1 disconnected
HDMI1 disconnected
HDMI2 connected 1680x1050+1680+0 474mm x 296mm
1680x1050 60.0*+
1600x1000 60.0 +
1280x1024 75.0 72.0 60.0
1440x900 75.0 59.9
1152x864 75.0
1024x768 75.1 70.1 60.0
800x600 72.2 75.0 60.3
640x480 75.0 72.8 66.7 60.0
720x400 70.1
HDMI3 disconnected
VIRTUAL1 disconnected
Não é uma conexão HDMI, não sei por que ela pensa que é. Com a GPU, ela sabe que é DVI. De qualquer forma...
Este é o xorg.conf
(se eu mudar, ele apenas sobrescreve):
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0@0:2:0"
Option "AccelMethod" "SNA"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1@0:0:0"
Option "ConstrainCursor" "off"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
EndSection
Este é o meu 10-monitors.conf
arquivo em /usr/share/X11/xorg.conf.d/
:
GNU nano 2.2.6 File: /usr/share/X11/xorg.conf.d/10-monitors.conf
Section "Monitor"
Identifier "VGA1"
EndSection
Section "Monitor"
Identifier "HDMI2"
EndSection
Section "Device"
Identifier "intel0"
Driver "intel"
BusID "PCI:0@0:2:0"
EndSection
Section "Device"
Identifier "intel1"
Driver "intel"
BusID "PCI:0@0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "intel0"
Monitor "VGA1"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1680x1050" "1920x1080"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "intel1"
Monitor "HDMI2"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1680x1050" "1920x1080"
EndSubSection
EndSection
Isso ainda não permite que meu código CUDA seja depurado. Se eu executar lsof / dev / nvidia *, recebo:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
compiz 1659 cinnamon mem CHR 195,255 11805 /dev/nvidiactl
compiz 1659 cinnamon mem CHR 195,0 11806 /dev/nvidia0
compiz 1659 cinnamon 11u CHR 195,255 0t0 11805 /dev/nvidiactl
compiz 1659 cinnamon 12u CHR 195,0 0t0 11806 /dev/nvidia0
compiz 1659 cinnamon 13u CHR 195,0 0t0 11806 /dev/nvidia0
compiz 1659 cinnamon 14u CHR 195,0 0t0 11806 /dev/nvidia0
Então eu acho que o Compiz (servidor X?) Ainda está usando. Como faço para impedi-lo de usá-lo?
fonte
nvidia-debugdump -l -v -z
como o sistema reconhece a sua placa.Respostas:
Tive sucesso com uma configuração de monitor duplo, com um conectado à minha GPU ATI dedicada e o outro conectado à iGPU i7-2600K.
Para fazer isso, eu corri
xrandr --setprovideroutputsource 1 0
Costumava funcionar perfeitamente, mas ainda é considerado experimental e com várias atualizações do kernel desde então o YMMV.
fonte