Parallel Graphics Processing & Rendering Techniques Explored
Simply put, NVIDIA employs two methods of multi-GPU rendering with its SLI architecture. One method allows each GPU to render alternate frames of a given scene, and the other literally chops the scene up into two pieces, each of which are handled by a GPU for processing.
Below we've taken screenshots from a few game and benchmark engines with NVIDIA's GPU Load Balancing indicator feature enabled in the driver control panel. This feature transposes a green status bar on top of the screen and shows real-time rendering workloads for each GPU in the system.
Alternate Frame Rendering (AFR):
In both 3DMark05 and Doom 3, NVIDIA uses AFR (Alternate Frame Rendering) techniques, which is actually the company's default method of SLI multi-GPU parallel processing. As you can see in the 3DMark05 shots, both GPUs are enduring an extreme load in the "Canyon Flight" demo area of the test. The water shaders, which look fantastic by the way, really tax the GPUs, as does the geometry and physics calculations of the powered blimp in these screenshots. However, as impressive as the fly sea monster is in this scene, it actually requires slightly less GPU horsepower to render its vicious and ominous presence on the screen.
In the Doom 3 screenshots, we actually see very little load being put on the GPUs, even though there are impressive lighting and texturing effects that paint Doom's hell spawn creatures in their gloomy unnerving environments. We were hard-pressed to actually find areas of Doom that really tax dual GeForce 6800GT cards to the extent that 3DMark05 or Far Cry did, as you will see in the shots that follow. However, SLI performance gains in Doom 3, which we'll also show in the pages ahead, are more than impressive. All told, as graphically impressive as Doom 3 is, the game is also very code and shader efficient, it seems, at least with the graphics subsystem. CPU utilization may be another thing all together but the relatively low overhead that we see on the GPUs here is a testament to Mr. Carmack's coding craftsmanship.
Split Frame Rendering (SFR):
With Far Cry, NVIDIA uses SFR (Split Frame Rendering) to maximize throughput and load balance the GPUs. In these shots, you can see that the load bar doesn't have vertical shaded performance bars on it but rather just moves up and down on the horizontal axis to indicate what the partitioning of the frame is for each GPU load. This scenario seems significantly less efficient, in terms of how it delegates processing loads for each GPU in a given scene. We were witness to occasional sporadic bouncing of the load balance bar from one end of the screen to another, depending on which area of the "Catacombs" map we were in, of the custom benchmark demo we recorded. You'll note in this scene, however, that the top half of the screen actually is a bit more GPU intensive and a slightly smaller portion of the scene is actually carved out for the GPU to render. This is most likely to do the rendering load required for the trees and vegetation in that part of the scene, which also need to move naturally with the tropical island breezes blowing by in the Far Cry environment. You'll also notice in one of our shots that there are water shaders employed for rendering a river off in the distance of the area we were in. As a result, this again seems to cause the load status bar to partition off less of the screen for the GPU tasked with that area.
All told, we can see the benefits of both methods of parallel processing for NVIDIA's new SLI, but clearly AFR seems to be the method of choice with its obvious superior efficiency and consistency for load balancing the GPUs. However, there may be a small fly in the ointment for NVIDIA and its road ahead with SLI. Specifically, we've very recently heard rumors that Alternate Frame Rendering is a patented technology and is the intellectual property of none other than ATi.
Supposedly, ATi filed for patent of AFR rendering techniques way back in the day of the introduction of its Rage Fury Maxx graphics cards, which used dual Rage VPUs on a single AGP card. Now there is a distinct difference between what NVIDIA does with dual cards over PCI Express links and having dual VPUs or GPUs on a single card. However, the real question is does ATi have a defensible patent on the technique of load balancing the rendering workload over alternate frames for each graphics processor? We've heard that ATi plans to vigorously defend its patents and intellectual property, but the landscape on this situation is just starting to take shape.
Whether ATi actually has a defensible position is another question altogether. In addition, whether it makes sense for the company to take legal action against NVIDIA is also something to consider. Could there be some sort of "symbiotic" co-existence here that makes sense for both companies to support the technique in software? Think of it from a game developer perspective, in terms of adoption of future SLI architectures from both ATi and NVIDIA camps. It's certainly a VERY interesting topic, to say the least, and it will be interesting to see how things shake out in the months ahead. The whole issue may be a sleeper in the end because it may make sense for ATi to just sweep things under the rug. Or perhaps the company doesn't even have a legitimate claim based on the decidedly different hardware implementations. We shall see.