Skonfiguruj Xorg do pracy ze zintegrowanym GPU

11

Używam Ubuntu 14.04LTS, ze zintegrowanym układem graficznym Intel CPU +, z GPU GTX650. Zadałem to pytanie na SO, ale powiedzieli, że to nie na temat.

Chcę używać mojego procesora graficznego do debugowania kodu CUDA i do tego muszę zmienić wyświetlanie tylko na zintegrowane. To jest błąd, który pojawia się, gdy próbuję go obecnie debugować:

"All cuda devices are used for display and cannot be used while debugging"

Poszedłem do BIOS-u i przestawiłem główny wyświetlacz na iGPU (zintegrowany, HD4600). Z portów GPU nic już nie wyszło (pod względem wyświetlania) i podłączyłem monitory do płyty głównej. Działa tylko jeden monitor. Zwykle mam je takie jak:

|[Monitor 1, VGA]| |[Monitor 2, DVI]|

W tej konfiguracji, z iGPU, nic nie jest wyświetlane na monitorze 1 (jest czarny, ale komputer wie, że tam jest - zielone światło jest włączone i wszystkie moje okna są na nim otwarte). Jedynym sposobem na jego uruchomienie jest zamiana Monitora 2 na VGA i Monitora 1 na DVI.

Jeśli wejdę lspci | grep VGAdo terminalu, otrzymam to:

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)

Bieganie xrandrdaje mi:

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

To nie jest połączenie HDMI, nie wiem, dlaczego tak się uważa. Dzięki GPU wie, że to DVI. Tak czy inaczej...

Oto xorg.conf(jeśli go zmienię, po prostu go zastąpi):

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

To jest mój 10-monitors.confplik w /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

To wciąż nie pozwala na debugowanie mojego kodu CUDA. Jeśli uruchomię lsof / dev / nvidia *, otrzymam:

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

Więc chyba Compiz (serwer X?) Nadal go używa. Jak temu zapobiec?

Mewa
źródło
1
Zakładam, że używasz zastrzeżonych sterowników NVIDIA? Być może wypróbowanie różnych wersji może pomóc? (Spróbuj 384,387?) Ponadto, z jakim CUDA rozwijacie się? Nie próbowałem 14.04, ale używam CUDA8.0.61 17.04 z 970M NVIDIA-384. (Nie ma tutaj iGPU)
Robobenklein
1
Warto również sprawdzić sterowniki Intel Xserver. Spróbowałbym podłączyć minimalną liczbę monitorów i upewnić się, że kontrolki NVIDIA nie są aktywowane przez Xserver. (Zajrzyj do narzędzia Nvidia GUI, gdy X jest uruchomiony i zobacz, co się tam pokazuje.) Warto również sprawdzić, nvidia-debugdump -l -v -zczy system rozpoznaje twoją kartę.
Robobenklein

Odpowiedzi:

0

Odniosłem sukces w konfiguracji z dwoma monitorami, z jednym podłączonym do mojego dedykowanego procesora graficznego ATI, a drugim do i7-2600K iGPU.

Aby to zrobić, pobiegłem

xrandr --setprovideroutputsource 1 0

Kiedyś działał bezbłędnie, ale nadal jest uważany za eksperymentalny i od tego czasu z kilkoma aktualizacjami jądra YMMV.

BarBar1234
źródło