• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

How does SLI actually work?

Associate
Joined
4 Jun 2017
Posts
32
Hi folks,

I'm currently running a pair of 980tis in SLI and it's a shame that fewer and fewer titles are supporting it.

I don't really understand how it all works as when it further involved that just hardware, it's all magic to me so I might just be waffling nonsense. From reading and watching videos it's down to the game engines but I don't understand why it's that way round and why Nvidia don't have something else that works in the event that game engines don't support it?

But again, it may just be my ignorance.
 
Most of the time it is done by having GPUs take turns in rendering of a frame (AFR) but many modern engines use techniques which rely on information from previous frame(s) which may or not work well if said frames are done on diff GPUs. For the somewhat niche market I guess they don't feel the extra effort to make it work is worthwhile :(
 
With games that use anything older than DX12/Vulkan for rendering there is very little the game developer can do to actively support SLI or Crossfire - there are techniques a developer might use that can break compatibility with SLI so if they care about support for multiple GPUs they would try to avoid those techniques or find ways of working around them to avoid breaking SLI compatibility but that isn't always possible especially with more complex use of rendering effects. The GPU drivers can help somewhat with compatibility fixes - doing things a bit different internally on an application specific basis but that is also limited.

Contrary to what people often believe a game developer rarely does any specific code for multiple GPUs, there isn't really an active way to code at a game engine level to actively invoke SLI - it is mostly dodging known problems that break compatibility and maybe putting in some options to use alternative techniques for those that do have SLI.

As above these systems work by farming out the rendering load - sometimes as simply as having one GPU work on one frame of the scene while the other GPU starts building the next one and if one of those GPUs needs data that is currently stored on or being processed on the other GPU then they have to wait until the other GPU is in a state where it can be fetched and transferring the data between the GPUs is slow - sometimes so slow it just isn't worth it as you end up with less performance that one GPU. Even if the GPUs had direct access to each other's memory via some kind of special interconnect it still wouldn't be enough because for instance the other GPU might be in the middle of modifying that data causing corruption, etc. if it was randomly accessed.

nVidia haven't really bothered lately because DX12 and Vulkan APIs supposedly support explicit multi-adaptor where the game developer can farm out work to different GPUs themselves - in theory with their knowledge of how their game engine works they can farm it out in a way that gets the best out of those GPUs and avoids issues with one GPU needing data that resides on another GPU, etc. and can more easily balance spreading out heavier bits of the scene by knowing what parts of the scene are more complex than others rather than the current implementation of SLI which doesn't really know what the scene is made up of and just bruteforce farms it out for instance an alternative to AFR is split frame rendering which divides 1 frame of a scene up between all the GPUs instead of farming out individual different frames but if one GPU ends up mostly processing areas of the scene which are the skybox (usually fairly simple and doesn't take much work) while another is handling all the ground with walls, foliage, etc. then you don't get great scaling.
 
Thanks, I watched the Linus video on NVLink which appears to fix part of the SLI problems but he also mentions unlike the Quadro cards that function as one, the RTX range doesn't have that enabled?
 
Historical point of interest - 'original' SLI stood for Scan Line Interlacing, which a technique that allowed you to use two 3DFX Voodoo accelerator cards at the same time. The cards drew alternate lines of the image on the screen.

When 3DFX failed as a company, nVidia bought them out, and eventually repurposed SLI to mean what it does now.
 
Historical point of interest - 'original' SLI stood for Scan Line Interlacing, which a technique that allowed you to use two 3DFX Voodoo accelerator cards at the same time. The cards drew alternate lines of the image on the screen.

When 3DFX failed as a company, nVidia bought them out, and eventually repurposed SLI to mean what it does now.


Oh yes, we had 2 systems running SLI Voodoo2 for playing Kingpin: Life of Crime.

24mb of raw gaming memory.
 
Back
Top Bottom