CPU 100% when CUDA GPU-only rendering

When rendering with Cycles using GPU with only GPUs (no CPU) on Windows 10 or Linux (Ubunutu) I get 100% CPU utilization with four GPUs on an Intel H110 board with an i5 6502P quad core CPU.
Specifically it’s 37% with 1 GPU, 65% with 2, 90% with 3, and 100% at four and above.

Strangely, on a dual Xeon Platinum system it’s about 12% at max with four GPUs and doesn’t go up much from there even with 7 GPUs. Obviously the dual Xeon is a lot faster than the quad core, but in benchmarks the two Xeons are only about 4 times as fast as the single i5. On the i5, it’s using more than twice the CPU power of the Xeons.

Is this an issue with Cycles or potentially something with consumer chipsets/processors?

Sounds like your scene is too big to fit into VRAM, so it’s going out of core which means the cpu is busy sending bits of information to the gpu on demand. Try turning on simplify and limiting the render time texture size to something small and see if you get 100% gpu usage with little cpu usage. Make sure you have lock interface enabled in the render menu at the top too, that frees up gpu resources by making the viewport inactive during rendering.

@3di During this testing I used the Classroom demo file. Looking at GPU-z sensors or nvidia-smi, the scene uses about 1.2GB of VRAM when rendering. All of the cards were 3GB or 6GB. I’ll double check with some of the tips you mentioned to see if that makes a difference.

Hi, Cycles does not idle CPU during render on GPU.
There was a patch included in Blender but it was reverted, was not working on some older GPU, iirc. I cant find it at moment.
I ask @brecht some days ago and it is on his todo list but not high priority.
No idea why it work better with Xeon CPU.

Cheers, mib

Thanks mib2berlin. The high CPU load doesn’t seem right to me, so I’m suspecting an issue with Blender. When I have a chance I’ll give Redshift a try and see how it handles things, but that might not be that informative. Maybe I’ll try on another consumer platform like Ryzen to see if there’s an issue there as well.

I’m fortunate to mostly have powerful and current hardware, but the Blender community is meant for everyone - that’s one of the most amazing things about it. That means a lot of users on older hardware, though admittedly many won’t have multi-GPU. So, it’s probably an edge case that’s not a high priority, but I’m sure it affects some people.

Just checked on 2.9 and with gpu only rendering the cpu stays at 17% whilst the gpu is at 100%

Hi, checked again, too and it use 25-35% of my i5, it is more than one core maxed out on:
Opensuse Tumbleweed x86_64
I.ntel i5 3570K 16 GB RAM
GTX 760 4 GB /Display card
Driver 440.82
@C3l3x, I would call it a bug. :slight_smile:

Edit: Testing on 2.90.0 Alpha

Thanks for checking that. I opened a bug against Blender for this (T77248). This probably doesn’t affect a lot of people, but hopefully it’s an easy fix for those of us who cobble together older parts to speed up our work.

2 Likes

Update: There is a bug in Blender that causes this issue. They are calling it a “known limitation,” even though I can’t find any documentation of such a limitation. They plan to fix it at an unknown date. It appears to be have been open for 6 years now, so I would guess it would never get fixed at this point, which is very disappointing. Maybe if I donate more to the Blender Foundation?

1 Like

Thank you for the knowledge about VRAM!

I encountered CPU usage 100% but GPU was below 10% while rendering 360 stereo top-bottom with Cycles
However my settings are set as CUDA and check GPU only.

But in two cases it will work perfectly using gpu render
1.When I uncheck Stereoscopy and even crank up Sample from 512 to 2048 (resolution as 3840x1920)
It renders in GPU as expect (GPU 100% and cpu about 20%)
2.Stay render in 360 stereo top-bottom but shrink resolution from 3840x1920 to 1920x960

So as a newbie in blender my assumtion for these situation are
1.Cycles will automatically switch to CPU render when the scene is too big to fit in VRAM and this is decided before start rendering?

2.Cycles will use system memory when it runs out of VRAM.
but this will only happen when it was decided to use gpu render in the firstplace?

sorry for my bad english

Jamie

1 Like