Blender Git Commit Log

Git Commits -> Revision a117a9c

Revision a117a9c by Sergey Sharybin (cycles-x)
May 21, 2021, 18:04 (GMT)
Cycles X: Experiment with tile reschedule heuristic

The idea is to add new tiles for rendering when the GPU starts to feel
hungry (as opposite of previous logic which was adding new work tiles
once the number of paths goes below certain threshold). Some motivation
behind this decision:

- There is only that many threads the GPU has. Having much more active
threads might avoid some scheduling latency, but there is limit to how
much it helps.

- Scheduling new tiles early on might have negative effect on coherency,
so allowing more paths to be terminated before re-scheduling keeps the
wavefront more coherent and efficient to be calculated.

The new code will use maximum number of threads the GPU has.

```
new old(1) cycles-x(2) megakernel(3)
bmw27.blend 10.2251 10.198 10.7419 10.4269
classroom.blend 15.8454 16.7821 17.2907 16.6609
pabellon.blend 9.34677 9.39898 9.61772 9.14966
monster.blend 10.374 10.5923 10.5886 12.0106
barbershop_interior.blend 11.5124 11.777 11.8522 12.5769
junkshop.blend 15.6783 16.085 16.2821 16.5213
pvt_flat.blend 16.3432 16.5704 16.2637 17.4047

[1] cycles-x branch, previous commit e0716af1a4f
(2) cyclex-x branch hash ad81074fab1
(3) cyclex-x branch hash ef6ce4fa8ca (right before disabling megakernel)
```

Commit Details:

Full Hash: a117a9c63c3af774496422f787579a9d8c6f3346
Parent Commit: e0716af
Lines Changed: +58, -3

7 Modified Paths:

/intern/cycles/device/cuda/device_impl.cpp (+26, -0) (Diff)
/intern/cycles/device/cuda/device_impl.h (+7, -0) (Diff)
/intern/cycles/device/cuda/queue.cpp (+13, -1) (Diff)
/intern/cycles/device/cuda/queue.h (+1, -0) (Diff)
/intern/cycles/device/device_queue.h (+5, -0) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+2, -2) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+4, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021