Video proof: Micro stuttering may destroy the performance gains from current multi GPU technologies
For several months, the IT forums have a new buzzword: Micro stuttering. It describes a serious shortcoming with current multiple GPUs technolgies. We explain the symptoms.
With this thread in German 3D Center Forum, the whole things starts and reached almost any IT website. The summary of the thread creator: Although SLI allows higher frame rates, the perceived outcome is often not better than the lower framerates of a solo graphics card. Meanwhile, it is clear that not only (triple) SLI, but Crossfire is also concerned. And as we said in our testing of multichrome, S3 doesn't make it better than AMD / Ati and Nvidia.
It's a personal matter when a movement for the human eye appears to be "smooth". The fact is, however, that 30 frames per second (Fps) is perceived by almost every human as being liquid. A second consists of 1,000 milliseconds, therefore you should expect that every 33 milliseconds, a new frame is displayed (one second divided by the frame rate). The single frames appear in this account at regular intervals, so that our eye exercises a smooth and fluid motion. The rhythm is right.
Here the disclosed problem starts: multi-GPU systems often do not succeed in displaying regular distributed frames; it comes to large time intervals between individual images - "micro stuttering" - despite supposedly fluid frame rates. One example: frame 1 is followed by frame 2 after 10 milliseconds, which corresponds to a cadence of 100 Fps. Frame 3, however, is to be seen only 40 milliseconds afterwards, followed by frame 4 after 10 ms.
The result is disastrous: The subjective frame rate of a multi-GPU system is in this extreme case below a single card, although the displayed Fps are higher. This behavior is primarily critical at low frame rates, such as the aforementioned 30 Fps. The less Fps, the greater the possible intervals between them and a regular distribution gets even more important.
To show this subjective feelings in the best way, it's useful to use Fraps. It allows the logging of Frametimes, the output time of each individual image. All three multi-GPU technologies have more or less pronounced frame delays depending on the game. The problem does not occur everywhere, and there are often just hints of it, but there are critical cases. Need for Speed Pro Street, Unreal Tournament 3, Crysis and 3D Mark 06 are prominent examples. Let's take a look a look at the first 30 frames (X axis) of a Pro Street race:
It's clearly evident: The visualization of the frames of a single GPU looks like a straight, the gaps between time frames are regularly. With two GPUs, there are "ripples" symbolizing the delays. These figures come from a Radeon HD3870 X2, one standard test with both GPUs and one with disabled onboard Crossfire. Two HD3870 cards behave the same, Geforce-8 SLI and multi-S27 Chrome show similar disruptions of the frame intervals.
You can finally make your own picture of the impact with our video, which shows the effects of micro stuttering with NfS Pro Street and UT3. The video is offered as a flash or as a high res WMV (just for registered users). With Pro Street, look at displayed Fps: The Crossfire setting displays similar framerates as the solo card, but the whole scene looks more sturrering. At UT3 the effect is even more obvious: Crossfire provides an Fps display between 25 and 30, a GPU renders between 15 and 18 Fps. Subjectively both setups stutter equally strong, but the single card does tend to look smoother.
Reliable solutions do not yet exist, but AMD and Nvidia are informed. The problem probably stems from the methods used on the allocation of computing work on multiple GPUs. With Alternate frame rendering (AFR), the first GPU calculates the first frame while the other calculates the second one and so on. Apparently a tool is lacking to provide these frames with the appropriate harmony so that they are displayed regularly. Upcoming graphics driver could provide the necessary balancing.