[H]ard|Forum

Go Back   [H]ard|Forum > [H]ard|Ware > Video Cards

Reply
 
Thread Tools Search this Thread
  #1  
Old 06-20-2008, 11:14 PM
MrWizard6600 [H]ardness Supreme, 4.1 Years
 
MrWizard6600 is offline
GPU "Microstuttering" FAQ

So everyones been posting about how an SLI or Crossfire rig, while managing to put out higher FPS than the single GPU solutions, does so while "Microstuttering". I'd like to clarify as much as I can around the issue, and hopefully you guys can help me out too. I don't have access to a multi GPU rig right now, so I'm going to go from what I learned about SLI and crossfire setups from my last rich customers dual 8800 build.

What is microstuttering?
When running two Graphics Processing units (GPUs) in tandem, via Crossfire or SLI, in Alternate Frame Rendering (AFR) mode, the two GPUs will produce frames asyncronously (for lack of a better term). Microstuttering can be expressed one way as your computer experiancing, in extreme rapid sucession, a high FPS, followed by a low FPS, followed by a high, then low, and so on.

The following is a chart of Frames VS Time, with time in nanoseconds (yeah, I have no idea why they used nanoseconds, but 100,000 [the first increment] is 0.1 seconds, or 100 miliseconds) in the Y-axis, and the frame count (NOT FPS) in the X-axis. The lower the bar, the higher the FPS.

Image taken from PC gamers hardware

As you can see, the crossfire setup, while getting out the same amount of frames (30) in less time (ie, while maintaining a higher FPS), has a certain wobble. This wobble is the phenomina known as microstuttering.

Here is another chart from anand found by Mega 666

Pulled from Anand

The Multi-GPU "Variance" is much greater than that of the Single GPU solution. The greater the difference from one variance to the next, the greater the stutter. The difference between the average variance and the variance at any one frame is the phenomina of microstuttering.

How does microstuttering impact me in game?
Microstuttering can make playing what fraps is calling a 60fps game feel identical to playing a 30 fps game (literally, this is a potential true case mathmatically).

Why does microstuttering happen?
It's a product of the failure of a multi GPU solution to syncronize properly. Frame syncronization is the act of making sure that the time between frames is identical no matter where you take a measurement. In a single GPU solution one GPU builds the image, and then sends it off to the monitor. It then builds another and sends it off as well. Thus, a single GPU solution does not suffer from microstutter. In a dual GPU solution, two GPUs build seperate images. In Alternate Frame Rendering (AFR), GPU "A" must send its image to the monitor exactly half way between the previous frame from GPU "B", and the next frame (which will be from GPU "B" as well).

Note: 20 milliseconds is .02 seconds, or 1/50th of a second.
In my example lets go with a game running at 50 FPS. A frame is built and displayed by GPU "A". Exactly 20 miliseconds (ms) later GPU "B" must have completed building and displaying its frame. Exactly 20 ms after that GPU "A" must have finished building and displaying the next frame, and so on. Each frame must be displayed in exactly 20 ms after the previous one.

I'm currently working on a flash demo to illustrate the point. When its done I'll export it to .gif and post it here... assuming [H] supports gifs lol.

Do all Multi GPU rigs experiance microstuttering?
It looks like it, yes. The extent to which might be different on one system than on another, they might even be different every time you start your machine or run the game engine.

If I notice microstuttering, can I minimize/eliminate it?
Yes. By running the game at a setting where your graphics cards are able to output more than the monitors refresh rate (that is, the maximum FPS the monitors are capible of; the pixels on your screen can only change so fast) microstuttering is eliminated completely. Most monitors have a refresh rate of 60 or 70Hz, meaning you would need 70 or 80 FPS to eliminate microstuttering. Also, running the game in Split Frame Rendering (SFR), with the top half being rendered by one card and the bottom half being rendered by the other, will eliminate microstuttering, but opens the door to tearing and a performance hit. I don't know if SFR is even still supported...

If theres any other point anyone would like me to make, by all means post it and i'll include it.

Last edited by MrWizard6600; 06-21-2008 at 02:40 AM..
__________________
my HDMI cabling has only the finest gold-plated gas-injected free-range copper.
  #2  
Old 06-20-2008, 11:33 PM
hdnut Limp Gawd, 1.7 Years
 
hdnut is offline
ahh good stuff. now i understand why CSS occasionally looked the way it did after i had sli'd two gts g92's.
__________________
- eVGA 780i FTW (NB & SB MX-2 TIM mod)
E8600 @ 4.4ghz 1.34v :: 2x2gb G.Skill @ 1083mhz 5-5-5-15
eVGA GTX 280 SSC - SLI :: Zalman 9700 110mm NT :: Thermaltake Toughpower 1200w
Cooler Master Stacker 832 :: Creative X-Fi Platinum Fatal1ty

- ASUS F8Cn-C1: 14" 1440x900 :: OCZ Freeze TIM mod on CPU/GPU/NB
OCZ Vertex 120GB SSD :: FileMate SolidGO ExpressCard Ultra SSD 24GB
T9300 C2D 3.01Ghz OC :: Nvidia 9500M GS - 553/1107/504
  #3  
Old 06-20-2008, 11:39 PM
capable heart [H]Lite, 2.8 Years
 
capable heart is offline
Are there any games where the style of play or motion makes this issue relatively obvious? I'm understanding the concept thanks to the helpful graph, but I'd like to get a better practical feel of what to look for.
  #4  
Old 06-20-2008, 11:44 PM
redavenab Limp Gawd, 3.3 Years
 
redavenab is offline
Maybe you shouldn't try to look for it.

Ignorance is bliss.
  #5  
Old 06-20-2008, 11:45 PM
Trepidati0n [H]ardness Supreme, 5.3 Years
 
Trepidati0n is offline
Quote:
Originally Posted by redavenab View Post
Maybe you shouldn't try to look for it.

Ignorance is bliss.
Problem with micro stutter..or any stutter...is once you do see it, it will bug the living shit out you for a long time.
__________________
'You see, god and I have a very special relationship: I don't do stupid things, he doesn't kill me." -AdamNesvick

#1: i5 750, Gigabyte P55M-UD2, MSI 4850, 750W PCP&C, 4GB DDR3, Win7 Ultimate
#2: Athlon 64 X2 4600, 2GB DDR2-800, 6.25 TB of available storage, WHS, 2 Tuners + SageTV
  #6  
Old 06-20-2008, 11:53 PM
ryan_975 [H]ardForum Junkie, 4.0 Years
 
ryan_975 is online now
That chart is deceptive. No video card renders at the exactly the same rate the whole time. Just look at a fraps chart. It'll be all over the place even on a single card. So microstuttering isn't just a multi-GPU issue. If a single GPU renders frame A in 20ms, Frame B in 22ms, frame C in 18ms ... would you not see the same effect?
  #7  
Old 06-20-2008, 11:56 PM
jaxstraww n00bie, 1.7 Years
 
jaxstraww is offline
I've sent my cards in for speech therapy.............
  #8  
Old 06-21-2008, 12:00 AM
Belgain Roffles Gawd, 1.7 Years
 
Belgain Roffles is offline
Quote:
Originally Posted by ryan_975 View Post
That chart is deceptive. No video card renders at the exactly the same rate the whole time. Just look at a fraps chart. It'll be all over the place even on a single card. So microstuttering isn't just a multi-GPU issue. If a single GPU renders frame A in 20ms, Frame B in 22ms, frame C in 18ms ... would you not see the same effect?
I believe it would be those fluctuations that CAUSE microstuttering. If the cards rendered at a constant rate, it would be easy to offset one from the other and have a perfect rythmn between the two. The GPUs have to constantly change the offset delay between the two cards, and that's what is so complicated.
__________________
e6600 @ 3.2 w/Tuniq Tower
evga/PNY 9800gtx SLI--Dell? 8300gs
4gb ocz 800mhz @ 4-4-4-15
evga 680i---------------------WD Raptor 150gb
3007wpf-hc/2007fp/Gateway pos 17"
G2400W + PS3
  #9  
Old 06-21-2008, 12:03 AM
ryan_975 [H]ardForum Junkie, 4.0 Years
 
ryan_975 is online now
Quote:
Originally Posted by Belgain Roffles View Post
I believe it would be those fluctuations that CAUSE microstuttering. If the cards rendered at a constant rate, it would be easy to offset one from the other and have a perfect rythmn between the two. The GPUs have to constantly change the offset delay between the two cards, and that's what is so complicated.
What about buffering the rendered frames and feeding them out at a constant rate, sort of like how triple buffering fixes the V-sync issues.
  #10  
Old 06-21-2008, 12:04 AM
MrWizard6600 [H]ardness Supreme, 4.1 Years
 
MrWizard6600 is offline
Quote:
Originally Posted by ryan_975 View Post
That chart is deceptive. No video card renders at the exactly the same rate the whole time. Just look at a fraps chart. It'll be all over the place even on a single card. So microstuttering isn't just a multi-GPU issue. If a single GPU renders frame A in 20ms, Frame B in 22ms, frame C in 18ms ... would you not see the same effect?
that chart is over the course of 30 frames. In the course of 30 frames (less then a second... well as you can see there ~.7 secs).

I knew this would come up and I'm going to have to incorperate it somehow. What your suggesting is nearly impossible. the odds that the frame's content has changed so dramatically that the GPU requires a whole additional 4 ms of time to render would be extremely rare. A sharp drop or an increase in FPS, even as sudden as some of [H]s charts indicate, when scaled to fit this chart would be a long curve, not s spike. I'll work on that now actually...

Last edited by MrWizard6600; 06-21-2008 at 02:00 AM..
__________________
my HDMI cabling has only the finest gold-plated gas-injected free-range copper.
  #11  
Old 06-21-2008, 12:08 AM
Mega666 [H]ard|Gawd, 1.8 Years
 
Mega666 is offline
Doing some research on this. Never experienced it myself but..

An interesting and long thread at anandtech -

http://forums.anandtech.com/messagev...VIEWTMP=Linear

Another graph which may help.

  #12  
Old 06-21-2008, 12:09 AM
RadXge [H]ard|Gawd, 3.5 Years
 
RadXge is offline
This is very interesting and I will be looking forward for more results.
Acquiring a pair of 4870 seems a valid option but this kind of weakness could maybe change my mind.
__________________
Intel i7 Core 920@4.0GHZ 1.325v | EVGA X58 SLI | TRUE | Super Talent 3x2GB DDR3-1600 CL9 | ASUS EAH5870 | Samsung 275T | Intel SSD 160GB G2 | WD Black 1TB + WD Green 1.5TB | Thermaltake Armor with 25cm fan | DVD Lite-On - LH-20A1S | Corsair CMXAF1 Memory Cooler | Corsair HX850W | Logitech Z5500 | Logitech G15 Keyboard | Logitech MX Revolution | Logitech G5 Mouse
  #13  
Old 06-21-2008, 12:16 AM
Mega666 [H]ard|Gawd, 1.8 Years
 
Mega666 is offline
I've heard AMD has redesigned their bridge and patched their drivers to help prevent microstutter.
  #14  
Old 06-21-2008, 12:19 AM
TKD Limp Gawd, 1.9 Years
 
TKD is offline
Quote:
Originally Posted by Mega666 View Post
I've heard AMD has redesigned their bridge and patched their drivers to help prevent microstutter.
Supposedly, the 4870x2 has been redesigned to mitigate microstuttering, but I'll believe it when I see it.

+1 to the OP for posting this.
__________________
Cooler Master Stacker 830 | Corsair CMPSU-1000HX 1000W | EVGA x58 Classified 3-Way SLI E760
i7 920 (D0) @ 3.8GHz (190MHz*20) | 12GB OCZ Gold DDR3 1600 8-8-8-24
2*EVGA GTX 285 2GB FTW (SLI) + EVGA GTX 280 FTW (PhysX) | X-Fi Extreme Audio
300GB Velociraptor | 1.5TB external Firewire HDD
Filco Majestouch Linear Force NKRO keyboard | Visiontek XG6 USB laser mouse
Windows Vista Ultimate x64 SP2
  #15  
Old 06-21-2008, 12:31 AM
ryan_975 [H]ardForum Junkie, 4.0 Years
 
ryan_975 is online now
Quote:
Originally Posted by Mega666 View Post
Doing some research on this. Never experienced it myself but..

An interesting and long thread at anandtech -

http://forums.anandtech.com/messagev...VIEWTMP=Linear

Another graph which may help.

[]http://img353.imageshack.us/img353/2253/microstutter2ls7.png[]
Now that one makes more sense and shows a much more drastic variation in frame output than the original post did. So micro-stuttering still occurs on a single card, it's just so fast that no one can see it.
  #16  
Old 06-21-2008, 12:33 AM
Mega666 [H]ard|Gawd, 1.8 Years
 
Mega666 is offline
Quote:
Originally Posted by ryan_975 View Post
Now that one makes more sense and shows a much more drastic variation in frame output than the original post did. So micro-stuttering still occurs on a single card, it's just so fast that no one can see it.
It's the delta in latency between each rendered frame. With AFR, that delta is large enough to perceive as interrupting or inhibiting the even "flow" of frames rendered.
  #17  
Old 06-21-2008, 12:35 AM
ryan_975 [H]ardForum Junkie, 4.0 Years
 
ryan_975 is online now
Quote:
Originally Posted by Mega666 View Post
It's the delta in latency between each rendered frame.
Yeah, I got that. If I'd seen that in the OP, I would have understood the magnitude of the problem.
  #18  
Old 06-21-2008, 12:52 AM
a5i2c n00bie, 2.0 Years
 
a5i2c is offline
I have seen this issue for awhile and it drives me nuts as Trepidati0n stated! I am surprised that it wasn't brought up awhile back. When I talked about stuff like this, people told me I as seeing things. lol
  #19  
Old 06-21-2008, 12:53 AM
Mr. K6 2[H]4U, 4.9 Years
 
Mr. K6 is offline
Excellent post OP. I've seen it in the few SLI rigs I've worked with, but nice to see the data behind it .
__________________
| Lian-Li PC-V351 + Corsair 620HX | Core i5 750 @ 3.6GHz | Noctua NH-U9B | Gigabyte P55M-UD4 | 2x2048MB G.Skill Ripjaws DDR3-2000 @ 1800MHz 7-8-7-18 | 160GB Intel X-25 G2 | 1TB WD Caviar Green | XFX HD5870 @ 900/1250MHz | Dell 30" 3007WFP-HC |
| Laptop: Dell Latitude XT2 |
| '00 Harley-Davidson Sportster 1200 Custom |
My For Sale Thread: http://www.hardforum.com/showthread.php?p=1035199504
  #20  
Old 06-21-2008, 12:57 AM
IsaacMM Limp Gawd, 1.7 Years
 
IsaacMM is offline
This thread should be stickied, very nice information.
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 03:18 PM.


Valid XHTML 1.0 Transitional

Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright 2000 - 2009 KB Networks, Inc.