2013-04-03 7 views
1

Мы пытаемся настроить сервер с несколькими Tesla M2050 для работы с OpenGL.OpenGL и MultiGPU

Текущая настройка: Ubuntu 12.04 с драйверами NVidia. Мы установили xorg.conf с отдельными устройствами, идентифицированными идентификатором BUS.

Теперь мы связали X-сервер с дисплеем, который, в свою очередь, привязан к каждому устройству, и наш код прикреплен к каждому из этих X-серверов. Но как-то только одна сессия X, похоже, работает нормально. Другой из них производит искаженный вывод, и, наблюдая за ним из nvidia-smi, мы замечаем, что, когда производится искаженный вывод, графические процессоры не используются вообще.

Может ли кто-нибудь проверить, что наша установка кажется разумной? Другая вещь, которую мы заметили, заключалась в том, что это был только первый X-сервер, который был запущен, тот, который имеет проблему.

EDIT: Это режим без звука.

ответ

2

Проблема с несколькими серверами X заключается в том, что каждый сервер может захватить активный VT и, следовательно, отключить вывод рендеринга другого X-сервера. Этого можно избежать. Но я думаю, что в вашей ситуации хороший оле»„Зафод Mode“ будет отвечать вашим потребностям гораздо лучше:

режим Зафод является одним сервером X, управления несколькими устройствами, каждый со своим собственным монитором формирования экрана, вступил в одиночный экран. Это не TwinView или Xinerama! В режиме Zaphod вы не можете перемещать окна между экранами, т. Е. Каждый экран действует сам по себе.

+0

Спасибо. Извините, не упоминал, что нам это нужно в режиме безголового. – sumodds

+2

@Sumod: Headless будет немного проблематичным, потому что, как только VT сервера X будет подключен к нему, деактивируется, X-сервер выпустит GPU, используя его, чтобы другие процессы могли его перенести. В этом случае вам нужно будет сделать некоторые обманки, чтобы несколько VT оставались активными. Для этого требуется поддержка multiseat из ядра Linux * и * вы должны избавиться от ConsoleKit, так как это будет мешать всем неподходящим образом. К сожалению, ConsoleKit интегрирован в systemd, так как это еще сложнее избавиться. – datenwolf

+2

@Sumod: Однако, если все, что вам нужно, это то, что другие графические процессоры будут радостно работать параллельно с основным графическим процессором для вывода графики. Ну, просто не подключайте к ним мониторы. Черт, я готов поспорить, что вы можете настроить их на то, чтобы у них вообще не было секций монитора, или размером экрана 0x0 каждый. Конечно, вам нужно будет создать контексты PBuffer или фиктивное окно + FBO, чтобы получить видимый результат. – datenwolf