Page MenuHome

Cycles X: Schedule work based on occupancy
ClosedPublic

Authored by Sergey Sharybin (sergey) on Sep 20 2021, 3:58 PM.

Details

Summary

Sacrifice refresh interval and increase GPU occupancy, lowering the
final render time.

Lowers Blender 2.80 - Spring demo file form predicted 30min
measured 3 min to render 1/10th of samples) to about 7.5min.

It is still considerably higher than the master branch, which finishes
the file in just below 3 min, but it is already a better results.

The timing is from RTX 5000.

The viewport and CPU rendering should stay unaffected by this change.

Diff Detail

Repository
rB Blender

Event Timeline

Sergey Sharybin (sergey) requested review of this revision.Sep 20 2021, 3:58 PM
Sergey Sharybin (sergey) created this revision.

Support keeping occupancy with adaptive sampling enabled.

Fix oversampling issue.
The clamping of number of samples got lost in the previous update.

Enable occupancy heuristic for the headless mode as well.

Sergey Sharybin (sergey) retitled this revision from WIP: Cycles X: Schedule work based on occupancy to Cycles X: Schedule work based on occupancy.Sep 20 2021, 5:00 PM
Brecht Van Lommel (brecht) accepted this revision.EditedSep 20 2021, 5:37 PM

Tested on a bunch of scenes, I saw no performance regression or excessively large number of samples.

For Spring, it brings down render time down from about 30m to 6m here. Manually reducing tile size to 128 brings that down to about 2m. Blender 2.93 is about 1m15s. So still work to be done, but a huge improvement over the current state.

This revision is now accepted and ready to land.Sep 20 2021, 5:37 PM