Blender Git Loki
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)
/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)