Question about SLI

Below is the text from NVIDIA’s SLI document :
"any change to local memory on one GPU (for example, dynamic texture updates) will often require

a data broadcast to other GPUs. This can introduce a performance penalty depending on the size

and characteristics of the data."

Is it means if I update a texture’s data,the data will be broadcast to the other GPU?My program

update a texture’s data with a video stream,and display it in a 3D scene,as we know every frame

of video is different,so only the texture in rendering GPU need to be updated,broadcast to other

one is redundant,so is there a way to prevent the data broadcasting under SLI working mode?

I also want to know which bus the NV driver use to broatcast data?Is it PCI-E,or the birdge

connector link 2 GPUs?

What SLI mode are you using (AFR, SPR, Compatibility) ?

I seem to recall an Nvidia extension for dealing with cards in SLI mode. NV_GPU_sublimity… or something like that :wink:

More like NV_GPU_affinity i think :slight_smile:

NV_GPU_sublime_affinity :slight_smile:

I’m using AFR mode

Is it a GL extension?Where can I get the description of it?

Here is the spec and the real name : WGL_nv_gpu_affinity

This is a GL extension available for Nvidia cards in Rel95 drivers and later.

Sorry for any confusion, pango. :slight_smile:

It was an absurd attempt to simultaneously praise Nvidia and allude to a relevant spec.

I had looked at the document about “WGL_NV_gpu_affinity” extension,but this extension only introduce a method of creating a dc that is bound to a specific GPU,but my problem is:
“How to prevant data broadcast to other GPUs under SLI AFR working mode”,I can not find any clew from the doc.

I’m interested in SLI just for it can give my program multi-gpu parallel rendering capability without code rewriting,but from NV’s documents it also seems to have some usage restrictions,so

I post below question:
Is SLI a good resolution for multi-gpu rendering?How many programs in market use it?Is it suit for the program that has mass of data to transfer between host and gpu(such as my video

processing program)?

the answer is that you can not. SLI appears completely transparent to the application. sure the application can do some things to better fit a SLI operation mode, but it simply does not know.

“Completely transparent” ? If it were so, we wouldn’t need to do anything, it would work just out of the box.

Even Crysis does not yet support SLI properly, so it can’t be that easy.


yes it is transparent to the application. as i said SLI only works when certain conditions are met. complex renderers like crysis’ may not be able to meet this conditions trivially, so nvidia sends devtecs to tell the developers how to take advantage of SLI. but there is nothing that can directly to support it, there are only guidelines.

Pango, if you’re still confused you might want to look at the “sli best practices” white paper at Nvidia developer… chock full of tasty performance tips.