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

Reply via email to