Micro-Stuttering And GPU Scaling In CrossFire And SLI

How Do CrossFire And SLI Work?

How Does Load-Sharing Work, And What Is Alternate-Frame Rendering (AFR)?

AFR is the most commonly used rendering method for multi-GPU setups. As its name suggests, successive frames are rendered in their entirety by different cards. The prerequisite for a smooth and stutter-free frame sequence is, however, that the workload for successive frames is more or less equal, and that the performance of the graphics cards is identical or similar.

It makes no sense to combine a fast and a slow card, as the commonly-held belief that the strong card will drop its performance to match the weak one is incorrect. Instead, the workload becomes imbalanced and the results is not acceptable.

Let’s take a look at the simplified diagram of a system with two graphics cards. Card #1 renders the first frame, while card #2 renders the second frame in parallel. After that, card #1 takes on the third frame and card #2 takes on the fourth frame. The image from card 2 is relayed to the display buffer of card 1, which has the monitor connected.

This works fine, so long as the workload for both cards is more or less identical. However, even with only two cards, data transmission and data buffering impose stringent requirements on balancing GPU performance. Whether or not the graphics output truly appears synchronous is always a potential issue.

Setups with three or four GPUs work similarly; frames get computed in a round-robin way. A theoretical performance scaling of 100% for dual-GPU systems is difficult to achieve in the real world, and such setups are frequently marred by asynchronous rendering behavior, which causes micro-stuttering, something we will thoroughly discuss in the next section. The goal of the team working on the driver should be to balance raw frame rates with a smooth output.

  • thorkle
    This is a very interesting article, I have wondered about this issue myself many times in the past. I was always curious why I would see strange lag like anomalies while still achieving perfect frame rate. Bravo Toms
    Reply
  • compton
    Well, I'm a little surprised that three cards in Crossfire seem to eliminate visible microstuttering -- I would have guessed that triple cards would increase stuttering. But it also seems like there must be other factors at work. Unfortunately, there really isn't a good way to test for other factor -- if you even could know what to test for. In some circumstances, it seems like my monitor is causing some issues. If I play a game (lets use Fallout New Vegas for example) at a Synced 60FPS, you can look at FPS and it never deviates. It only uses 1/3 of my GPU cycles. But on one monitor, at the same resolution, it micro stutters. On another monitor, it looks perfectly fine. I thought it was some lag variance -- but then I've been told lag is always constant, that the reason lag varies in monitor testing is improper test methods. What ever the reason, it's actually really annoying. And I'm not anything approaching a competitive FPS player. Thanks for helping to track this issue down.



    Reply
  • iam2thecrowe
    so will you now change your best gpu for the money from 2 x 6850's, since they obviously suck. I already bought one 6850 thinking it would be great to crossfire later and that was the best choice according to you toms........now i will have to throw it in the bin come upgrade time and buy a better single card. Oh, and AMD/Nvidia, if you cant get dual card configs to work properly, don't offer them, your wasting our money. Please fix this microstuttering crap, im sure it would be possible with a driver tweak.
    Reply
  • 1kbuild
    What happens with Vsync turned on?
    Reply
  • pirateboy
    why wasn't hybrid crossfire mentioned in this article?
    Reply
  • bombat1994
    i think the MSI Radeon 6870 Hawk is the best graphics card on the market right now in terms of heat, power, performance and price
    Reply
  • tmk221
    in most games you can limit maximum frame rates. So maybe if you limit max FR to let say 10 to 15 above min FR then the Micro-Stuttering effect would be gone ? anyone tried this? please share
    Reply
  • shoelessinsight
    What is performance like using other load-balancing methods, like the split frame rendering that SLI originally used, or ATI's Scissor mode? Are these modes still available to those that choose them?

    Obviously, they won't reach frame rates as high as those attained through AFR, but if the frame rate loss is small enough, those modes might still be justifiable if they eliminate micro-stuttering altogether.

    I'd be curious if these alternate methods could justify the cost of an additional card through added performance without coming with the drawback of micro-stuttering.
    Reply
  • boletus
    Regarding the decreased stuttering with 3 or 4 cards: could this be a similar effect to superimposing sine waves? Two waves a half cycle apart show visible peaks and valleys, while three waves at evenly staggered cycles form a much smoother band (on a graph or a scope).
    Reply
  • haplo602
    I ma confused ... you are using 2 identical cards, so the frame rendering times as show on the metro 2033 second would be THE SAME on a single card as on a dual card configuration. the only difference is when each card starts to render right ?
    Reply