Jump to content

Is NVLink BETTER than SLI??

1 hour ago, nicklmg said:

 

Guys where is the 4 way 2080ti video for running 3 4k 120hz displays?

I edit my posts a lot, Twitter is @LordStreetguru just don't ask PC questions there mostly...
 

Spoiler

 

What is your budget/country for your new PC?

 

what monitor resolution/refresh rate?

 

What games or other software do you need to run?

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

I knew straight away when NVLink showed up on the Pascal Quadro card and nVidia killed 4-way SLI on the 1080Ti that this was coming. No way is nVidia going to abandon multi-card performance from gamers when they are offering it for professional users.

 

Incidentally I still have 4-way SLI running on a set of Hydrocopper 980TI's and it still performs great to this day, with the right drivers of course:P I am also totally not interested in the 2080Ti - those numbers from the two Quadro Volta cards is what's got my attention.

 

Here's a tip for your next test - since many workstation vendors offer systems with four Quadro Volta cards installed you might want to try and see how NVLink works/scales with four cards.

 

SLI is not dead yet, and I predict 4-way SLI will make a return too. My guess is nVidia is still working out the kinks with NVLink to get it working with whatever architecture they decide to put it on for the consumer. Take a look inside a DGX station and you can see the special NVLink they use to connect the four Tesla cards together - that 4-way bridge is the critical piece of hardware.

 

5ba7fd220bfeb_DGX4-way.PNG.c8aa178dfc2b51cb3bc32dae76fa7666.PNG

Link to comment
Share on other sites

Link to post
Share on other sites

The "master" GPU doesn't direct any workload, all the commands come from the graphics driver: SLI bridge is used for timing and chunky memory transfers.

 

4:20 resource pooling has always been here with SLI, it just very rarely actually got used because the effort wasn't worth it for the fraction of people with SLI rigs - and it was slow as heck going over the PCI lanes or SLI bridge if you were lucky.

 

There's way more cool stuff with SLI that's possible, it very rarely gets discussed or mentioned, so I'm going to write out some of the technical awesomeness of SLI here (I've developed some stuff that specifically takes advantage of multi-GPU setups).

 

---

 

With SLI (and CrossFire, I'll be using SLI from here on though) the GPU driver duplicates every command to each of the GPUs in SLI for a single SLI rendering context. So if you have two 4GiB GPUs and make a 1GiB texture allocation then that's 1GiB on GPU0 and 1GiB on GPU2. Fine and dandy, everyone should be on the same page with this because that sounds like the familiar myth "SLI memory does not stack".

 

So things become a bit weird when you've got more than just an SLI rendering context going on. What if you have a PhysX context on GPU1? What if you have two compute contexts, one on GPU0 and another on GPU1? What if you have a second rendering context on GPU0? Suddenly you've got 3GiB allocated on one card, 2GiB on another. The SLI context is duplicating commands, but the other contexts are doing their own thing.

 

This is why games like GTA V in their options menu will tell you that you have 8GiB of GPU memory for a 2x 4GiB SLI setup and simply doubles the amount of memory used for each option - you do actually have 8GiB of memory and the allocations are doubled between the two GPUs, however out of that memory what if some is used by some other context in another process or maybe a compute job or PhysX job? Then more memory will be used on one GPU versus the other.

 

A better visual representation these games could do is show individual memory used for each GPU, that would better explain what's technically happening.

 

Now everything I just described is a boring, default SLI rendering context, but there's more to SLI than just this.

 

---

 

If you have a Quadro GPU from anytime after the year 2005 and you're running Microsoft Windows then lucky you - you've got access to the Windows OpenGL extension NV_gpu_affinity.

You can now produce an application or game that can specifically send commands to each individual GPU, including allocating different amounts of memory and rendering different scenes. You can allocate 4GiB on GPU0 and then allocate 3GiB and render shadow maps or something on GPU1 (and then rather slowly move all that memory back over the SLI bridge or PCI lane).

 

What if you don't have a Quadro? Don't worry, since NVIDIA driver version 361 you've had access to the OpenGL extension NVX_linked_gpu_multicast. Now games can enjoy extremely efficient multi-GPU rendering by deciding which GPUs should receive what commands. You can have GPU0 render a completely different scene to GPU1, but a more common scenario for this would be to have GPU0 render the camera "left eye" and GPU1 render the camera "right eye"; moving the results over the SLI bridge or PCI lane back to GPU0 for resolving. Handy for stereo 3D or VR.

 

You can access individual GPUs with DirectX this way too by going through NV_DX_interop2. With doing this games can have extremely fine control of how they do SLI. Doesn't have to be just AFR or SFR.

 

With D3D12 and Vulkan we got multi-GPU where we can just straight up access any old GPU we want (AMD, NV, Intel, whatever). All the memory is there, can render or compute whatever we want. Or we can be boring and ask for "AFR/SFR please".

 

---

 

NVLink just makes all this a million times better. With the modern explicit graphics APIs I expect we'll be able to do direct GPU to GPU memory transfers over the NVLink (pretty sure Vulkan already has this capability defined - just at the moment it uses the slow PCI lane or *maybe* the SLI bridge).

 

I wish multi-GPU stuff came back. It's one of my favourite complexities about graphics programming and it is perfect for rendering VR stereo scenes.

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

2080 TI in SLI/NVlink mode by other channels for reference:

 


I think twin 2080Ti is 10 frames faster than Twin GV100 in some cases.

Specs: Motherboard: Asus X470-PLUS TUF gaming (Yes I know it's poor but I wasn't informed) RAM: Corsair VENGEANCE® LPX DDR4 3200Mhz CL16-18-18-36 2x8GB

            CPU: Ryzen 9 5900X          Case: Antec P8     PSU: Corsair RM850x                        Cooler: Antec K240 with two Noctura Industrial PPC 3000 PWM

            Drives: Samsung 970 EVO plus 250GB, Micron 1100 2TB, Seagate ST4000DM000/1F2168 GPU: EVGA RTX 2080 ti Black edition

Link to comment
Share on other sites

Link to post
Share on other sites

Since Vulkan 1.1, there is a core extension called "VK_KHR_DEVICE_GROUP" which allow the creation of a logical device from multiple physical devices if a crossfire/SLI link is used. This is great because it allows the developers to (at best) add optimized code path for the grouped GPU. I also think that even without specific optimization, the logical device still has usually more resources exposed (of of the perks of having the VRAM directly exposed) so its a win-win situation.

 

Now I wonder how NVLINK will play with this (or if its supported at all actually). The idea of having a monster GPU that has the sum of every physical gpu really tingle my berries.

Link to comment
Share on other sites

Link to post
Share on other sites

Sorry if this is overly nitpicky, but I think the results shown at 6:20 is a little bit confusing, given that earlier it clearly shows the two Quadro cards (and if you look at the PowerShell terminal at 5:45, it shows GP100), but the highlighted results are for the GV100 chips, which is not shown in the video until 7:08.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 4 weeks later...

do i still need a SLI compatible mobo to get running rtx 2080 x 2 on NVLink?, it can be done in a non SLI mobo or does it has to be NVLink ready mobo?

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×