Cycles rendering uses only a part of GPU power

Hi,

I did some Cycles rendering tests to see how intensively Cycles uses the GPU, and discovered that the GPU load never crosses the 50% barrier, and even fluctuates around an average of 25% GPU load.

I’ve got a GeForce Ti series card with the latest drivers, CUDA is checked in the prefs, and GPU rendering is selected in the Cycles rendering settings.

When I check the CPU in stead of the GPU for Cycles rendering, the CPU load reaches almost 100%.

I’m using the Windows 10 Task Manager to measure the GPU load. Could it be that the indicator is not very accurate, or does Cycles maybe not fully utilize GPU power in general?

Thanks in advance for shedding a light on this.

What version of Blender? And what’s your tile size set to in Render -> Performance properties.

Hi @Zoot,

Thanks for your reply.

I’m using the latest 2.8 beta build. Tile size is set to 32. I did some CPU + GPU render tests, and that bucket size worked best. But maybe GPU-only still benefits from a large bucket size? And would that make more intensive use of GPU power?

Or could it simply be what’s discussed here?

I’ve just tried this GPU benchmark in Blender 2.8, using only GPU, and the load goes up, but still not beyond peaks of 75%, with an average of around 50%. Intriguing.

I don’t think this is true (thou I didn’t test it it via task manager) because whenever I use GPU to render I can’t multitask at all and my pc just does everything for render. On the other hand when I use CPU I can set number of threads that are used to compute rendering and leave few out to do other stuff on pc that is rendering. This is main reason why I am not so fond of GPU rendering because I can’t multitask (atleast with only 1 GPU installed).

That’s odd, I can multitask without problems. I’d also expect my machine to be bogged down by some power-rendering, but that isn’t the case during my tests so far.

Hmm and what is your GPU? It might be different now, tbh I didn’t try pure GPU render in a while now.

Ok so I just tested it out and it seems you are right it even took only like 20% of my GPU with GPU only render (Task manager usage) and I was able to multitask without probs. This surely didn’t happen in 2.79 back there when I tried that aswell.

EDIT: I just read that link you posted and I think it might be that, so I assume it is just complexity of scene and that leads me to my first reply aka why I prefer CPU control via threads and it’s usage.

1 Like

I will buy it as soon as I switch full on cycles (durning this year) I highly appreciate your project and I hope you will push Cycles CPU rendering aswell :).

Don’t use Windows Task Manager to measure GPU usage, it’s terrible.

Go download something like MSI Afterburner, it’s way more accurate.

1 Like

Keep in mind that 20% CPU utilization is probably 100% CPU utilization of a single thread/core because 100% would be all threads/cores, so it can’t go any higher without multi-threading or multiple tasks running at the same time. So that’s probably fine if you’re doing GPU-only rendering. It should go to 100% with CPU or GPU+CPU.

Note also that the Windows Task Manager does not show GPU Compute activity by default, so you have to look at the performance pane for the GPU and change one of the four graphs to compute_0 and you will probably find your 100% utilization. It only shows “3d” activity by default which is not what rendering uses.

When I render for example the Classroom scene with CPU+GPU I get 100% CPU utilization (all threads/cores and 96% GPU (Compute_0) utilization, and I think once you are looking in the right places you’ll find that all your hardware is being fully utilized by Cycles. This is Windows 10 64-bit with an Nvidia 1060.

1 Like

Thanks for the info guys, much appreciated!

I’ve checked the separate GPU section of Task Manager and indeed, it shows around 100% load of the 3D graph. :+1:

1 Like

Well, if it shows 100% with vanilla Cycles, it is wrong for sure. Run this bench http://www.ozone3d.net/msi_kombustor/ for 5 minutes and render for 5 minutes, you will hear the difference with your fans, no need for a “GPU Task manager”. But it may make happy to see 100% :slight_smile:

I disagree. Heat does not necessarily correlate with useful work done. It’s quite easy to build a CPU or GPU kernel that does nothing while burning up every functional unit with useless work that never needs to block and thus does no useful work while consuming the maximum possible amount of power.

And the Windows Task Manager’s display of 100% GPU utilization is perfectly valid. It simply means there is no time when the GPU is idle. The only meaningful comparative measure is how quickly it gets the job done that you’re asking it to do.

Those percent are very rough indicators. Even for CPU. You can write a program that doesn’t use MMX nor SSE nor AVX nor FMA, it will show 100% CPU usage if you multi-thread to feed all cores, but it will use 30% of the CPU at most, as most of it’s transistors are dedicated to those specialized instructions. And the heat will really well show that only a little subset of the transistors are working, being in this case a much better indicator of the usage than the windows task manager. It’s not about useful or not useful work only, it’s also that some have no work at all. But Windows doesn’t query each transistors to know if it’s doing something or not.

1 Like