Strange GPU tile size behaviour in cycles

Here’s a question thats more curiosity than anything else.

In the usual “4 easy ways to speed up cycles” guide that gets used a lot, it shows a chart of CPU vs GPU tile sizes, with the CPU preferring small tiles and the GPU preferring large ones.

I did my own test today, as I have recently added a second GPU to my system and I was just playing around with options…

32x32 took 14m40s
256x256 took 17m20s

This is all pure GPUs, no CPU being used.

Seems totally backwards, which confused me. Have things changed? Or do I have some odd settings that I’m not using correctly? I’m pretty new to rendering in blender so its very possible I’m doing something inefficiently.

Can you try the sam with only gpu activated like this for example
image

If you use only gpu then you can use the Auto tile settings addon

All of my tests were done with only the GPU selected. Or rather, both GPUs, as I was testing with two running. But there was no CPU involved.

Interesting, will the Auto Tile Size cause problems if I run both GPU & CPU at the same time? I usually just use my GPUs so its probably not an issue, just curious.

What is your GPU and CPU? As far as I know this happens if your CPU is more powerful than your GPU for rendering.

The small tile size issue with GPU rendering was solved ages ago. The chart you are referring to is well out of date.

I find that 32x32 gives me the best performance on GPU, has done for a number of releases.

Before the fix, 256x256 was the best for GPU.

That’s not “so” simple, keep in mind that if you want a real accurate measurement, you should do it on multiple differents scenes.


Even if GPU use to be faster on big tiles, there are so geometrical reasons why sometimes big tiles are worse. I just made a Schema on Gimp to explain :
Let say you have a scene with sky background (blue) and very complex ground (brown) :
tile_background
Basically, what happens is, Sky is VERY FAST, and ground is VERY SLOW (let’s say high density, complex shaders)


If you use this tilling :
tile_big
What happens is on EACH tile (100%), there is some heavy ground compute and final render is quite long


Whereas if you use just a tinier tilling :
tile_little
You will have 3 tiles (33.3%) on Sky being computed instantly, meaning you will be basically almost 33% faster


I’m not saying that you are always in this case Sky / Ground of course. I’m just pointing this fact that on the image there are some complexe parts, and other less complex (as you can see all tiles compute at different speed) meaning that tile size is important for this geometrical compute aspect :stuck_out_tongue:

See you :slight_smile: ++
Tricotou

Thanks all :slight_smile: makes sense that its no longer true, ill stick to 32x32