[eq-dev] Is it possible to use multiple GPUs and use 1 monitor?

6 views
Skip to first unread message

Raymond de Vries

unread,
Apr 14, 2010, 3:50:50 AM4/14/10
to eq-...@equalizergraphics.com
Hi,

I'm sorry to ask but it is still unclear how I can use multiple GPUs
while still using 1 monitor. I can succesfully use 2-pipe.2D.eqc to use
my 2 GPUs for 1 window (on Kubuntu, crashes on Windows 7) when I use 2
monitors. But when I use only 1 screen, I cannot use 2-pipe.2D.eqc, the
server aborts ('unreachable code...').

Thanks a lot for your tips & hints.

Regards
Raymond


_______________________________________________
eq-dev mailing list
eq-...@equalizergraphics.com
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Maxim Makhinya

unread,
Apr 14, 2010, 4:00:03 AM4/14/10
to Equalizer Developer List

Hi Raymond,

You need to use P-Buffer or FBO as a rendering target on your second
GPU.

Check 2-pipe.2D.PBuffer.eqc in examples/configs.

Also you might need to set also a viewport for your second GPU to cover
your area. Here is an example from one of my configs:

global
{
EQ_WINDOW_IATTR_HINT_FULLSCREEN ON
EQ_WINDOW_IATTR_HINT_DOUBLEBUFFER OFF
EQ_WINDOW_IATTR_HINT_DRAWABLE pbuffer
EQ_WINDOW_IATTR_PLANES_STENCIL ON
EQ_CHANNEL_IATTR_HINT_SENDTOKEN ON
}
server
{
config
{
appNode
{
pipe
{
name "pipe0n0"
device 0
window
{
name "window0"
attributes
{
hint_drawable window
hint_doublebuffer ON
}
viewport [ 0 0 2560 1600 ]
channel { name "channel0" }
}
}
pipe
{
name "pipe0n1"
device 1
window
{
name "window1"
viewport [ 0 0 2560 1600 ]
channel { name "channel1" }
}
}
}
compound
{
...
}
}
}


Best regards,

Maxim Makhinya

Raymond de Vries

unread,
Apr 14, 2010, 4:22:22 AM4/14/10
to Equalizer Developer List
Hi Maxim,

Thnx, using the pbuffer config makes sense. Do I still need to configure
the X server to use the second GPU? When running eqServer with
2-pipe.2D.PBuffer.eqc eqPly still exits with this error (and hence
eqServer is quit):
"OS Pipe initialization failed: Can't open display: :0.1"

On what platform are you btw? Eventually I want to use Windows (now
using Kubuntu for testing).

thanks
Raymond

Maxim Makhinya

unread,
Apr 14, 2010, 4:40:58 AM4/14/10
to Equalizer Developer List

Hi Raymond,

I have Ubuntu 9.04.

You should configure your X server. Here is what glxinfo shows on our
machines:

$ glxinfo | grep display
name of display: 0:0.0
display: 0:0 screen: 0
display: 0:0 screen: 1
display: 0:0 screen: 2
display: 0:0 screen: 3

We have 2 GeForce 9800 GX2 here, they are shown as 4 devices.
(I just connected all 4 displays once to get proper xorg.conf :)
and then saved it to other machines).

When actual displays are not connected driver thinks that some
analog display with low resolution is connected (that's why you
need to specify viewports' sizes if you are using full screen mode).

Also, recently a bug with p-buffers on linux was discovered:

https://sourceforge.net/tracker/?func=detail&aid=2934387&group_id=170962&atid=856209

I'm not sure if you will have it as well, try FBOs otherwise.

Older versions don't have this problem (I'm using quite old rev. 3335
in my tests).

Best regards,

Maxim Makhinya

Raymond de Vries

unread,
Apr 14, 2010, 4:59:01 AM4/14/10
to Equalizer Developer List
Hi Maxim,

Thanks again! I was just going to write a message saying that pbuffer
does not work either... I am using the svn HEAD so I probably hit the
pbuffer bug. Using fbo works indeed.

Sounds like a reasonable thing to automatically create a config and use
it on other machines. And also, I needed to specify the actual viewport
sizes.

What do you think about using the same strategy on Windows (7)? I wonder
if I can configure windows so that the 2nd GPU can be addressed while no
monitor is attached...

Thanks,

Stefan Eilemann

unread,
Apr 14, 2010, 5:07:04 AM4/14/10
to Equalizer Developer List
Raymond,

On Wed, Apr 14, 2010 at 10:59 AM, Raymond de Vries <ree...@xs4all.nl> wrote:

> What do you think about using the same strategy on Windows (7)? I wonder
> if I can configure windows so that the 2nd GPU can be addressed while no
> monitor is attached...

Google 'windows 7 multi-GPU'. Afaik you need to have a monitor
attached on Win 7.

Try running the affinityCheck tool to see your devices. We'll shortly
begin adding support for Win7, and then you can have an official
answer.


HTH,

Stefan.

Maxim Makhinya

unread,
Apr 14, 2010, 5:07:59 AM4/14/10
to Equalizer Developer List

Hi Raymond,

Unfortunately I have very little experience with Windows in general,
and no experience at all with Win 7. Can't give you any advice on
disconnected displays.


Stefan has experience with Windows, maybe he can say something.


I only know that on the XP WGL_NV_gpu_affinity extension should be
supported in order to use multiple GPUs (only Quadro FX cards support
this, also some soft-modded GT 8800 might), here is a tool to check
the extension:

http://www.equalizergraphics.com/downloads/tools.html

Best regards,

Maxim Makhinya

Raymond de Vries

unread,
Apr 14, 2010, 5:39:31 AM4/14/10
to eq-...@equalizergraphics.com
Hi,

Good news: the same config (2-pipe with fbo) works ok on Windows 7!
Before I was blaming windows when I used the 2-pipe pbuffer version but
apparantly I hit the bug there.

Indeed I need a monitor attached to the second GPU. Ok, that's workable.

wglEnumGpusNV() returns false when the 2nd GPU is addressed so a monitor
needs to be attached. Everything is clear now, w.r.t. windows 7 & gpus.

Stefan, do you know if wglEnumGpusNV() returns true on WinXP or Win
Vista for the 2nd GPU?

regards
Raymond

Maxim Makhinya

unread,
Apr 14, 2010, 5:53:23 AM4/14/10
to Equalizer Developer List

Hi,

On Apr 14, 2010, at 11:39 , Raymond de Vries wrote:

> Hi,
>


> Indeed I need a monitor attached to the second GPU. Ok, that's
> workable.
>

I just came across this link, might be helpful. Dummy plug for windows:

http://www.overclock.net/overclock-net-folding-home-team/384733-30-second-dummy-plug.html


Cheers,

Max

Raymond de Vries

unread,
Apr 14, 2010, 6:07:14 AM4/14/10
to eq-...@equalizergraphics.com
Hi,

That looks handy! Thanks for sharing.

Regards
Raymond

ayoung200

unread,
Jul 5, 2011, 4:45:40 PM7/5/11
to eq-...@equalizergraphics.com
I am trying to run eqPly on 2 GPUs with one monitor. I use the default
2-pipe.2D.PBuffer.eqc config file. I get the following result:

./eqPly --eq-config 2-pipe.2D.PBuffer.eqc
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server
":0.1"
after 53 requests (53 known processed) with 0 events remaining.
X Error of failed request: BadIDChoice (invalid resource ID chosen for this
connection)
Major opcode of failed request: 78 (X_CreateColormap)
Resource id in failed request: 0x5400004
Serial number of failed request: 53
Current serial number in output stream: 53

The system is using dual ATI FirePro V7800. Running with the 1-pipe.eqc
config everything works fine.

output from fglrxinfo:

fglrxinfo | grep display
display: :0.0 screen: 0
display: :0.0 screen: 1

OS: Ubuntu 10.04

Here is my xorg.conf file:

Section "ServerLayout"
Identifier "aticonfig Layout"
Screen 0 "aticonfig-Screen[0]-0" 0 0
Screen "aticonfig-Screen[1]-0" RightOf "aticonfig-Screen[0]-0"
EndSection

Section "Module"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[0]-0"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[1]-0"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Device"
Identifier "aticonfig-Device[0]-0"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSection

Section "Device"
Identifier "aticonfig-Device[1]-0"
Driver "fglrx"
BusID "PCI:6:0:0"
EndSection

Section "Screen"
Identifier "aticonfig-Screen[0]-0"
Device "aticonfig-Device[0]-0"
Monitor "aticonfig-Monitor[0]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "2560x1600"
EndSubSection
EndSection

Section "Screen"
Identifier "aticonfig-Screen[1]-0"
Device "aticonfig-Device[1]-0"
Monitor "aticonfig-Monitor[1]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "2560x1600"
EndSubSection
EndSection

--
View this message in context: http://software.1713.n2.nabble.com/Is-it-possible-to-use-multiple-GPUs-and-use-1-monitor-tp4900316p6551667.html
Sent from the Equalizer - Parallel Rendering mailing list archive at Nabble.com.

Stefan Eilemann

unread,
Jul 7, 2011, 4:02:28 AM7/7/11
to eq-...@equalizergraphics.com
Hi,

On 5. Jul 2011, at 22:45, ayoung200 [via Software] wrote:

> I am trying to run eqPly on 2 GPUs with one monitor. I use the default 2-pipe.2D.PBuffer.eqc config file. I get the following result:
>
> ./eqPly --eq-config 2-pipe.2D.PBuffer.eqc
> XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.1"
>       after 53 requests (53 known processed) with 0 events remaining.
> X Error of failed request:  BadIDChoice (invalid resource ID chosen for this connection)
>   Major opcode of failed request:  78 (X_CreateColormap)
>   Resource id in failed request:  0x5400004
>   Serial number of failed request:  53
>   Current serial number in output stream:  53

This seems to be an issue with the PBuffer code on FirePro. This has not been tested yet. Can you try the same config with an on-screen window? If that works, try using an FBO.

Best would be to debug the PBuffer code in libs/client/glXWindow.cpp on your machine? The offending call seems to be XCreateColormap in line 474.


Cheers,

Stefan.



View this message in context: Re: Is it possible to use multiple GPUs and use 1 monitor?
Reply all
Reply to author
Forward
0 new messages