• Welcome to Maher's Digital World.

NVidia SLI on Windows - basic manual

Started by Daniil, December 24, 2014, 10:39 PM

Previous topic - Next topic

Daniil

SLI manual, or why two nuts rockets is better then one. :)




Кomяde Humbert in other topic asked some questions about NVidia SLI.
When I set up the SLI I had the same questions, and explain this is requires a more complexe answer, than just a short post. So, here is the manual about SLI.

1) What is NVidia SLI.
As we can read in corresponding page of Pediwikia, SLI is Scalable Link Interface, i.e., this is a technology to use two or more GPU to accelerate rendering of graphical operations by separating the job between them. The basic idea of SLI (it was developed before it was called SLI, and even before the NVidia came to market - you can read about this in this article) is to separate the calculation operations between two or more videocards.
Calculating of 3D transformations, raytracing and overlaying the textures on polygons is, in fact, a large array of simple matrix operations (I mean mathematical matrixes, you can ask our кomяade Scarface what is it.) The result of this calculation is the color of the pixel on display. This operations doesn't require difficult (for machine) instructions like "if-else" or "switch" statements and can be easily parallelized. When 3D game executing on PC, such operations must be executed for each pixel of image on display.
So, the simplest solution to enhance speed of this job is insert two video cards, stupidly separate image in halves and calculate the colors of the pixels of each halves on different video card.
That is what, basically, is SLI. But, of course, in real all is more complex. ;D

2) What SLI can do and what can't, what you need to create SLI.
SLI in fact have 3 basic modes: Split Frame Rendering (SFR), Alternate Frame Rendering (AFR), and SLI Antialiasing (SLI AA). I don't talk about Hybrid SLI, because that is mode using for enchance amount of memory of integrated NVidia graphics adapter and give you almost no acceleration in 3D apps.
You can read about that modes in corresponding article in Wiki.
But - that's not all. (Here we start to dig up underwater rocks). We must not discover the world of multy-GPU solutions without talking about other (linked with SLI) technologies - NVidia PhysX and Software SLI.
What is PhysX? PhysX is technology for accelerating computing of physical processes simulation. I.e., if at 2001 in Max Payne we saw 10 pieces of s[beep]it, which realistic flied away from enemy after we shoot at him with shotgun, then today in Borderlands II we can saw 10000 of such pieces. That's the work of PhysX. CPU can't compute this physical process at real time, but GPU-like chip can. PhysX firstly was developed with one 3-d party company, then NVidia bought them and add this technology to their videocards.
What is Software SLI? Software SLI is a technology of creating SLI without SLI-bridge. SLI-bridge is a kind of small connector, using by NVidia SLI cards for synchronization between cards. But, without it, you can create SLI with software syncing. That's will be more slowly, because PCI-E bus and CPU in this mode must execute additional operations for synchronising the rendering stream. Warning! Software SLI doesn't work with latest NVidia cards and drivers (it was removed at GeForce 9xxx series, as I can remember). And that's bad.

For creating hardware SLI, you require:
- SLI-ready motherboard with at least 2 PCI-Ex16 ports.
- 2 SLI-ready NVidia videocards. (Some cheap NVidia models isn't SLI-ready!) This videocards must be of same series (i.e. 770+8800 will not work!), better the same vendor (different vendors can add changes in reference design), and also better produced at almost same time (because stability of SLI highly depends on components).
- Powerfull PSU.
- SLI bridge.


For creating software SLI you require:
- Motherboard with 2 PCI-Ex16 slots. (On some motherboards to secondary PCI-Ex16 slot pinned PCI-Ex8 slot, read carefully the MB manual. SLI will work even in this case, but two videocards will work at -8x speed, which is not enough for modern games).
- Old NVidia drivers (don't know where to download).
- Powerfull PSU.
- Bless of Machine God (the procedure can be glitchy and tricky). ;D

After connecting the software, you must configure the drivers - in NVidia Control Panel appers new point "SLI and PhysX configuration", where you can enable the SLI, and select, what card will be master, what will be the slave, on which of them executing PhysX and where to connect monitors.

3) Underwater rocks.
-Software SLI. In fact all NVidia restrictions around it, as I can understand, is just marketing. They want to sell new and expensive cards, so they just restrict this option by software. Bloody кapиtalиsts! :)
Also, I never could turn it enabled. I had GeForce 8800GTX 640 at PCIEx16 and GeForce 210 at PCIEx8, and all I can achieve is 8800 ad main adapter and 210 as PhysX accelerator. Yes, even that was very good and adds to games new and very beauty physics. (Maybe it's the goal for some experimentations. If you want, at Christmas Holydays someone of you can try to start up mythical SoftSLI).
-In true hardware SLI you must connect monitors to master card. Secondary card works as a "thug". You are not need second monitor, you can connect only one.
- PhysX acceleration can be enabled on both cards of SLI. But I prefer to separate this.
-SLI mode (i.e., SFR, AFR, AA) configuring in NVidia Control Panel.
-Not all games work with SLI correct. For example, FarCry works with SLI but can't understand PhysX, my favorite SpaceMarine with SFR or AFR SLI works slower than without, and other my favorite ArmA2 give on SLI significant FPS but glitches with shadows.

Comrade Humbert, now, answering your questions:
Quote3) If all you have is 1 monitor, do you just connect it to either card or what?
You should connect it to a card you select as Master at NVidia Control Panel

Quote2) I know both cards must be NVidia, but do they have to be the same model? For example, can you pair 1 GTX-760 with a GTX-660, or must they both be the same?
They must be the same. GTX 760+ GTX 660 will not work at hardware SLI. You can use one of them as PhysX accelerator, but any of them is too powerful for this. Using one of them only for accelerating physics will be unwise and impractical from economical point of view.

Quote1) To get the cards to run that way, is it a simple matter of connecting the SLI bridge, or is there more to it than that?
After connecting hardware you should configure SLI at Nvidia Control Panel (Enable SLI, select what card will be the master, select what card will be the PhysX accelerator).

So, that's what I know about SLI. Post your qusetions.

Merry Christmas, we will burry you. Nya! ;D

shhnedo

#1
You should've mentioned that SLI requires every PCI-E x16 slot to run ATLEAST at x8 mode. You can't SLI 2(or more) cards if you've got even one of the PCI-E's running at x4. AMD CrossFire doesn't have that restriction.

Now there's one thing I don't agree with, and that's the reason why you can't hardware SLI low-end and high-end GPUs, like you want to do with an 8800GTX and a GT210. NVIDIA's marketing is else where. If you think about it, SLI is just multiple GPUs working in parallel. Now, working in parallel means they would all have to work at the same speed. How exactly is a GT210 supposed to keep up with 8800GTX? The point of SLI is scaling the performance of multiple graphics cards, and not just buying random GPUs and putting them together. The slowest one would bottleneck the rest. Even if you want to use a weaker GPU as a PhysX card, you're still bottlenecking the main GPU which would've otherwise done all the calculations, let's say, twice as fast even on it's own.

Cheers.

Daniil

#2
Quote from: shhnedo on December 25, 2014, 01:35 AM
You should've mentioned that SLI requires every PCI-E x16 slot to run ATLEAST at x8 mode. You can't SLI 2(or more) cards if you've got even one of the PCI-E's running at x4. AMD CrossFire doesn't have that restriction.
Yes, that's correct.

Quote from: shhnedo on December 25, 2014, 01:35 AM
Now there's one thing I don't agree with, and that's the reason why you can't hardware SLI low-end and high-end GPUs, like you want to do with an 8800GTX and a GT210. NVIDIA's marketing is else where. If you think about it, SLI is just multiple GPUs working in parallel. Now, working in parallel means they would all have to work at the same speed. How exactly is a GT210 supposed to keep up with 8800GTX? The point of SLI is scaling the performance of multiple graphics cards, and not just buying random GPUs and putting them together. The slowest one would bottleneck the rest. Even if you want to use a weaker GPU as a PhysX card, you're still bottlenecking the main GPU which would've otherwise done all the calculations, let's say, twice as fast even on it's own.

Cheers.
No-o, comrade, you're wrong. AFAIK, no matter what speed have videocard - task is parralleled by software (on driver level) and data transferred from RAM to GPU by PCI-E bus. I.e., this isn't "mechanical" synchronization.
(For example, in UT3, if we turn on the SLI indicator, we can see that second card is loaded for about 10-15%, and that load changing dynamically).

shhnedo

#3
Quote(For example, in UT3, if we turn on the SLI indicator, we can see that second card is loaded for about 10-15%, and that load changing dynamically).
That depends on the SLI scaling for the particular game. Some games have no support for SLI, others have bad scaling(between 60% and 70%). And in 100% of the cases 3-way and 4-way SLI have the worst scaling, so those are out of the question.
My point was different. You don't pair the weakest with the strongest when it comes to building a decent PC, let alone using multiple GPUs. The option best supported by current and older games is 2-way SLI(or CF). I'm not gonna talk about 3/4-way, I already said why. The option of using a dedicated PhysX GPU is very tricky and it depends on the GPUs and the games you're playing. First, throwing in a low-end GPU WILL bottleneck the main one, regardless of the load. Keep in mind we're talking about scenarios like running FarCry 4 on a GTX780. The way around it is buying a good enough GPU that can both proccess PhysX AND keep up with the "780"(our example). If you buy a 730 for that purpose, that would just be money-spent-wrong.
Second, setting up complicated setups like this requires the right drivers(as you already mentioned) and a whole crap-ton of patience(for any set-backs). Something most end-users aren't willing to search for.
http://youtu.be/cbww3dhzK0M
http://youtu.be/PQu55bciMt4
Both of these videos prove a point.

humbert

@Daniil & Shhnedo - thanks so very much for the tutorial. I saved the entire page as a file so I can read it calmly. Now let me go specifically to my situation.

1) My hardware is OK, it's an Asus M5A99X-EVO-R2 (AMD FX-8350 processor). It supports SLI and has the 2 necessary PCIE-16 slots which run at x8 if 2 cards are installed. My card is a GTX-660 - all drivers and NVidia control panel fully installed. Oh, and my PSU is 720W modular.

2) I'm thinking of doing this because my favorite game (Diablo III) tends to hesitate slightly during extreme battle scenes when all characters are moving, explosions are going off and fires are everywhere. The game supports PhysX (I have it enabled, both in NVidia and in the game) and things fly around like in real life. When not in very heavy fighting it runs OK. I have max background FPS set to 60, foreground 150.

Now, suppose I go out and buy another GTX-660. First I hook it up and attach the SLI bridge. After booting up, select one card (the one with the monitor) as master and the other as slave. What I'm not too clear about is what SLI mode I should use. Also, should I enable PhysX on both cards or what?

Please let me know and thanks again.

BTW - went to Google translate for the inscription below Lenin's picture, and it says "Lenin's name" or "with name Lenin". Can you clarify this for me?

shhnedo

#5
Quote from: humbert on December 25, 2014, 04:02 AM
2) I'm thinking of doing this because my favorite game (Diablo III) tends to hesitate slightly during extreme battle scenes when all characters are moving, explosions are going off and fires are everywhere. The game supports PhysX (I have it enabled, both in NVidia and in the game) and things fly around like in real life. When not in very heavy fighting it runs OK. I have max background FPS set to 60, foreground 150.

Now, suppose I go out and buy another GTX-660. First I hook it up and attach the SLI bridge. After booting up, select one card (the one with the monitor) as master and the other as slave. What I'm not too clear about is what SLI mode I should use. Also, should I enable PhysX on both cards or what?
First of all, you should remove the foreground fps limit. It's kinda pointless imo. :)
Second, there are mainly two options(viable ones) on the market:
- use a single more powerful GPU(GTX680/670/780(Ti)/770/980/970. You are guaranteed to get the best performance for the money... somewhat. You're paying more but you'll avoid potential problems like bad SLI optimization or lack of SLI support.
- use two mid-range GPUS(GTX660Ti/760/960(upcoming)). More often than not, two of these are cheaper than a single flagship GPU and COULD deliver similar, if not better, performance. All you have to hope for is best-as-possible SLI scaling and support. When doing this, you should atleast research the titles you want to run and check out the driver release notes. You'll probably want to update the drivers more frequently than usual.
Most PC specialists recommend going with the first option, especially now that the 980 and 970 exist. They are monstrous overclockers, consume an insanely small amout of power for the performance and are easily affordable, the best bang-for-the-buck being the 970. Now it all depends on the end-user. If you're willing to spend the time and effort in maintaining an SLI setup, go for it. If not, just try to get  more powerful GPU and sell your current one. Your choice.

Quote from: humbert on December 25, 2014, 04:02 AMBTW - went to Google translate for the inscription below Lenin's picture, and it says "Lenin's name" or "with name Lenin". Can you clarify this for me?

The person in the picture is called Vladimir Lenin(Lenin is just an alias, his real name is shown in the wiki page). The thing google translates as "with name Lenin" is something like "glory to Lenin". For some russians he's an important politician. Ofcours, everyone has his/her favourite politician.

Daniil

#6
@humbert
Quote from: humbert on December 25, 2014, 04:02 AM
1) My hardware is OK, it's an Asus M5A99X-EVO-R2 (AMD FX-8350 processor). It supports SLI and has the 2 necessary PCIE-16 slots which run at x8 if 2 cards are installed. My card is a GTX-660 - all drivers and NVidia control panel fully installed. Oh, and my PSU is 720W modular.

2) I'm thinking of doing this because my favorite game (Diablo III) tends to hesitate slightly during extreme battle scenes when all characters are moving, explosions are going off and fires are everywhere. The game supports PhysX (I have it enabled, both in NVidia and in the game) and things fly around like in real life. When not in very heavy fighting it runs OK. I have max background FPS set to 60, foreground 150.

Now, suppose I go out and buy another GTX-660. First I hook it up and attach the SLI bridge. After booting up, select one card (the one with the monitor) as master and the other as slave. What I'm not too clear about is what SLI mode I should use. Also, should I enable PhysX on both cards or what?

Please let me know and thanks again.
All is simple. In menu go to "Set up SLI, Surround and PhysX", there
-set option "SLI enable" (Or it can be named "Maximize performance with SLI") (marked as 1)
-and switch PhysX to "auto-select" (marked as 2).
(Don't forget - connect the monitor to a card plugged in first PCI-Ex16 slot. It will be selected as "master" card automatically.)

Then, go to "3D Performance management", there go to second tab ("Program settings" or such), find Diablo in list of your programs, and set
in "SLI rendering mode" - "Execurte althernative rendering 2" (marked as 3)
in "Power management mode" - "Prefer maximal performance" (marked as 4)

(reverse translation may be not quite correct, sorry, I have only translated russian drivers),
That's all. You shouldn't change anything in game.

Quote from: humbert on December 25, 2014, 04:02 AM
BTW - went to Google translate for the inscription below Lenin's picture, and it says "Lenin's name" or "with name Lenin". Can you clarify this for me?
The best translation is pathosly "For the Lenin!" (or "Bless with Lenin's name"). In soviet traditions this phrase was something between pray and war cry, with pathos level "over 9000" (Just like the SLI technology is advertised by NVidia ;D ;) ).  Pathos view of poster and two rockets I select to show the overpower of SLI solutions. It's a kind of humour. :)

@sshnedo
You are partially wrong, comrade. Today SLI support provide by game means almost nothing. Because modern NVidia drivers have the force mode, which forcefully turn on SLI in any 3D apps. (But that is glitchy mode because in that case, for example, Mozilla Firefox will flickering - it also try to use some 3D resources).
Usage of weak GPU as PhysX asselerator will bottlenecked in scenario "FarCry 4 on 780+210", yes. But not for reasons you said, but because of amount of PhysX operations in FarCry 4 and PCI-E bus performance. "Cheap GPU for PhysX acceleration" for FarCry4 means something like at least GF 650.
Also, read the manuals and litherature about PC design. Sometimes you post nonsence.

And... You don't understand jokes. :( ;D

Daniil

#7
@sshnedo
Also me and you forgot to add one important thing about PhysX.
PhysX enchance the physical effects, but it doesn't enchance the graphics performance. Increasing FPS like in videos you posted is because additional PhysX card take part of calculations from GPU and CPU.
But, graphics adapter working as pure graphics accelerator (not PhysX) must be powerfull enough to render all particles added by PhysX acceleration. In a limit, we can get a situation when PhysX starts to decrease performance - when graphics adapter unable to render all objects, calculated by PhysX.

shhnedo

This topic obviously requires verbal communication. I'm sure we'd better understand eachother if we could talk in person. I'll stop right here.
Quote from: Daniil on December 25, 2014, 10:15 AM
"Cheap GPU for PhysX acceleration" for FarCry4 means something like at least GF 650.
Atleast we're on the same page here.
Also, I'm no hardware specialist with "20+" years of experience behind my back, but I can asure you I know enough about PC components to build any type of PC for any budget. We're discussing multi gpu configurations, not the whole system. ;]

P.S. I like the comrade thing. Makes me feel like a russian again. :)

Daniil

Quote from: shhnedo on December 25, 2014, 03:04 PM
This topic obviously requires verbal communication. I'm sure we'd better understand eachother if we could talk in person. I'll stop right here.
Quote from: Daniil on December 25, 2014, 10:15 AM
"Cheap GPU for PhysX acceleration" for FarCry4 means something like at least GF 650.
Atleast we're on the same page here.
Also, I'm no hardware specialist with "20+" years of experience behind my back, but I can asure you I know enough about PC components to build any type of PC for any budget. We're discussing multi gpu configurations, not the whole system. ;]
Maybe you're correct, honourable shhnedo. We can dispute about this until hell melted, and even in this case we will stay each with his own opinion about a problem. Multi-gpu and performance is very complex topic, so it's better to make an experiments and achieve new levels of performance, than uselessly dispute, showing each other our ignorance.

QuoteP.S. I like the comrade thing. Makes me feel like a russian again. :)
Are you ever been in our country?