Re: [osg-users] WGL_NV_gpu_affinity
On 3. Jan 2009, at 10:01, Ferdi Smit wrote: Interesting Stefan, I didn't know that. So how would one achieve similar effect on non-quadro cards? To my knowledge: 1) Use Linux/OS X 2) Soft-mod your Geforce to a Quadro 3) It might be possible with ATI cards, I haven't checked that for some time. Surely it must be possible to use two GPUs independently? You can, just not with OpenGL. Cuda, OpenCL and iirc Direct3D can address individual GPU's. If not, that means that multi-GPU systems are inherently broken on windows? Depends on you definition of broken. For a user it is certainly good to be able to drag GL windows across GPU's. Also the overhead is 'just' broadcasting GL commands to all GPU's. If your window covers only one GPU, the other GPU(s) will have no fragments to process. Or can I setup truly independent screens in driver settings, like with X? Not that I am aware of, but I'ld like to know if you find a solution. Cheers, Stefan. -- http://www.eyescale.ch http://www.equalizergraphics.com http://www.linkedin.com/in/eilemann ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] WGL_NV_gpu_affinity
Interesting Stefan, I didn't know that. So how would one achieve similar effect on non-quadro cards? Surely it must be possible to use two GPUs independently? If not, that means that multi-GPU systems are inherently broken on windows? Or can I setup truly independent screens in driver settings, like with X? I thought that's what I did already. But I can see that it's doing this, as the taskbar on the other screens shows a preview, so it must still be sending commands to both cards then. Seems like a ridiculous default to me; a small benefit at great cost. The default under windows is that all GL commands go to all GPU's, so that one can drag a window across multiple GPU's. The default on X11 is the opposite - you only see GL on the screen you've used to open the display connection. The GPU affinity extension limits the GL commands to a subset of your GPU's. I've done tests showing that it gives you ~15% faster performance on a dual-GPU system. The window was only on one screen/GPU. Sample code and tests can be easily done with Equalizer (see signature). The extension is only available on Quadro cards, and a bit tricky to use. You have to create a temporary GL context to get the extension function pointers _on a screen driven by an nVidia card_. HTH, Stefan. -- Regards, Ferdi Smit INS3 Visualization and 3D Interfaces CWI Amsterdam, The Netherlands ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] WGL_NV_gpu_affinity
On 24. Dec 2008, at 14:10, Robert Osfield wrote: If things are performing under Windows it's most likely a driver issue. I can't see any reason why the way that the OSG is opening up windows under Windows, or he lack of gpu affinity extension as being the problem as normally the screen number and GPU attached to to the associated physical screen should provide all the info the driver needs to map things correctly. Linux/X11 works just fine with just the screen number so doesn't have any more information or controls that would make it behave differently, so it's all down to the driver/windowing system. Now it might be that the NVidia drivers under windows are a bit screwed when it comes to driving multiple displays and that one has to add the extra extension usage to give it the kick up the butt that it needs to do the right thing. Try experimenting with the gpu affinity extension see if it makes any difference. The default under windows is that all GL commands go to all GPU's, so that one can drag a window across multiple GPU's. The default on X11 is the opposite - you only see GL on the screen you've used to open the display connection. The GPU affinity extension limits the GL commands to a subset of your GPU's. I've done tests showing that it gives you ~15% faster performance on a dual-GPU system. The window was only on one screen/ GPU. Sample code and tests can be easily done with Equalizer (see signature). The extension is only available on Quadro cards, and a bit tricky to use. You have to create a temporary GL context to get the extension function pointers _on a screen driven by an nVidia card_. HTH, Stefan. -- http://www.eyescale.ch http://www.equalizergraphics.com http://www.linkedin.com/in/eilemann ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] WGL_NV_gpu_affinity
Hello Robert, Ok, I'll experiment with it. I can't right now though because I'm on holidays and only have a laptop. I do wonder why the extension is there if setting up a screen alone is enough. The window manager does give a little preview of the screen in the taskbar, so it is fetching data; perhaps that's the cause of the slowness... I'll try in Jan... Robert Osfield wrote: Hi Ferdi, On Wed, Dec 24, 2008 at 11:16 AM, Ferdi Smit wrote: Is WGL_NV_gpu_affinity no longer useful on windows? I believe it's a relatively new extension, so rather than no longer useful, it may be become useful, but just not deployed yet. I'm not very familiar with this extension don't know if it can directly address the performance issues you are seeing. More thoughts below. Because it is not used in the win32 graphics window. I'm asking this because even though I can open rendering windows on two GPUs and use them in parallel in two distinct processes (by having two screens, one for each gpu, just like in linux/X), the frame rate is cut in half on windows, while it is not on linux. So I'm wonder if rendering commands are actually still send to both cards. Driving multiple GPUs independently is a pain anyhow... If things are performing under Windows it's most likely a driver issue. I can't see any reason why the way that the OSG is opening up windows under Windows, or he lack of gpu affinity extension as being the problem as normally the screen number and GPU attached to to the associated physical screen should provide all the info the driver needs to map things correctly. Linux/X11 works just fine with just the screen number so doesn't have any more information or controls that would make it behave differently, so it's all down to the driver/windowing system. Now it might be that the NVidia drivers under windows are a bit screwed when it comes to driving multiple displays and that one has to add the extra extension usage to give it the kick up the butt that it needs to do the right thing. Try experimenting with the gpu affinity extension see if it makes any difference. Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org -- Regards, Ferdi Smit INS3 Visualization and 3D Interfaces CWI Amsterdam, The Netherlands ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] WGL_NV_gpu_affinity
Hi Ferdi, On Wed, Dec 24, 2008 at 11:16 AM, Ferdi Smit wrote: > Is WGL_NV_gpu_affinity no longer useful on windows? I believe it's a relatively new extension, so rather than no longer useful, it may be become useful, but just not deployed yet. I'm not very familiar with this extension don't know if it can directly address the performance issues you are seeing. More thoughts below. > Because it is not used > in the win32 graphics window. I'm asking this because even though I can open > rendering windows on two GPUs and use them in parallel in two distinct > processes (by having two screens, one for each gpu, just like in linux/X), > the frame rate is cut in half on windows, while it is not on linux. So I'm > wonder if rendering commands are actually still send to both cards. Driving > multiple GPUs independently is a pain anyhow... If things are performing under Windows it's most likely a driver issue. I can't see any reason why the way that the OSG is opening up windows under Windows, or he lack of gpu affinity extension as being the problem as normally the screen number and GPU attached to to the associated physical screen should provide all the info the driver needs to map things correctly. Linux/X11 works just fine with just the screen number so doesn't have any more information or controls that would make it behave differently, so it's all down to the driver/windowing system. Now it might be that the NVidia drivers under windows are a bit screwed when it comes to driving multiple displays and that one has to add the extra extension usage to give it the kick up the butt that it needs to do the right thing. Try experimenting with the gpu affinity extension see if it makes any difference. Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] WGL_NV_gpu_affinity
Is WGL_NV_gpu_affinity no longer useful on windows? Because it is not used in the win32 graphics window. I'm asking this because even though I can open rendering windows on two GPUs and use them in parallel in two distinct processes (by having two screens, one for each gpu, just like in linux/X), the frame rate is cut in half on windows, while it is not on linux. So I'm wonder if rendering commands are actually still send to both cards. Driving multiple GPUs independently is a pain anyhow... -- Regards, Ferdi Smit INS3 Visualization and 3D Interfaces CWI Amsterdam, The Netherlands ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org