Key Takeaways

  • GPU SLI and CrossFire are outdated due to multiple issues and diminishing returns, but Multi-Chip GPUs offer hope for future improvements.
  • DirectX 12 Ultimate provides explicit multi-GPU support, but few games actually utilize this feature due to challenges for developers.
  • Apple’s innovative solution of connecting multiple discrete GPUs inside one system-on-a-chip resulted in an almost seamless experience for users.


If one GPU is good, then surely two GPUs are good-er? For a good chunk of GPU history that was the case, but these days you can’t just slap a second graphics card in your PC and get a frame rate boost. Why? Also, when can we do that again?


How SLI and (Also) SLI Introduced Dual-GPU Gaming

Early graphics accelerator pioneer Voodoo introduced SLI or “Scan-Line Interleave” in the 90s. This lets you connect two of their Voodoo cards (which had to be identical), letting each card render an alternating line of the frame. Theoretically, this would double your rendering might, but in practice the boost was never so linear.


With the demise of Voodoo (and its technology purchased by NVIDIA) SLI would make a return with NVIDIA’s GPUs, but this time it was short for “Scalable Link Interface.” ATi (now AMD) was and remains NVIDIA’s primary competitor, and its equivalent technology CrossFire did pretty much the same thing. The cards, or sometimes two to four GPUs on the same card, were connected using a special high-bandwidth bus that let them share information rapidly, and so they could share the rendering workload.

The exact way this worked depended on the implementation, but usually the GPUs would render alternating frames or each frame would be split into a checkerboard pattern of regions, and the GPUs would each work on their share of the patches.

The Day SLI and Crossfire Died

When SLI or CrossFire worked, it allowed for performance faster than any single GPU could muster, but there were common issues. So-called “micro” stutters caused by syncing issues and bandwidth constraints would ruin the experience even if the FPS counter was high. Also, performance scaling made the cost-to-performance calculation untenable for most people. Adding a second card would not double your performance, but perhaps boost it by 70% if you were lucky. A third card or a fourth would diminish returns even more. In many cases, that fourth card would literally be doing nothing!


However, enthusiasts were still willing to pay anything to get the best performance, so SLI still lived on as a feature, but its death knell came when games stopped supporting it. Not only is implementing SLI extra work for a developer catering to a very tiny sliver of its market, but the ways games render have become a poor fit for SLI.

Modern game engines often use data from past frames to improve current frames or to render them, with various buffers and heaps of data that has to be shifted around. The total end result is that SLI and Crossfire are a bad fit for how these game engines work because that past data or the contents of those buffers can’t be shifted around quickly enough.

Apple Can Glue GPUs Together

Apple M1, M1 Pro, M1 Max, and M1 Ultra die sizes compared
Apple


Connecting two graphics cards together with a cable may not be good enough to allow multi-GPU technology to work well in modern games or 3D apps, but Apple seems to have solved this issue by creating an insanely fast connection between their GPUs. By taking multiple copies of their Apple Silicon system-on-a-chip modules and essentially gluing them together with ultra-high bandwidth edge connectors, the problem all but disappears.

Even better, there’s no need for software developers to take this into account. For a game or other application, it all just looks like one big logical GPU, even though there are multiple discrete GPUs inside something like an Apple M1 Ultra or M3 Max. The scaling isn’t perfect, there is still some overhead penalty, but it’s not far from that depending on the app in question.

Directx 12 Supports Multi-GPU

Techniques such as SLI are handled by the drivers and implementation of the GPU’s manufacturer. A developer has to tune their game engine for SLI, but the actual nuts and bolts of how the work is shared between the cards under the hood isn’t under their control.


The latest version of DirectX as of this writing is DirectX 12 Ultimate, and this API (Application Programming Interface) has a feature known as “explicit” multi-GPU support. This means that, if a computer has more than one GPU, the developer can precisely control what work is given to each chip and how it’s all sewn together.

The GPUs don’t have to be the same model or even the same brand! So, on paper, this sounds amazing, but despite having this baked into DirectX 12, very few games have actually supported it. I can only assume that it’s a significant burden for developers to, once again, cater to a small group of people who have multiple GPUs. Although technically, laptops with integrated and dedicated GPUs would count, the integrated GPU likely wouldn’t help enough to make it worth the technical complexity.

Multi-Chip GPUs Are Coming!

In August 2022 I wrote that Multi-Chip Module (MCM) GPUs Could Be the Future of Graphics. Somewhat similar to AMD’s “chiplet” design for their CPUs, these GPU dies contain multiple discrete GPUs connected by an extremely fast connection in the vein of Apple’s solution.


NVIDIA’s Blackwell B200 GPU is officially the first NVIDIA MCM GPU which will hopefully trickle down to consumer cards, and AMD has patents for chiplet-style GPUs out in the open too. This will hopefully have an effect on the cost of higher-end cards, and open a whole new area of increased performance for GPUs, since the practice of making bigger and bigger chips with high failure rates is clearly heading towards a dead end.


So, while the days of having multiple GPUs for graphics rendering (we still do that for other types of jobs) or having two discrete chip packages on a single card are unlikely to ever return, the future looks more and more to be built from arrays of GPUs on a single die, acting as one.

Source link