Examining Performance Factors
Let's look at these factors closely for a moment. Graphics cards are more than just simple graphics adapters. In a sense, they resemble general purpose processors both in transistor numbers and complexity. So, it might be easier to explain scalability of multi graphics card rendering solutions by looking at multiprocessor systems. Multiprocessors system have been around much longer than multi graphics card rendering solutions. However, even now most desktop PCs and notebooks mostly feature single processors. This will change in the future with dual and multi core solutions: they're basically two or more processors packed into a single die (with some creative engineering to maximize optimal performance). If you look at benchmark results from such systems, you'll find that for the most part these systems can either be slower or much faster than your average single processor desktop systems. Why is that?Load Balancing
The answer is load balancing. With dual and multi processor systems, we want these processors to be fully utilized (most of the time). Only then will we see a significant boost in performance. That's why multiprocessing benchmarks may run an application with several threads or even several applications at once - the purpose is to have enough task for each processor in the system. It is up to the developer (and operating system) how these threads and application are load balanced. A well balanced system will reap the most reward in multithreading environment or when running multithreaded applications.
However, not all applications are multithreaded. Look at the benchmarks, we can see that for the most part multiprocessor system will score something around 30 to 70% higher than single processor systems in a majority of benchmarks. Some very special applications may have and even higher scores. But in real life, 30 to 50 % faster performance is already very good for multiprocessor systems. Dual and multi core processors score slightly higher, mostly because these processors have less latency and even more improvements to maximize their multitasking / multithreading performance.
So, how does this relate to SLI? Since SLI is based on the same principle, it's also susceptible to same pitfalls as multiprocessor systems. An SLI rig will only offer significant increase in performance if the rendering task can be optimally load balanced between the cards. In games where the rendering load can be balanced effectively and efficiently, we may see at least 50 % increase in performance (or more). However, not all applications and games can be load balanced. Even those who do may not benefit that much. In this respect, you should never expect an SLI system to offer 100 % or even 50 % performance increase in every application. Just like multiprocessor systems, even a 30 to 50 % overall increase is good.
Latency
With multiprocessor systems (or even dual or multi core processors), it is up to the operating system (and the application's developer) to ensure how applications and threads are load balanced to reach optimal performance. With SLI, this important task is handled by the drivers. So, unlike single card solutions, the graphics card drivers must perform load balancing with SLI systems as an additional task in the rendering process. This means another step in the rendering process and that means more time to complete the whole process. Thankfully, load balacing can be done very quickly, so any slowdowns caused by load balancing can effectively be 'hidden' by the performance increase. Now, if you're paying attention, you can see that there is catch here - if the performance increase is minimal or even non existant, we might be getting lower frame rates with SLI systems. Why? Because the drivers must still perform load balancing and that's takes time - thus lower frame rates because each frame took more time to be rendered. With applications that can't be load balanced, it is better to turn SLI off (choosing the single card mode) completely.
Rendering (Dis)Parity
Whoa! What the heck is that? Rendering disparity basically occurs when load balancing is not, well, balanced effectively. Simply put, the load on one card is lighter / smaller than the other. For example, if we were to split the screen in half (like in scissor mode), there will be time when the load is heavier on the upper half and vice versa. When this happens, the half with the lighter load will be rendered faster than the other half. So, you'll be seeing the next frame on one half of the screen while the other is still displaying the previous frame. Nasty, isn't? Thankfully, load balancing in SLI is not 'dumb'. The driver will continously monitor the load and adjust the load balancing ratio to avoid such problems. However, this does mean slightly more work, both for the developers at NVIDIA and the drivers. That means long hours for the developers and (slightly) higher latency from the driver (in addition to just doing standard load balancing). With alternate frame rendering, such matters will not be (much of) a problem. That's why multi card SLI mode use this approach as the default.
Usage
Unlike math, 1 + 1 doesn't equal 2 with SLI. Yes, we've talked about load balancing, latency and disparity between two cards, but there is at least one other thing that makes it so. If you're familiar with the 3D rendering pipeline, you'll know that to render an image, the graphics card must process both polygons and textures. In an SLI setup, for the most part, only texture related tasks are load balanced. So, in a way, an SLI setup is really 1 + 1 = 1.5 since the vertex units (the 0.5 part) in the second card are hardly used. Now, before you scream bloody murder, it's not that important anyway. SLI is targeted for games, well, actually most if not all consumer level graphics cards are targeted for games. Games usually don't use that much polygon to really tax a single graphics card, much less two. As long as the geometry load is still within the capabilities of a single card, it doesn't really matter that we didn't load balanced the geometry load. However, if a game does use more polygons (or vertex shaders) more than one card can handle, it won't run faster with two cards. In this situation, one single but more capable or higher clocked card is preferred.
With these factors in mind, we think that users should never expect SLI as a replacement over a faster single card solution. SLI should be considered complementary - meaning it will allow you to have faster performance in some games, but not all games. For a more well rounded and 100 % effective solution, it will always be better to buy a faster single card. Rather than using two GeForce 6600GT, it's better to use a single GeForce 6800GT. Particularly since we should expect no more than an average 50 % increase in performance. Of course, that's theory anyway, so let's see if that theory is right. Let's take a look at what SLI has to offer in terms of performance.
[Previous Page]
[Go to top]
[Next Page]