Problem with multi-GPU rendering viewport performance

I’ve noticed that when you have two or more GPUs of varying levels of performance enabled, a decrease in viewport rendering performance can be observed.

Take for example this setup. A GTX 1050Ti and a RTX 2070 Super.

In the BMW test scene, the viewport render time to 100 samples is as follows:

2070 = 5 seconds
2070 + 1050 = 35 seconds
1050 = 50 seconds

This also occurs with CPU+GPU rendering.

From my understanding, for each sample of the viewport, the render is split evenly between the selected devices. This works well for devices of similar performance levels, but once you get to performance differences like the device setup I listed above, it just causes a lot of waited on the part of the faster device.

The current work around is to disable the lower power GPU/CPU until you come to the final render where you re-enable it. However, what’s the possibility of seeing an option added to Blender allowing the user to specify the set of GPUs to use for viewport rendering and the GPUs to use for final renders?

1 Like

Yes, this is known to not be optimal. Scheduling work between GPUs with different performance is hard for interactive rendering. For final renders the tiles help to distribute it better.

We have some ideas for this, but for now this is expected.

3 Likes

Hi. I’ve created an addon which adresses exactly this issue (by allowing to choose different devices for viewport and final rendering). It’s free. Check it out: https://youtu.be/rIddu96tDYE
Download link:
https://gumroad.com/l/Ocwql

3 Likes

Just so there is no confusion? Can the viewport benefit from two identical gpu. Would it be twice as fast as using a single one? Does this work with CUDA, OPTIX or both?

Thanks!

1 Like

From what I’ve found on the internet, it seems the problem is only with different gpus, but I would be very grateful if someone with 2 or more identical gpus could confirm.

At the moment, using Optix with two different GPU it seems to perform the same as using the fastest of these GPU alone. So either viewport performance isn’t improved by a 2nd GPU, or it requires two identical GPU.

1 Like

This application is not working. I have two gpus, an RTX 3090 and RTX Titan. The version of Blender I am using is 2.91.

1 Like

Could you please specify what happens, and if it’s a reproducible issue, please submit a bug report by using Blender’s Help menu ➔ Report a bug. Your system info will be auto-inserted in the online form.

If Blender doesn’t work at all, you can use this link to submit a bug report.

Thanks.

You’ve already commented on my youtube video that it doesn’t work for you (works fine for other people). I’ve replied to your comment asking for more information, you didn’t even reply to me.

Sorry, Youtube did not notify me of your answer. What happens is that when rendering in real time in Viewport, the message appears informing the error. Image in the description. It happens both in this application, and without it.

I’m pretty sure this is some issue related to Windows GPU hardware -accelerated scheduling. Go to Settings -> System -> Display -> Graphics Settings, turn off Hardware-accelerated GPU scheduling, then restart. It should work fine after that.

It worked in Viewport, but when it will render image or video, the same problem appears.

As @MetinSeven suggested, you should submit a bug report. As you’ve said, this happens with or without my addon, so it’s a problem in blender itself.

1 Like

What kind of improvement should we expect from using two GPU for the viewport? With two 3080 I’m getting speeds similar to using a single one. Perhaps a bit slower.