2013-04-03 62 views
1

我們正試圖搭配多臺Tesla M2050與OpenGL一起運行的服務器。OpenGL和MultiGPU

當前設置如下:帶有NVidia驅動程序的Ubuntu 12.04。我們使用由BUS ID標識的單獨設備來設置xorg.conf。

現在我們綁定了一臺X服務器,每臺X服務器都與顯示器相連,顯示器依次與每個設備綁定,我們的代碼連接到這些X服務器中的每一臺。但不知何故,只有一個X會話似乎沒有問題。另一個產生亂碼輸出,在從nvidia-smi看它時,我們注意到當產生亂碼輸出時,GPU沒有被使用。

有人可以驗證我們的設置看起來合理嗎?我們注意到的另一件事是,只有第一臺啓動的X服務器纔是有問題的服務器。

編輯:這是在無頭模式。

回答

2

多個X服務器的一個問題是,每個服務器可能會抓取活動的VT,從而禁用其他X服務器的呈現輸出。這可以避免。但我認爲在您的情況良好的OLE」 ‘贊福德模式’配不配好得多您的需求:

贊福德的模式是單X服務器,控制多種設備,每一個都有自己的顯示器形成一個屏幕,加入了一個單屏幕布局。 這不是TwinView或Xinerama!在Zaphod模式下,您無法在屏幕之間移動窗口,即每個屏幕都獨立運行。

+0

謝謝。對不起,沒有提到我們需要它在無頭模式。 – sumodds

+2

@Sumod:無頭將會有點問題,因爲一旦X服務器的VT被連接到被停用,X服務器將釋放其使用的GPU,以便其他進程可以接管它。在這種情況下,你必須做一些欺騙手段,以便多個VT保持活躍狀態​​。這需要來自Linux內核的多重支持*和*您必須擺脫ConsoleKit,因爲這會干擾所有不合適的方式。不幸的是,ConsoleKit已經集成到systemd中,因此更難以擺脫。 – datenwolf

+2

@Sumod:然而,如果你只是在追求,那麼其他GPU將會高興地與圖形輸出的主GPU並行工作,那就是:不要將顯示器連接到它們。哎呀,我敢打賭你可以配置它們根本沒有監視器部​​分,或者每個屏幕尺寸爲0x0。當然,你必須創建PBuffer上下文或虛擬窗口+ FBO,然後才能獲得一些可見的輸出。 – datenwolf