[eq-dev] AFR-style DPlex on a Dual-GPU machine
Stefan Eilemann
eilemann at gmail.com
Mon Jan 5 12:26:22 CET 2009
On 5. Jan 2009, at 11:08, Mathias Heyer wrote:
> First I tried a SFR-style config with a classic 2D load balancer. It
> worked almost right out of the box. It didn’t give a performance
> boost, though. But I think, this is more a driver issue than
> Equalizer’s fault. The the additionally required glReadPixels()/
> glDrawPixels() calls might also prevent optimal performance. What is
> your experience here?
It depends on your base frame rate and data structure. As a rule of
thumb, you don't get much speedup after ~20FPS. The pixel transfer is
the major bottleneck on the Equalizer side. There are a couple of
optimizations left to be implemented - namely PBO transfers and async
readbacks. For PBO there is experimental code (see eqPixelBench), but
so far I couldn't get it consistently to work faster than normal
readbacks.
View frustum culling, fragment complexity and your data structures are
an important factor as well.
> But again, I could not gain any performance increase. Is that even
> possible with Equalizer (in the context of this config and hardware
> setup) ? For AFR to work, the render-start of both pipes _must not_
> be locked to each other, but instead, they should be offset by ca.
> half a frame.
>
> So my question is: How to make DPlex work (optimally) on MGPU-
> Machines?
You need one pipe (thread) for each channel (see 5-window.DPlex.eqc).
If your thread model is draw_sync (the default) you'll need one node
(process) per GPU, otherwise your draws are serialized.
The statistics should show nice overlapping green draw operations
between the two GPU's.
HTH,
Stefan.
More information about the eq-dev
mailing list