Why are cycles scene build times going up with newer versions?

I have asked about this before and have not gotten an answer yet. Is anyone noticing how pre-render build times are rocketing up since 2.81?
Change log of 2.82 in windows said there are multithreading optimizations to reduce build times but all my scenes (and blenchmark scenes) take 3-4 seconds more to build… fast forward to 2.83 alpha and it seems there will be another 3-4 sec penalty over 2.82, so about +7 seconds ober 2.81…
It is already painful to see you dont get any tangible improvement in build times if you have more than 4 cores and now this. Anyone knows why it happens/when we can expect faster build times and utilizing all cores? Is this a strategy to drop times in later versions and claim an improvement?:stuck_out_tongue_winking_eye:

My benchmarks are not showing scene build times going up. Please provide example .blend files and system specs, we can’t guess the specific setup you have.

I am testing on 2 platforms, both Windows 10, 8 core xeons (e5-2689 and e5-2670), both 64gb of ram and rendering on both vega 56 gpus and cpus, the results don’t change between gpu and cpu.
One test scene for example is the barber shop, where I jumped from 42-43 seconds in 2.81 to 46-47 in 2.82 and about 50 seconds in 2.83 alpha… Similar delays happen on all relatively heavy scenes. Small ones like the bmw one or classroom are hit with 1-2 seconds at most but anything that takes 10s or upwards gets the bigger bump.
Just tested it on a ryzen 5 3500u laptop now and the same trend can be observed.

Had some time on my hands, this is somewhat of a polluted dev box so benchmarks tend to be somewhat unreliable, so the numbers are ‘best of 3’

Loading / Preprocessing of the barber shop

2.79 2.80 2.81 2.82 2.83
Load 0.46 10.07 10.17 11.53 11.24
Pre-Process 58.80 36.65 35.33 35.11 36.59

The load time is taken as the first timestamped line in the render log generally something like

Fra:1 Mem:3739.97M (0.00M, Peak 3739.98M) | Time:00:11.53 | Mem:0.00M, Peak:0.00M | Scene, RenderLayer | Synchronizing object | Plane.001

The Preprocess time is taken as the time of this line
Fra:1 Mem:5014.66M (0.00M, Peak 5456.07M) | Time:00:46.64 | Mem:2113.69M, Peak:2113.69M | Scene, RenderLayer | Rendered 0/2 Tiles

Minus the load time.

for 2.83 todays buildbot build was used ( 42012493a8e1 )

There is some variation in the preprocess times, i am unable to see the trend you are seeing.

1 Like

Hmm, interesting numbers. Is this windows or linux?
Is there any other difference factor between these versions, like slight changes in file format or other stuff that might be read differently and contribute to delays?
I repeated some renders and the delay is definitely there for me, all these are relatively high poly scenes, with reflection and transparency but no hair.

This was on windows using a cli render with this render.bat batch file

blender --factory-startup -noaudio -b "%1" -o "//%~n1" -F JPEG -x 1 -f 1

Best i can suggest is to repeat the experiment

2 Likes

Ok, after performing some further tests I think the 2.81-2.82 issue might be architecture-related; there is an increase in build time only in some older sandy bridge/ivy bridge cpus.
Times are stable for a couple of ryzens I could tes in 2.81 and 2.82, 2.83 alpha is 2-3 seconds slower consistently… Looking forward to that big multithreaded optimization :smiley:

My test were done on ivy

Repeated tests again, this time also with different memory timings and frequencies, bandwidth was again not a factor… This time though the latest 2.83 alpha had some improvements, sometimes scenes built faster than in 2.82a,.but 2.81 is still the quickest…
I was thinking, are there any AVX2 build optimizations in 2.82 and up? Because that might explain these results; Ivy and up have AVX2 or 512, while Sandy has only AVX.

This time though the latest 2.83 alpha had some improvements, sometimes scenes built faster than in 2.82a,.but 2.81 is still the quickest…

With this being the only new information, there really isn’t anything for me to look into at this point.

If there’s any significant difference with a specific scene i’d be happy to look at it but as it stands now all numbers i have are within a second or so of each other.