Distributed rendering using nDisplay with a multiple GPUs.

We want to create a virtual space with the Unreal Engine and display it on the media wall. This is not a video, but a virtual space, so there was a problem that the frames per second(fps) were significantly reduced to output to multiple displays after real-time rendering.
We are using a system with four Nvidia Quadro A6000 GPUs and an Nvidia Quadro Sync ii, and we attempted to increase the fps through distributed rendering by utilizing Mosaic and nDisplay. The information below is the experimental environment, test case, and test results.

Test environment

  1. H/W
    A. AMD CPU 32 Core
    B. Nvidia Quadro A6000 x 4
    C. Quadro Sync ii
    D. FHD 27’’ monitor
  2. S/W
    A. Unreal Engine 4.26
    B. Nvidia Mosaic
    C. nDisplay, Switch Board

Test cases and results

  1. Only Mosaic
    A. Four monitors connected to one GPU → 65 ~ 90 fps
    B. Two monitors connected to two each GPUs → 65 ~ 85 fps
    C. One monitors connected to one each GPUs → 60 ~ 80 fps
  2. Mosiac + nDisplay
    A. Four monitors connected to one GPU → 38 ~ 44 fps
    B. Two monitors connected to two each GPUs → 42 ~ 50 fps
    C. One monitors connected to one each GPUs → 27 ~ 32 fps

As a result of using nDisplay on systems with four GPUs, the FPS were lower. According to research, two or more systems must be used to perform distributed rendering through nDisplay. Then, is there another way to increase the performance of real-time rendering on one system with mult-GPU? If not, I wonder if you have any plans to support multi-GPU.

What is your goal in terms of the number of screens you’re wanting to output to and their resolutions?
In your test it looks like you’re using 4x 1080p monitors, in which case that is the equivalent of a single 4K display, if that’s your goal then you should only need a single GPU to run that, as you can see in your test the best performance you had was running a single GPU with all the displays connected to it using Mosaic.
If that’s what you plan to do, then you would actually get better performance going with a cheaper gaming GPU like an RTX 3090 or RTX 3090Ti which are better suited for running a gaming engine like UE4 and would actually give you higher framerates than your Quadro A6000
If you plan to set up displays in a larger configuration than what you were testing then I think you may not be configuring things properly. nDisplay is meant to be used with multiple separate computers, not all on the same machine, so if you’re using a single system with the 4x GPU’s inside it using the Quadro Sync card then I don’t think you would use nDisplay at all. I haven’t set up a system like that before but doing a quick look at some documentation I’m just wondering if you may not have things configured properly.
In any case, if you’re running the equivalent of a 4K display a single GPU should be the best option.

Our goal is to use more than 16 monitors in one system. This test was conducted to test nDisplay before configuring 16 monitors.
As you said, nDisplay is useless for raising the fps in one box with multiple GPUs. Then, is there any other way to raise the fps?

p.s. Is there a way to contact the UE4 directly, such as e-mail, other than this forum?

Thank you for your reply.

Any update with this setup? I’m testing something similar with 16 HD Monitors (15 in mosaic with a resolution of 9600x 3240 at 60hz) + 1 (4K monitor configured as a secondary 2-screen mosaic) to be used as operational screen.

All monitors are connected to 4 Nvidia M4000 GPUs with Quadro Sync (version 1) and the fps drop dramatically to 8fps when trying to expand the Unreal Engine application window to 9600x3240.

I wonder if there’s any way to output/mirror the Unreal Engine application window to either a secondary MOSAIC setup within a single system or to an external node (PC) to see if the fps increase.

Important note from Unreal docs: “Although it is possible to have a MOSAIC virtual display spawn across multiple GPUs within one PC, currently, it would be slow to have an application window over that canvas. (Future work may possibly enable this.) Today, this approach would not be recommended for virtual production or in-camera VFX.”

I wonder what that “future work” may be!