web-dev-qa-db-ja.com

Linuxの複数のGPU-Xウィンドウを実行するGPUを指定する方法

GTX480を搭載したシステムでRedHat Enterprise Linux 6.1を実行しています。最近、CUDAアプリケーションが480よりも多くのメモリを必要とするため、3GB GTX 580を追加しました。ボックス内のスペースの問題により、 CPUに最も近いPCI-Eバスに580を配置し、480を2番目のスロットに移動します。

これで、RHELを実行すると、Xウィンドウが580で実行されます。480でXウィンドウを実行して、580で3GB全体を使用できるようにします。580に接続されている場合にのみ表示されるモニターは1つだけです。 ; 480に接続されている場合、信号はありません。

私はいくつかのオプションを検討しました:

  1. BIOSの変更-BIOSでプライマリGPUを指定する方法がないようです

  2. Xorg.confファイルを変更する。 nvidia-xconfig -aを実行しました。 xorg.confファイルの末尾を以下に追加します。

「画面」セクションの1つを削除して、Screen0にDevice1を利用させることができると思いましたが、それではXウィンドウが実行されません。


Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 580" BusID "PCI:9:0:0" EndSection    
Section "Device" Identifier "Device1" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 480" BusID "PCI:7:0:0" EndSection
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
Section "Screen" Identifier "Screen1" Device "Device1" Monitor "Monitor1" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection

Xウィンドウの起動に失敗した場合のxorg.0.logからのハイライトは次のとおりです。

(==) Using config file: "/etc/X11/xorg.conf"
(==) ServerLayout "Layout0"
(**) |-->Screen "Screen0" (0)
(**) |   |-->Monitor "Monitor0"
(**) |   |-->Device "Device1"
...
(--) PCI: (0:7:0:0) 10de:06c0:10de:075f nVidia Corporation GF100 [GeForce GTX 480] rev 163, Mem @ 0xf6000000/33554432, 0xc8000000/134217728, 0xd0000000/67108864, I/O @ 0x0000dc00/128, BIOS @ 0x????????/524288
(--) PCI:*(0:9:0:0) 10de:1080:19da:2203 nVidia Corporation GF110 [Geforce GTX 580] rev 161, Mem @ 0xfa000000/16777216, 0xd8000000/134217728, 0xd6000000/33554432, I/O @ 0x0000ec00/128, BIOS @ 0x????????/524288
...
(II) Module nvidia: vendor="NVIDIA Corporation"
    compiled for 4.0.2, module version = 1.0.0
    Module class: X.Org Video Driver
(II) NVIDIA dlloader X Driver  270.41.19  Mon May 16 23:33:35 PDT 2011
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
(II) Primary Device is: PCI 09@00:00:0
...
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(II) Sep 15 16:18:27 NVIDIA(0): NVIDIA GPU GeForce GTX 480 (GF100) at PCI:7:0:0 (GPU-0)
(--) Sep 15 16:18:27 NVIDIA(0): Memory: 1572864 kBytes
(--) Sep 15 16:18:27 NVIDIA(0): VideoBIOS: 70.00.21.00.02
(II) Sep 15 16:18:27 NVIDIA(0): Detected PCI Express Link width: 8X
(--) Sep 15 16:18:27 NVIDIA(0): Interlaced video modes are supported on this GPU
(--) Sep 15 16:18:27 NVIDIA(0): Connected display device(s) on GeForce GTX 480 at PCI:7:0:0
(--) Sep 15 16:18:27 NVIDIA(0):     none
(EE) Sep 15 16:18:27 NVIDIA(0): No display devices found for this X screen.
(II) UnloadModule: "nvidia"
(II) UnloadModule: "wfb"
(II) UnloadModule: "fb"
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found
12
kues

設定を正しく読んだ場合、Device0 = PCI 9:0:0の580、Device1 = 7:0:0の480のようです。 screen0は、Monitor0上の580(Device0)のペアであり、screen1は、480とMonitor1のペアです。

しかし一方で、出力ログは、Layout0がトリプレットscreen0、monitor0、およびDevice1であると見なします。これは、not必要なものです。設定でLayout0をトリプレットscreen1、monitor1、device1として定義する必要があるというだけでしょうか?たぶんServerLayoutスタンザ?

1
AlwaysLearning