Real-time VFX in Unreal Engine (UE4) with multiple GPUs using SLI
Scalable Link Interface (SLI) is a multi-GPU configuration that offers increased rendering performance by dividing the workload across multiple GPUs. (Update) for clarity, games created in UE4 can be coded to utilise SLI, but if you want to speed up the FPS rate and handling of the UE4 editor for live VFX and virtual production, you are out of luck – for now.
Talking to Epic Games, Epic have said “multi-GPU for the UE4 editor itself is on it’s way and in 4.23 we started a roadmap for supporting multi-GPU in the editor, but presently you won’t get any advantage from running more than 1 GPU, while working in the editor.”
We’ll be keeping our eye out for updates here as probably like you, we can not wait for the UE4 editor to natively take advantage of multi-GPU rigs. We’ve been testing and benchmarking GPU usage in the editor when running in PLAY mode for real-time VFX and virtual production.
There is currently no support for multi-GPU in the UE4 Editor but it is on the way.
We have found that UE4 editor is a greedy little beast, we recommend for now that you install the best single graphics card that you can afford for improving the FPS rate in the editor in play mode. Some have said that having an RTX 2080ti is sufficient, but we have found this not to be true when you load levels that are – badly optimised – in game terms weight is everything, draws and calls cost GPU, when we open a level from one of our VFX vendors for on-set operation 9 out of 10 times an RTX 2080ti will not handle the level we’ve opened and we see a big drop in FPS, which creates screen drag, frame lag in real-time production pipelines and in some cases we’ve not even been able to move the mouse with the level open. But this is not the case when we slot in say an RTX8000.
If you run the editor without a level open or just a blank level open you will see no benefit of having a powerful GPU, but as soon as you open a level your FPS will start to drop off. I hear you say optimisation is the answer, and you are right but for realtime VFX we have a long way to go in terms of knowledge of optimising visual effects and levels to be used in real-time production, VFX houses by their nature create incredibly heavy graphics. So for now we are the ones that are turning levels around and saying to the VFX vendors “please optimise the level so it can run on-set.”
If you are creating a game to run on SLI, then the rest of this article may be helpful. If you are looking to work in real-time using the editor on-set, you can stop here, and basically take our advice – get the biggest single GPU you can afford so that you can open as heavy a level as possible and then at least you can maybe start the optimisation or advise your level supplier on how to optimise the level before you start shooting.
SLI for games made with UE4.
Since UE4.15 (games made in) Unreal Engine have been able to take advantage of machines and servers with multiple GPUs, so long as the GPU and system are compatible with SLI functionality. To take advantage of SLI, the system must use an SLI-certified motherboard. Such motherboards have multiple PCI-Express x16 slots and are specifically engineered for SLI configurations.
To create a multi-GPU SLI configuration, [NVIDIA] GPUs must be attached to at least two of these slots, and then these GPUs must be linked using external SLI bridge connectors.
Once the hardware is configured for SLI, and the driver is properly installed for all the GPUs, SLI rendering must be enabled in the NVIDIA control panel. At this point, the driver can treat both GPUs as one logical device, and divide rendering workload automatically depending on the selected mode.
There are five SLI rendering modes available:
- Alternate Frame Rendering (AFR)
- Split Frame Rendering (SFR)
- Boost Performance Hybrid SLI
- Compatibility mode
If you are building a multiple GPU system with GPUs of different capabilities, say a Titan X and then a couple of Quadros, you can utilise the SLI Compatibility mode. This mode enables UE4 to push rendering tasks to the most suitable GPU in your set up. Hard tasks go to the more powerful while the other less powerful GPUs in your rig handle the less, and more appropriate tasks. If you are interested in understanding more about SLI take a look at the following page on the Nvidia website.
UPDATE 26/03/2018 after posting this post to the Octane Render group on Facebook a few interesting comments came up that we thought we’d ad to this post.
James Hibbert said “just for clarification, this article is talking a lot about SLI, and using SLI bridges, you do not need any of that for rendering with Octane using multiple GPUs.” But then added “IF you are using UE4, then yes you will probably want SLI if in the context of your project it actually gives you some benefit. That is not always a given with Raster rendering. However with Octane, your speed scales 1:1 with the number of GPUs you have.
James Hibbert, just an aside, every PC Tech guru seems to agree on one thing. For games, at least the vast majority of them, a gamer is better off getting the fastest single GPU they can afford, rather than getting 2 slower/cheaper cards and running them in SLI/Crossfire. For Octane, and Red Shift, you simply need as many GPUs as you can afford.
Just remember Multi-GPU and SLI are not the same thing. SLI is a specific technology from Nvidia. Octane does not use SLI, Octane uses muli-gpu (not sure exactly wich flavor there is, but your motherboard does it on it’s own with the help of the OS).
There is a difference.
Now there is another form of of Multi-GPU from nvidia called NV Link, NV Link is similar to SLI, but allows you to do things like stack GPU memory, so if you have 4 GPUs with 11gb of VRAM you will have a total of 44gb of VRAM, where as all other forms would still leave you with the original 11gb. keep in mind that NV Link is not available on consumer GPUs, and you need to use (RTX) Quadro or Tesla cards to use it.
Hopefully that will change with the next line of consumer GPUs from Nvidia. SLI support from nvidia has dropped off quite a bit to the point where they only support 2 way SLI officially. I kinda suspect that they will either be dropping SLI altogether or migrate everything to NVLink in future products. Because of the Raytrace UE4 demo, UE4 will feature support for NV Link in a future build, because they land to link multiple GPUs to get it to run in real-time.”