CrossFire and SLI frame rates do not reflect reality because of lack of synchronization!

Page 11 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.
Jun 14, 2003
10,442
0
0
yeah i've noticed this in the past when i had 7800GT SLI, not sure what its like now though and its obviously been well discussed, but yeah, despite the SLI giving me monsterous frame rates the actual experience never felt that smooth.

when i switched to a x1900xt, which for all intents n purposes is barely a leap over the SLI i had, i had a much better time in games because it just felt smoother. even openGL games like Q4 and Prey
 

bfdd

Lifer
Feb 3, 2007
13,312
1
0
Originally posted by: Grestorn
Originally posted by: bfdd
I have a question since we're talking "delay induced by the load balancing in the driver overhead" that nRollo brought up. Would faster ram and a faster CPU help speed up the process so there's less of a gap between frames making it on screen? If so then since SLI is a "high end" thing and people who use it usually have high end rigs, shouldn't this be less noticiable in lets say a 3.6ghz quad vs a 2.4ghz dual?

The faster the CPU is (relative to the GPUs), the more likely you'll see micro-stuttering.

If the load distribution between CPU and GPU is balanced, there will be almost no micro-stuttering.

If the CPU is much slower than the GPUs, the games become CPU limited and SLI won't give you any advantage anymore.

That doesn't make sense to me Grestorn. CPU delay because of driver load balancing seems to me that the shorter the delay, ie. the faster processor, would reduce the problem?
 

Grestorn

Junior Member
Apr 23, 2008
13
0
0
Originally posted by: bfdd
That doesn't make sense to me Grestorn. CPU delay because of driver load balancing seems to me that the shorter the delay, ie. the faster processor, would reduce the problem?

The CPU delay is a good thing in this case. It would be best if the CPU would take exactly half the time to setup a frame that it takes one GPU to render the frame. Then the frames would be distributed perfectly.

If the CPU takes less time, the CPU will setup the second frame too closely to the first frame which is the cause for the micro stutter.
 

Dadofamunky

Platinum Member
Jan 4, 2005
2,184
0
0
Originally posted by: Datenschleuder
Originally posted by: Jax Omen
I can't even tell the difference between an 8ms LCD and a CRT (as far as responsiveness), I don't think I'll need to worry about this :p
This is no valid comparison.

People buy a second graphics card because they want improved performance and make their decision based on frame rate comparisons in reviews.
The problem is that these frame rates don't reflect reality at all because of this problem.
Or don't you agree that there is a huge difference between 30 FPS and 17 FPS?

So this is very significant to worry about!

LOL. I've always thought SLI/Xfire were marketing gimmicks designed to part us from our money. I think I'll just get myself a 9800GTX fairly soon and call it a day. We all know that the scaling on multi-GPUs is far short of what we were promised, but still exists; not sure how much of this is new.

Or so the Germans would have you believe...
 

bfdd

Lifer
Feb 3, 2007
13,312
1
0
Originally posted by: Grestorn
Originally posted by: bfdd
That doesn't make sense to me Grestorn. CPU delay because of driver load balancing seems to me that the shorter the delay, ie. the faster processor, would reduce the problem?

The CPU delay is a good thing in this case. It would be best if the CPU would take exactly half the time to setup a frame that it takes one GPU to render the frame. Then the frames would be distributed perfectly.

If the CPU takes less time, the CPU will setup the second frame too closely to the first frame which is the cause for the micro stutter.

No see that doesn't make sense to me. If the processor is faster that means it'll handle the driver overhead quicker which would reduce driver overhead, so the distance between two frames being put on screen should be quicker in between. The numbers shown show they're further between than normal single card solution. I don't know to me it seems like the less overhead the better for a dual card solution.
 

BFG10K

Lifer
Aug 14, 2000
22,709
2,962
126
No see that doesn't make sense to me. If the processor is faster that means it'll handle the driver overhead quicker which would reduce driver overhead, so the distance between two frames being put on screen should be quicker in between.
Driver overhead isn?t the issue, it?s the fact that when the CPU gets too fast for the GPUs the time between the frames arriving is not constant.

In a GPU limited system, GPU 1?s frame-time is equal to the GPU render-time (ignore the very first frame which is actually CPU render-time + GPU render time).

However if the system is sufficiently GPU limited, GPU 2?s frames actually arrive at CPU render-time which is less than the GPU render-time.

So if the CPU takes 10 ms and the GPU takes 30 ms, you?ll get something like this with your frame-times (I?ve discarded the first two frames for simplicity):

GPU 1 30 ms
GPU 2 40 ms
GPU 1 60 ms
GPU 2 70 ms
GPU 1 90 ms
GPU 2 100 ms

GPU 1?s next frame arrives 30 ms after its previous frame and the same applies to GPU 2.

But relative to GPU 1, GPU 2?s frames are actually arriving 10 ms later which is actually the CPU render-time. This is because 10 ms after a frame has been sent to GPU 1, the CPU has finished another frame and it?s sent to GPU 2.

If you calculate the variances you?ll see they swing between 20 ms and 10 ms which is what causes micro-stutter.

In order for this situation to happen, a single GPU?s render-time divided by the CPU?s render-time must be greater than the number of GPUs in the system. In my example it takes 10 ms for the CPU and 30 ms for GPU so this satisfies the requirement as 30 / 10 = 3 which is more than 2 (the # of GPUs in our system). Likewise my example wouldn?t pose a problem for three GPUs as the variance would be a constant 10 ms.
 

apoppin

Lifer
Mar 9, 2000
34,890
1
0
alienbabeltech.com
So it IS easily fixable

and now AMD and NVIDIA know all about it
rose.gif


How long do you think it will take them?
- i'd say before r700 .. and of course GT200
- a 'guess'
 

Blazer7

Golden Member
Jun 26, 2007
1,099
5
81
I'd say that this is no news to anyone. I bet that both ATI and nVidia have known all about this for a long time now and if it was that easy to fix they would have done so by now. I believe that the problem is like Grestorn mentioned in one of his previous posts. This delay mechanism must be highly dynamic and that's not easy.
 

apoppin

Lifer
Mar 9, 2000
34,890
1
0
alienbabeltech.com
not at all .. - simple - it just needs to be incorporated into the drivers
--AMD, NVIDIA .. please fix it

rose.gif


Hurry ---Let's see who can do it *first*
Maybe we can make some money on this?
--i will give 5:3 odds "for" that AMD fixes "Micro Stutter" first - before nVidia


Of course, this isn't really "betting" as we will only be using play money, American Dollars .. nothing real, like the Euro, for example
[oops, i think i will go back to P&N, sorry]
:laugh:
 

Datenschleuder

Junior Member
Apr 17, 2008
23
0
0
Another report on AFR stutters - this time with 3DMark Vantage.

The real frame rate in this example is more than two times slower every second frame compared to what the frame rate counter suggests!
 

Pelu

Golden Member
Mar 3, 2008
1,208
0
0
omg... Uber stutters is the name of that...

by the way... anyone know a way to push the multi radeon into SuperTiling, or scissor?
 

Keysplayr

Elite Member
Jan 16, 2003
21,209
50
91
Originally posted by: Pelu
omg... Uber stutters is the name of that...

by the way... anyone know a way to push the multi radeon into SuperTiling, or scissor?

No, that was Uber stutters in about one second of who knows what part of the benchmark.
I'm looking into how it actually is over long term.
 

qwertz

Junior Member
Oct 18, 2006
2
0
0
Hi guys,

just want to say that I only recently found this thread an it was a extremely interesting read. You guys did a great job identifying and detailing the micro stutter issue. This seems to be one of the few places on the net where a lot of knowledgable people share some real technical information!
 

BFG10K

Lifer
Aug 14, 2000
22,709
2,962
126
by the way... anyone know a way to push the multi radeon into SuperTiling, or scissor?
I'm pretty sure I've already answered this question in one of your other threads.
 

annihilat0r

Junior Member
Jun 3, 2006
19
0
0
Hello guys, I own a 8800GT SLI setup and am decidedly against AFR (=SLI). I first noticed something like this when I first got my second 8800GT. Previously (with one 8800GT), I was able to play Crysis at 16x10 with everything on High without too much problems, aside from some occassional slowdowns (especially at the latest stages of the game) When I got my second 8800GT, I benchmarked and got amazing results. With SLI I was able to push most of the settings to Very High, while getting the FPS I got from a single 8800GT on High. But when I played the game again with said mostly Very High settings, the game was obviously slower; but when I checked with FRAPS or r_displayInfo 1, I saw that the FPS was very acceptable. After all, I ended up being only able to enable Sunshafts... What a great benefit from the second card.

Then the discussions related to this in various sites emerged, and I at once knew what I was up to.

I started a forum related to this issue in Donanimhaber (famed Turkish hardware news site), and I'd like to show YOU my calculations I did for that site as well.

I don't need to repeat why un-synched frames suck, others here have done that perfectly.

First; some results from Lost Planet: http://img111.imageshack.us/img111/6594/lpzr1.jpg

It's obvious that every third frame sees a jump from around 50 FPS to around 150 FPS. I don't think I need to tell you that in this situation your eye will see the fluidity of a 50 FPS system with some stuttering (caused by the super-fast delay third frames). However, the reported frame rate will be 1000*(63-48)/(981-753) = 66 FPS.

So all hardware sites will take this result and, I'm sorry but, stupidly compare it to non-AFR single GPU frames and say "wow, our FPS increased from a single 8800GT's 40 to 66 when we plugged in another 8800GT!!" Which is obviously nonsense. I can't believe that after all the awareness evoked from this kind of threads in hardware forums, nearly no hardware site mentions this in their reviews, including Anandtech, which I wouldn't normally expect such a thing from.

If we take momentary FPS values in groups of three and for each group, equate each FPS to the minimum FPS encountered in that group; we might "measure" the sense of fluidity within a game. So, that makes the Lost Planet situation I mentioned, the "adjusted" FPS's would be 61/61/61/41/41/41 instead of what you see on the link. This might look very cruel, but in fact it works good, and the "real" FPS measured this way doesn't differ from the benchmark-reported FPS's in games with no synch problems with SLI (such as World in Conflict, Assassin's Creed and BioShock).

With some geeks from Donanimhaber we did this calculation and then took the averages for six games. Here are the results:

Assassin's Creed:

Reported FRAPS FPS: 53
Calculated "Real" FPS: 53

BioShock:

Reported FRAPS FPS: 106
Calculated "Real" FPS: 102

Call of Juarez: (<---- Sucks in SLI)

Reported FRAPS FPS: 37
Calculated "Real" FPS: 25

Lost Planet (<---- Sucks in SLI)

Reported FRAPS FPS: 63
Calculated "Real" FPS: 47

World in Conflict

Reported FRAPS FPS: 42
Calculated "Real" FPS: 41

Crysis (<---- Sucks in SLI)

Reported FRAPS FPS: 38
Calculated "Real" FPS: 27
 

VirtualLarry

No Lifer
Aug 25, 2001
56,327
10,036
126
Originally posted by: BFG10K
What they could do is hold back the faster frames to make them more in line with the slower frames but I can see that getting very messy very quickly with questionable benefits at best.
An option to "delay fast frames to reduce microstutter" in the drivers? I could see this happening.

Originally posted by: BFG10K
I say ATi should bring back super-tiling, the ultimate SFR implementation. Among other things it does automatic load-balancing at the hardware level which in theory could deliver scaling without the need for application profiles.
Didn't Sega's arcade systems that used PowerVR chips do this, like House of the Dead 2? They divided the screen up into strips, and the parallel PowerVR chips rendered the strips.

 

VirtualLarry

No Lifer
Aug 25, 2001
56,327
10,036
126
Originally posted by: myocardia
Originally posted by: BFG10K
This isn?t some imaginary conspiracy theory that just popped up today; this phenomenon has been known for years but the general public is oblivious and/or unbothered by it, much like they were with shimmering issues.

So, since only a portion of the few people on Earth who have two or more video cards in one computer experience this/can notice the difference, and there are settings that will either completely erradicate it or make it not nearly as noticeable, how could this even be considered a "problem"?

Apparently the settings that eradicate the problem ("Crossfire AA"), do not provide higher FPS performance than a single card.