統合GPUから動作するようにXorgを構成する


11

Intel CPU +統合グラフィックス、GTX650 GPUを備えたUbuntu 14.04LTSを使用しています。SOでこの質問をしましたが、彼らはそれがトピック外であると言いました。

CUDAコードのデバッグにGPUを使用したいので、ディスプレイを統合のみに変更する必要があります。これは、現在デバッグしようとすると表示されるエラーです。

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

BIOSに入り、プライマリディスプレイをiGPU(統合されたHD4600)に切り替えました。GPUのポートからは(ディスプレイに関して)もう何も出力されず、モニターをマザーボードに接続しました。モニターの1つだけが機能します。通常、私はそれらを次のように持っています:

|[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では970Mのnvidia-384でCUDA8.0.61を使用しています。(ここにiGPUはありません)
ロボベンクレイン

1
確認するのが良いのは、Intel xserverドライバーでしょう。最小限のモニターをプラグインし、nvidiaコントロールがXserverでアクティブにならないようにします。(Xの実行中にNvidia GUIユーティリティを見て、そこに何が表示されるかを確認nvidia-debugdump -l -v -zしてください。)また、システムがカードを認識している方法を確認することも価値があります。
ロボベンクレイン

回答:


0

デュアルモニターのセットアップで成功しました。1つは専用のATI GPUに接続され、もう1つはi7-2600K iGPUに接続されました。

そうするために私は走った

xrandr --setprovideroutputsource 1 0

以前は問題なく動作していましたが、まだ実験的であり、YMMV以降のいくつかのカーネルアップグレードが行われていると考えられています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.