Why doesn't Crossfire/SLI work in a proper way?

nrnx

Distinguished
Oct 18, 2008
347
0
18,810
I was just wondering this: Why doesn't crossfire and SLI work in a proper way? Is it impossible to have two gpu's running in tandem to equal 1gpu? They have done it with processors (quadcore etc), why is it not possible to do it in a viable way with GPUs? It would be nice if you could SLI/Crossfire and it would actually double your performance in every single case. Thoughts? Comments?
 

flyinfinni

Distinguished
May 29, 2009
2,043
0
19,960
You know that a quad-core CPU doesn't come anywhere close to quadrupling your CPU performance right? Only if you have an extremely well threaded app do you see anywhere CLOSE to quadruple performance. My crossfired 5750's are scaling at 80%and more performance increase when its enabled. If I run a single threaded app, my CPU will perform like a SINGLE CORE CPU. Unless you have threaded applications, you will see very little difference between a single, double, triple, or quad core CPU.
With GPU's they generally render alternate frames, so you should see NEARLY double the performance. If there was no processing involved to make this happen, you WOULD see double the performance, but there is a slight performance hit because the GPU's have to communicate and decide which is rendering which frame, etc. They actually work pretty darn well if you have them setup and configured properly.
 

nrnx

Distinguished
Oct 18, 2008
347
0
18,810
Yeah I get around 80% too, but how come they haven't came out with multi-cored GPUs wouldn't that be the next logical step in GPU advancements. 80% is nice and all, however one would think that 100% would be optimum since you are technically running a 100% faster card with a secondary card. I am just wondering if we are ever going to see REAL multicored gpu cards. I've been waiting for them for a while and no one seems to even be creating one.
 

In COD4 I was getting more than double the performance with Sli but that is a rare occurrence for the most part the main improvement is seen in the raising of the minimum framerate level so that the overall gameplay feels smoother.
 
Realize that you already have multicore GPUs, a GTX275 has 240 cores, a 5870 has 1600 cores. A CPU and a GPU are designed for two different types of tasks, the majority of a CPU's work is highly serial, each instruction relies on the result of the last one, so each core can only really process one thing at a time, GPUs are massively parrallel, it needs to perform the same instruction to a massive amount of data. There is quite a bit of prediction that goes on cache and onboard memory to decide what should be stored where for best performance, with two GPUs you have some overhead with the GPUs talking to each other and lining everything up properly so you dont get frame 1 2 4 3 5 6, probably about 5-10% is used there.

Also one thing that is important to note, doubling the processing power or speed of something rarely results in a 2x performance increase, if you were to test a core 2 duo and a core 2 quad both running at the same speed with the same cache per core in a quad threaded app i doubt you would see more than 80% scaling. You still have to allow for latencies with each componen., With dual gpu's the CPU now has twice as many GPUs to drive, so its a bit more load on it, and once you hit two high end GPUs you are likely at a CPU bottleneck which will limit your efficiency gain. The 80% we are at now is pretty damn good.
 

flyinfinni

Distinguished
May 29, 2009
2,043
0
19,960
Mousemonkey- its possible for those types of situations to happen, but they are definitely not the norm, and I imagine they require some fairly special circumstances:) I'm getting darn near double performance in some things as well, but I just use the 80% number as thats the minimum increase I've seen in a situation where Crossfire is actually running.

Nrnx- its a totally different situation between CPU's and GPU's. They have different applications, different codings and different ways of working. Like hunter315 said- there's already a ton of different cores and types of cores in each GPU. You've also got dual-GPU cards. I doubt you'll see multiple full, separate GPU's on a single die because you'd really just be doubling the number of shader cores and ROPs etc, in which case, you'd just go with doubling them on the one GPU and not have to worry about communicating between cores. If you think about how the ATI 5000 series cards are done, the 5870 has 1600SP's and 5770 has 800SP's, so really the 5870 is doublt the 5770 in that respect.
 

I like to think that COD4 may have been coded properly so that it actually took advantage of dual GPU's considering that it's one of the few games that have the option to enable or disable dual GPU's in it's video options menu, either way I got 80 -95 fps with one card and 200+ fps with two.