통합 GPU에서 작동하도록 Xorg 구성


11

GTX650 GPU와 함께 Intel CPU + 통합 그래픽과 함께 Ubuntu 14.04LTS를 사용하고 있습니다. 나는 SO에 대해이 질문을했지만 그들은 그것이 주제가 아니라고 말했다.

CUDA 코드를 디버깅하기 위해 GPU를 사용하고 싶습니다. 디스플레이를 통합 전용으로 변경해야합니다. 이것은 현재 디버깅하려고 할 때 발생하는 오류입니다.

"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에 아무것도 표시되지 않습니다 (검은 색이지만 컴퓨터는 그 위치를 알고 있습니다-녹색 표시등이 켜져 있고 모든 창이 열려 있습니다). 작동시키는 유일한 방법은 모니터 2를 VGA로 바꾸고 모니터 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 연결이 아니며 왜 그렇게 생각하는지 모르겠습니다. GPU를 사용하면 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 서버?)가 여전히 사용하고 있다고 생각합니다. 사용하지 못하게하려면 어떻게합니까?


1
독점적 인 nvidia 드라이버를 사용한다고 가정합니까? 다른 버전을 사용하는 것이 도움이 될 수 있습니까? (384,387 번 시도해보십시오.) 또한 어떤 CUDA로 개발하고 있습니까? 14.04에서 시도하지 않았지만 17.04에서 CUDA8.0.61을 970M nvidia-384와 함께 사용하고 있습니다. (여기에 iGPU 없음)
Robobenklein

1
인텔 xserver 드라이버도 확인해야합니다. 최소량의 모니터를 연결하여 시도하고 nvidia 컨트롤이 Xserver에서 활성화되어 있지 않은지 확인하십시오. (X가 실행되는 동안 Nvidia GUI 유틸리티를 살펴보고 거기에 무엇이 표시되는지 확인하십시오.) 또한 nvidia-debugdump -l -v -z시스템에서 카드를 인식하는 방법을 확인해야합니다.
Robobenklein 2012 년

답변:


0

하나는 전용 ATI GPU에 연결하고 다른 하나는 i7-2600K iGPU에 연결 한 이중 모니터 설정에서 성공했습니다.

그렇게하기 위해 나는 달렸다

xrandr --setprovideroutputsource 1 0

그것은 완벽하게 작동했지만 여전히 실험적이며 YMMV 이후 여러 커널 업그레이드로 간주됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.