On 06/25/2012 12:59 AM, GeeKer Wang wrote:
Hi, all
I want to use two GTS 250 cards to do the parallel rendering job based
on OpenSceneGraph。
In my experiment, a scene full of complex models is split to 2 parts
according to viewport。
The 2 parts are rendered in seperated windows (actually two slaves).
I hope the LEFT part is rendered in the first screen and by the first
GPU, and the RIGHT part in the second screen and by the second GPU。
The results are a little wierd and disappointing.
Hi, Bob,
The additional card will only help if your application is GPU-bound
(that is, waiting on the GPU to finish rendering a frame before the next
can start). Another possibility is that it is CPU bound (the CPU is
taking most of the time and the GPU is waiting on it), and another is
that it is interconnect bound (the bus between the CPU or RAM and the
GPU is the bottleneck).
Just adding another card will not help if you're CPU-bound or
interconnect bound, and it can actually make things worse if your scene
isn't set up in an optimal way. You might end up trying to cram twice
the amount of data down the bus in order to try and keep both GPUs fed,
and this will kill performance even more than with a single card.
One quick fix you can try is to run the osgUtil::Optimizer on your scene
with the option "VERTEX_PRETRANSFORM | INDEX_MESH |
VERTEX_POSTTRANSFORM". This will optimize the vertex data for the
vertex cache common on modern GPUs, and may help with bus bandwidth.
The other key is to be sure that your scene is organized and subdivided
spatially, so that when you're viewing the scene, you don't end up
duplicating draw calls across the GPUs.
Hope this helps,
--"J"
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org