Why does performance fail to scale proportionally in SLI or Crossfire?

Braznor

Diamond Member
Oct 9, 2005
4,767
435
126
Use two GPUs in SLI or Crossfire and we get 50% increase in performance over a single GPU. Anything beyond two GPUs doesn't really scale well despite the computing power possessed by a three or four way SLI/Crossfire configuration.

So what causes this to happen?

Software constraints? Bad programming? CPU/bandwidth bottlenecks?

By the way, SLI has been around since 2004 or so. So why have gaming software not been coded to make efficient use of all this GPU power so far?

By when can expect gaming performance to scale proportionately in multi GPU systems?
 

TemjinGold

Diamond Member
Dec 16, 2006
3,050
65
91
Picture this: If you are baking a cake and it takes you 4 hours to prep and bake the whole cake. But let's say you get a friend to help you. Would the cake now take 2 hours? What if you had 3 friends helping you? Would it now take an hour?
 

Stuka87

Diamond Member
Dec 10, 2010
6,240
2,559
136
Lots of reasons. Bandwidth, overhead, CPU limiting performance, etc.

Currently Crossfire is working pretty well, and scales better than SLI. AMD using the PCI-E bus has allowed them to have a lot more bandwidth. A R9 295x2 performs pretty close to double two R9 290X's in some games.

In BF4 at 4K, performance is basically doubled:

62498.png
 

AdamK47

Lifer
Oct 9, 1999
15,665
3,524
136
Yes. Yes. Yes.



1998.

1998 had the 3Dfx implementation of SLI, scan line interleave. Every alternating line was rendered by one card in an SLI configuration. NVidia took the abbreviated name over for marketing purposes only. NVidia calls it scalable link interface. It no longer renders alternating lines on each card. Instead, they use split frame rendering and alternate frame rendering. You probably knew this anyway. Just clarifying it for those that don't know.
 

dogen1

Senior member
Oct 14, 2014
739
40
91
Use two GPUs in SLI or Crossfire and we get 50% increase in performance over a single GPU. Anything beyond two GPUs doesn't really scale well despite the computing power possessed by a three or four way SLI/Crossfire configuration.

So what causes this to happen?

Software constraints? Bad programming? CPU/bandwidth bottlenecks?

By the way, SLI has been around since 2004 or so. So why have gaming software not been coded to make efficient use of all this GPU power so far?

By when can expect gaming performance to scale proportionately in multi GPU systems?

A former nvidia employee touched on this a bit in a post about DX12 and mantle style APIs.

A few paragraphs down.

http://www.gamedev.net/topic/666419-what-are-your-opinions-on-dx12vulkanmantle/#entry5215019


Basically it's really complicated, and really hard.
 

Braznor

Diamond Member
Oct 9, 2005
4,767
435
126
A former nvidia employee touched on this a bit in a post about DX12 and mantle style APIs.

A few paragraphs down.

http://www.gamedev.net/topic/666419-what-are-your-opinions-on-dx12vulkanmantle/#entry5215019


Basically it's really complicated, and really hard.

So from what I understood, the new APIs DX12 and Vulkan/Mantle will drastically improve multi GPU threading? But only if the developers do not care for backward integration of their software with DX9 or DX11?

So in essence, a game completely built upon DX12 and Mantle\Vulkan will be leagues ahead of the current APIs in terms of squeezing scaling performance from multi GPU setups?

I wonder if the same will be true for squeezing performance from CPUs beyond their current 4 core design?
 

digitaldurandal

Golden Member
Dec 3, 2009
1,828
0
76
Use two GPUs in SLI or Crossfire and we get 50% increase in performance over a single GPU. Anything beyond two GPUs doesn't really scale well despite the computing power possessed by a three or four way SLI/Crossfire configuration.

So what causes this to happen?

Software constraints? Bad programming? CPU/bandwidth bottlenecks?

By the way, SLI has been around since 2004 or so. So why have gaming software not been coded to make efficient use of all this GPU power so far?

By when can expect gaming performance to scale proportionately in multi GPU systems?

Well in Split Frame rendering each card renders part of a scene if one card renders faster than the other you are still stuck waiting for the second card to render.

I am sure there are additional issues which explain why driver changes are needed to optimize for different games and some engines don't even work natively with SFR but that is one possible reason for at least some of the nonlinear scaling
 

xorbe

Senior member
Sep 7, 2011
368
0
76
Well in Split Frame rendering each card renders part of a scene if one card renders faster than the other you are still stuck waiting for the second card to render.

Hence the original "scan line interleave" -- great odds of similar finish vs half frame split.
 

greatnoob

Senior member
Jan 6, 2014
968
395
136
Basically DX12 will let the engine programmers do all the hardwork when it comes to multi-GPU rendering and let them choose what should and shouldn't be done rather than have the driver programmers do it on their end. This just means more work for the game programmers and less work for Nvidia and AMD which should also result in a fair boost in performance to SLI/CF and all games written under DX12/Vulkan in general.