Important Render settings for GTX Nvidia Users! Render MUCH FASTER!

So i have just found out that i’ve been rendering much slower than need be and after a quick settings change seem to have got a 10x performance increase in Blender 3.4 (latest release).

This is what happened incase anybody else wants to check. And it appears that its probably just some sort of bug that stops the GPU from rendering properly without the correct settings.

Previously I had my system settings as - CUDA - with Ryzen 1700X and GTX 1070 ticked.
When using GPU render, my render time was 5:22.

I changed my settings to OPTIX and only the GTX 1070 ticked… Then wait for the GPU kernels to be built, and exit out and re-render. The new render took just 22 seconds.

Clearly its not a free 10X performance increase but its apparently a bug where with the previous settings even though the GPU was ticked and GPU render was selected, it was not using the GPU efficiently or properly.

So if anyone uses those old settings because they dont have an RTX card, then try these settings with a render test.

1 Like

Unless something has significantly changed with Blender 3.4, your problem with the slow render speed was having the CPU selected as well.

In petty much every case, the GPU will be much faster and using both CPU and GPU just slows the GPU down.

Add to that, and given you have a 1070, I’d likely select CUDA, as without the RT cores, OptiX will be slower on older cards, at least it was on all the tests I did.

6 Likes

Well, when i read the title, i expected it would be about optix. It was 2x faster on my 2060. That may depend on the scene

This is absolutely the case. Unless you have a very powerful cpu and a relatively weak gpu, gpu+cpu will almost always render slower than gpu alone.

2 Likes

No it was not this… in fact i tried selecting both cpu and gpu in optix and got an even faster render time… The Ryzen 1700X and GTX 1070 are a good pair.
I put it down to just some compilation issue with the upgrade to 3.4 and switching to optix probably enabled the GPU properly.

Q: https://devtalk.blender.org/t/cycles-feedback/18598/1021
A: https://devtalk.blender.org/t/cycles-feedback/18598/1022

Regardless of the kernel compile time, does the time difference between OptiX and Cuda occur mainly while the scene is being prepared and before you start to see the render on screen? Or is the time difference also counting from the moment you start to see the render on the screen?

Edit:
Wait

What are the render times with GPU(OptiX)+CPU and GPU(CUDA) only?

Here is exactly whats happening… hopefully this will shed light on it.
CUDA render 5min 21 sec.


Notice on the CUDA render my GPU utilization was at most 20% and mostly 10% or less as if it was not being used.

Now i switch to just the GPU ticked and OPTIX.


OPTIX render time 31 seconds.

Ok i have determined the problem and it’s caused by having both CPU and GPU ticked… This causes a drastic slowdown on my system. It was never the case before, it used to do hybrid CPU+GPU render well.
It has nothing to do with OPTIX or CUDA in fact i just tried CUDA and it was faster on my GTX card as expected, but i had to select ONLY THE GPU in the system preferences tick boxes.

2 Likes

Correct, exactly as I stated. The difference in render of those two screen shots, wasn’t CUDA vs Optix, it was the fact you had the CPU selected as well as the GPU for the CUDA test.

That forced the GPU to wait a long time for the CPU, rather then just doing it all itself.

The before would have been a year+ ago, when the tile render setting was set to like 32 or 64 pixels and hence the CPU and the GPU all worked on a little square per thread at the same time. So a 8 thread CPU and GPU, means 9 tiles render simultaneously. Meaning that the CPU wasn’t getting as much in the way.

Tho even then, as Sterling said, that mostly only made sense if one had a very fast CPU and a fairly weak GPU, otherwise by the near end of the render, one is left waiting on the CPU to complete its number of small tiles, which if it wasn’t selected, chances are the GPU could have done basically just as fast.

Meaning you end up using more power (GPU and CPU) to get a render in the same amount of time that the GPU could do alone.

The moment you add any half decent GPU, you just end up using more power and taking longer to render with both GPU+CPU, so totally not worth it.

2 Likes

No the before was just last week… The cpu + gpu rendered well together its called hybrid rendering. The difference in render time here is massive. Cycles is absolutely capable of proper hybrid cpu+gpu rendering on my hardware and would decrase render times slightly compared to using only GTX 1070 alone.

Can you test this using blender 3.2?

cuda gpu only
cuda gpu+cpu
optix gpu only
optix gpu+cpu

GPU+CPU doesn’t reduce render times, though. The CPU bottlenecks the GPU, just GPU will always be faster

we are talking the difference between 5 min 21 secs to 30 secs… It’s a massive difference. Should it be that drastic?

yea i might have to. I will be shocked if i was losing this much performance ever since the switch to no tiled rendering.

For as long as hybrid rendering support has been in, I have never had a situation where it is definitely better, and I have seen dozens of situations where it is definitely worse.

2 Likes

This is known since several Blender versions that CPU+GPU is slower than only GPU in Optix.

2 Likes

That has not been my experience ever since hybrid rendering has been a thing. At best it was around the same time, at worse it was much slower.

Two main reasons are that the GPU always finished first, as it only renders one tile at a time, so the CPU was still rendering the last 8 or 16 or 32, etc tiles at the end and the GPU couldn’t ‘steal’ a tile to make it end faster.

The other problem was that small tile sizes are much better for CPU, while larger tile sizes are better for GPU. So at the end of the day, you could pretty much always render faster with GPU alone, by using a larger tile size, like 512x512 and a lot of the time the GPU would render that size tile just as fast as it took to render one at 64x64.

Reason being is that at such small tile sizes, the GPU was only running at 40-50% or less, so it had a lot more spare capacity to render a larger area at around the same time.

So in a way, your very first post was partly correct, the GPU was being stopped from rendering properly, but it wasn’t a bug, it was the CPU slowing it down or forcing it to spend half its time doing nothing.

A few factors, like overall render image size, etc, but yes, I can easily see how the difference can be that large due to what I said above. The GPU renders a few tiles really fast, but then the last 16 tiles are all left to your CPU, which really isn’t all that fast. So it’s almost like most of the render is just being done by the CPU, as the last 4+ mins of the render the GPU is sitting there doing nothing, since it can’t do anything as the CPU is hogging all the tiles.

I was checking out 3.5 yesterday and first was wondering why my cpu was spiking as well during rendering. Than i noticed it was in hybrid mode, meaning both copy and gpu are used. However, in earlier version we would see multiple render cubes, but i don’t see those with 3.5 in hybrid mode. I’ve tried to google it, I’ve checked their release notes. I can’t find anything related about this change.

I also noticed the render blocks now go from both left up to the right vs the old in a circle from the middle.

Does anyone have info about the hybrid mode and possible changes?

The hybrid tiled render (where cpus and the gpu were handling individual tiles) was removed with Cycle X, the current implementation of the hybrid method is different than the previous version and it does not give you advantage (I think the tile scheduling still needs a lot of work for the hybrid mode speed improvements) In fact the hybrid mode is probably waste of energy and slower most of the time. Use the GPU only with OPTIX enabled if you have a recent GPU.

1 Like

and what would you recommend for a gtx 1070 gpu?