2 GPU NVidia + 4 монитора — как заставить работать?

Изображение пользователя Eugene.

Приветствую!

В процессе попыток перевести одну из рабочих станций на Linux столкнулся с неразрешимой для себя проблемой.
А именно, ни как не удается заставить работать систему на мультимониторной конфигурации.

Дано:
2 x GPU NVidia GeForce GT 430 на каждом из них висит по 2 монитора.

Имеем:
- С открытым драйвером Nouveau мониторы в настройках системы определяются прекрасно, но производительность оставляет желать лучшего.
- С последним проприетарным драйвером из репозитория, сконфигурировав X-сервер с помощью утилиты идущей в комплекте с драйвером, система видит только два монитора из четырех (с первой видеокарты). Более того, нормально работать можно только с Primary монитором. На втором мониторе, по сути, только обоина или, в зависимости от включения Option BaseMosaic в конфиге, просто черный фон.

Содержимое xorg.conf:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 367.35  ([email protected])  Tue Aug  9 10:11:49 UTC 2016

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer V276HL"
    HorizSync       30.0 - 83.0
    VertRefresh     50.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Philips PHL 243V5"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 430"
    BusID          "PCI:1:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 430"
    BusID          "PCI:4:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-1"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0, VGA-0: nvidia-auto-select +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-1"
    Option         "metamodes" "VGA-0: nvidia-auto-select +0+0, DVI-I-1: nvidia-auto-select +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Здесь мы в результате получаем 2 X-Screen по два монитора в каждом. Судя по всему, сами иксы видят все 4 монитора. Курсор есть на всех четырех, но на тех, что принадлежат второй карте, курсор нативный иксовый, т.е. в виде крестика.

Итого можно сделать вывод, что кеды некорректно работают на конфигурации системы более чем с одним X-Screen.
Все попытки объединить вывод в один X-Screen потерпели неудачу.

Имеющие опыт конфигурации Multihead систем на GPU NVidia отзовитесь!
Убил весь день. В какую сторону копать ума не приложу.

0
MacLeod - 29 Май, 2017 - 16:28
Изображение пользователя MacLeod.

Я очень сильно сомневаюсь, что KDE можно заставить работать на разных Х.

Option "Xinerama" "0"
Суть Xinerama как раз в том, чтобы собрать все мониторы в один Х, только в таком случае в этом параметре должна быть единичка, а в ServerLayout должны быть перечислены и пронумерованы мониторы, с указанием их местоположения относительно друг друга.
Утила вам создала конфиг неверно, копайте в эту сторону.

0
Eugene - 29 Май, 2017 - 16:37
Изображение пользователя Eugene.

1. Xinerama напрочь убивает ускорение OpenGL.
2. Становиться жутко неудобно работать, т.к. окна максимизируются на все 4 монитора.
3. Kubuntu в отличие от Ubuntu так и не удалось заставить работать нормально даже с Xinerama.

Собственно потому и обращаюсь к сообществу. Ибо все варианты уже испробовал...

0
MacLeod - 29 Май, 2017 - 19:03
Изображение пользователя MacLeod.

1. То, что использование двух видеокарт, не соединенных специальным мостом (типа SLI/Crossfire, только для FB) убивает производительность - это факт. Если просто рассуждать - получаем два варианта: рендеринг идет либо в программный фреймбуфер, либо в FB одной из карт, если она позволяет работу с таким размером (разрешением) аппаратно, после чего оно режется на части (разделяется и копируется побитово) и его части заливаются на разные карточки. Этот процесс заведомо медленнее, чем TwinView, когда все делает одна карта.
Но вот по поводу полного убиения OpenGL я не уверен, поскольку из ряда неподтвержденных источников можно нагуглить инфу, что "в свежих блобах nvidia есть поддержка OpenGL в Xinerama". Есть даже такой забавный опыт - https://www.cs.uaf.edu/2007/powerwall/. Можно долго предполагать всяку фигню типа "а возможно оно и работало какой-то период, а потом поломали", но лучше проверить на практике, убедившись, что каждый пункт конфига понимается правильно и действительно было сделано все возможное.

2. Даже если сделать один сеанс X, размером, скажем, 7680х1080?
3. Аналогичный вопрос, сеанс был один?

0
Eugene - 29 Май, 2017 - 20:45
Изображение пользователя Eugene.

Xinerama тестил. Собственно, на рабочей станции крутиться одно самописное и требовательное к производительности графики приложение. Скорость работы с Xinerama в разы ниже. Это если говорить об одновременной работе на двух GPU.
Сеанс X запущен был, разумеется, один. В общем-то кеды дополнительно ни как не конфигурил. Все ковыряния касались исключительно xorg.conf

P.S.
Самое главное, что древняя XP на данной конфигурации работает просто великолепно. Производительность даже без SLI моста на высоком уровне.

0
MacLeod - 30 Май, 2017 - 11:00
Изображение пользователя MacLeod.

Ну, с виндой у nvidia все вообще хорошо: и со SLI, и с multigpu, и c multihead, и с оптимизацией под отдельные игры/приложения... С линуксом они такого рвения не проявляют.
Наверное, тут единственный способ - попробовать оптимизировать свое приложение под данную конфигурацию, если конечно архитектура была заложена хорошая.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры