Несколько графических процессоров в Linux - Как указать, на каком графическом процессоре работает X windows


12

Я работал под управлением Red Hat Enterprise Linux 6.1 в системе с GTX 480. Недавно я добавил GTX 580 3 ГБ, так как моему приложению CUDA требуется больше памяти, чем у меня на 480. Из-за проблем с пространством в коробке мне пришлось поместите 580 на шину PCI-E, ближайшую к ЦП, и переместите 480 во второй слот.

Теперь, когда я запускаю RHEL, X windows работает на 580. Я хотел бы иметь 480 запущенных X windows, чтобы на 580 были доступны полные 3 ГБ. У меня только один монитор, который будет отображаться только при подключении к 580 ; при подключении к 480 сигнал отсутствует.

Я исследовал несколько вариантов:

  1. Изменение BIOS - кажется, нет никакого способа указать основной GPU в моем BIOS

  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

Вот некоторые основные моменты из xorg.0.log, когда X windows не запускается:

(==) 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: Хорошо, понял.
Кус

@aland - только что опубликовал мой файл
xorg.0.log

Ответы:


1

Если я правильно прочитал вашу конфигурацию, у вас, похоже, Device0 = ваши 580 при PCI 9: 0: 0 и Device1 = ваши 480 при 7: 0: 0. Ваш screen0 - это пара ваших 580 (Device0) на Monitor0, а ваш screen1 - пара ваших 480 и Monitor1.

Но с другой стороны, выходной журнал считает, что Layout0 - это триплет screen0, monitor0 и Device1, а это не то, что вам нужно. Может быть, вам просто нужно определить Layout0 в вашей конфигурации как триплет screen1, monitor1, device1? Может быть, раздел ServerLayout?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.