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


12

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

今、RHELを実行すると、Xウィンドウが580で実行されます。480でXウィンドウを実行したいので、580でフル3GBを使用できます。 ; 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

あなたはあなたの中に表示されるも、ポストエラーをpleseはでした/var/log/Xorg.0.logあなたは一つだけを残した後、Screen自分の中でxorg.conf実行に失敗し、X?
オーランド

質問をクロスポストしないでください。
-nhinkle

@nhinkle:OK-わかった。
kues

@aland-私のxorg.0.logファイルを投稿したばかり
kues

回答:


1

構成を正しく読み取った場合、Device0 = PCIの9:0:0で580、Device1 = 7:0:0の480になっているようです。screen0はMonitor0上の580(Device0)のペアであり、screen1は480とMonitor1のペアです。

しかし、他方では、出力ログは、Layout0が三つ組のscreen0、monitor0、およびDevice1であると考えていますが、これは望んでいるものではありません。構成でLayout0を定義して、トリプレットscreen1、monitor1、device1にする必要があるのでしょうか?ServerLayoutスタンザかもしれませんか?

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