Настройте Xorg для работы с интегрированным графическим процессором

11

Я использую Ubuntu 14.04LTS, с процессором Intel + интегрированная графика, с графическим процессором GTX650. Я задал этот вопрос на SO, но они сказали, что это оффтоп.

Я хочу использовать свой графический процессор для отладки кода CUDA и для этого мне нужно изменить отображение только на интегрированный. Это ошибка, которую я получаю, когда пытаюсь отладить ее сейчас:

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

Я зашел в BIOS и переключил основной дисплей на iGPU (встроенный HD4600). Больше ничего не выходило из портов GPU (с точки зрения дисплея), и я подключил свои мониторы к материнской плате. Работает только один из мониторов. Обычно они у меня как:

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

В этой конфигурации с iGPU на мониторе 1 ничего не отображается (он черный, но компьютер знает, что он там есть - горит зеленый свет, и все мои окна на нем открыты). Единственный способ заставить его работать, это поменять Monitor 2 на VGA и Monitor 1 на DVI.

Если я вхожу lspci | grep VGAв терминал, я получаю это:

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)

Бег xrandrдает мне:

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

Это не соединение HDMI, я не знаю, почему это так. С графическим процессором он знает, что это DVI. Тем не мение...

Это xorg.conf(если я изменяю это, это просто перезаписывает это):

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

Это мой 10-monitors.confфайл в /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

Это по-прежнему не позволяет отлаживать мой код CUDA. Если я запускаю lsof / dev / nvidia *, я получаю:

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

Поэтому я думаю, что Compiz (X-сервер?) Все еще использует его. Как я могу остановить это от его использования?

Mewa
источник
1
Я полагаю, вы используете проприетарные драйверы NVIDIA? Возможно, попробовать разные версии может помочь? (Попробуйте 384 387?) Кроме того, с какой CUDA вы разрабатываете? Я не пробовал 14.04, но я использую CUDA8.0.61 17.04 с 970M nvidia-384. (Здесь нет iGPU)
Robobenklein
1
Также хорошо бы проверить драйверы Intel Xserver. Я бы попробовал подключить минимальное количество мониторов и убедиться, что элементы управления nvidia не активируются с помощью Xserver. (Посмотрите в утилите Nvidia GUI, когда X работает, и посмотрите, что там показано.) Также стоит проверить, nvidia-debugdump -l -v -zкак ваша система распознает вашу карту.
Робобенкляйн

Ответы:

0

Я добился успеха с настройкой двух мониторов: один подключен к моему выделенному графическому процессору ATI, а другой - к iGPU i7-2600K.

Для этого я побежал

xrandr --setprovideroutputsource 1 0

Раньше он работал безупречно, но все еще считается экспериментальным, и с тех пор несколько обновлений ядра YMMV.

BarBar1234
источник