Blender Git Commit Log

Git Commits -> Revision 289a173

Revision 289a173 by Sergey Sharybin (cycles-x)
July 15, 2021, 09:28 (GMT)
Cycles X: Tweaks to the multi-device balancing

There few ideas with this change:

- Base on equalizing actual time devices are spent rendering, rather
than trying to estimate this via performance-per-unit-work.

This gives better estimate and covergence than the old calculation
on the pabellon.blend.

- Perform first re-balancing based on accumulated statistics after a
short period of time rather than after first sample. This allows to
accumulate a more accurate statistics.

- Perform re-balancing more often even in the headless render when
the balance is not ideal yet.

There are some other changes, like perform rebalancing before path
tracing. This way it seems to be easier to write logic in the
scheduler.

Headless render on RTX 5000 GPU and i9-11900k CPU:
```
new cycles-x
bmw27.blend 14.8814 20.0281
classroom.blend 30.025 26.9318
pabellon.blend 13.1679 12.6133
monster.blend 16.4408 16.3826
barbershop_interior.blend 22.83 19.9255
junkshop.blend 28.7097 27.2703
pvt_flat.blend 24.7341 21.8464
```

F12 render on the same configuration:
```
new cycles-x
bmw27.blend 13.5106 13.9074
classroom.blend 31.3891 31.7155
pabellon.blend 12.3674 49.053
monster.blend 14.4754 13.6263
barbershop_interior.blend 24.8804 23.999
junkshop.blend 29.1324 27.267
pvt_flat.blend 25.6206 22.6731
```

While this helps a lot for the pabellon file, other files seems to
experience a slowdown. It is a bit hard to find a good balance
between how often to perform device load rebalancing and how occupied
to keep the devices.

There is also some measurable deviation in the render times, depending
on previous load and such. For example the pvt_flat.blend deviates
between ~23 and ~27 seconds. Probably something to do with thermal
profile and the fact that we allow to balance quickly and then schedule
a big chunk of work to render.

Not totally satisfied, but seems that overall this is a better
heuristic.

Differential Revision: https://developer.blender.org/D11897

Commit Details:

Full Hash: 289a173d938f26114a837bb34742c4ee6792d0ff
Parent Commit: ed13a2b
Lines Changed: +54, -70

4 Modified Paths:

/intern/cycles/integrator/path_trace.cpp (+2, -1) (Diff)
/intern/cycles/integrator/render_scheduler.cpp (+18, -0) (Diff)
/intern/cycles/integrator/render_scheduler.h (+2, -0) (Diff)
/intern/cycles/integrator/work_balancer.cpp (+32, -69) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021