Linux中的多个GPU-如何指定运行X Windows的GPU


12

我一直在装有GTX 480的系统上运行Red Hat Enterprise Linux 6.1。最近我添加了一个3GB GTX 580,因为我的CUDA应用程序比480上的内存更多。由于包装盒中的空间问题,我不得不将580放在最靠近CPU的PCI-E总线上,然后将480移动到第二个插槽。

现在,当我运行RHEL时,X窗口正在580上运行。我想让480运行X窗口,因此580上有3GB可用空间。我只有一个监视器,只有连接到580时才会显示; 如果连接到480,则没有信号。

我探讨了几种选择:

  1. 更改BIOS-在我的BIOS上似乎没有任何指定主GPU的方法

  2. 更改xorg.conf文件。我跑了nvidia-xconfig -a。我xorg.conf文件的末尾附在下面。

我以为我可以删除“屏幕”部分之一,让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

你能普莱舍也这似乎在你的错误后/var/log/Xorg.0.log,你只留下一个后Screen在你xorg.conf和X无法运行?
2011年

请不要交叉发布问题。
nhinkle 2011年

@nhinkle:好的,知道了。
kues 2011年

@aland-刚刚发布了我的xorg.0.log文件
kues 2011年

Answers:


1

如果我正确阅读了配置,则您似乎在PCI 9:0:0上有Device0 = 580,在7:0:0上有Device1 = 480。您的screen0是Monitor0上580(设备0)的配对,而screen1是480和Monitor1上的配对。

但是另一方面,输出日志认为Layout0是三元组screen0,monitor0和Device1,这不是您想要的。是否可以简单地将配置中的Layout0定义为三元组screen1,monitor1,device1?也许是ServerLayout节?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.