Multiple Headless X Servers Attached to Graphics Cards

Jonathan Herriott herriojr at gmail.com
Fri Mar 29 17:05:21 PDT 2013


Hi,

I'm attempting to run an Amazon GPU instance which has access to two Tesla
M2050 GPUs on Ubuntu 12.10 and am having a major issue.

Unlike the usual case of running these things as CUDA servers, I'm actually
attempting to do some OpenGL rendering.  I've set my xconfig to contain two
ServerLayouts, one pointing to one GPU and one pointing to the other.

Section "ServerLayout"
    Identifier     "gpu0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "ServerLayout"
    Identifier     "gpu1"
    Screen      0  "Screen1" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Device"
    Identifier     "Card0"
    Driver         "nvidia"
    BusID          "PCI:0:3:0"
EndSection

Section "Device"
    Identifier     "Card1"
    Driver         "nvidia"
    BusID          "PCI:0:4:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection     "Display"
        Viewport    0 0
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       4
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       8
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       15
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       16
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Card1"
    Monitor        "Monitor1"
    SubSection     "Display"
        Viewport    0 0
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       4
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       8
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       15
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       16
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       24
    EndSubSection
EndSection

Now, when I run a single X server pointing to either of these
ServerLayouts, it works fine.  The issue is when I run two X servers at the
same exact time one pointing to one ServerLayout and one to the other.
 Anything trying to use the first one that was started will always have
issues.

Both x servers are started as so:

openvt -fw -- su -c "startx -- ${DISPLAY} -logverbose 20 -config
xorg.${LAYOUT}.conf -layout ${LAYOUT}" xuser

where for one X server, DISPLAY=:0 LAYOUT=gpu0

and the other is DISPLAY=:1 LAYOUT=gpu1

If the X server is started first for :0 the :1, any rendering using OpenGL
I try to do on :0 will result in either freezing, rendering fuzz, or
rendering a black screen.

If these instances supported SLI, this wouldn't be an issue, but
unfortunately, they don't.  Any help or direction on this matter would be
much appreciated as I haven't found a great way to debug what is going on
or whether the issue lies in X or the nvidia drivers (310.40).

Thanks,
Jonathan Herriott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg/attachments/20130329/42be8742/attachment.html>


More information about the xorg mailing list