Blender Git Loki
Git Commits -> Revision 517ff40
Revision 517ff40 by Lukas Stockner (master) October 31, 2020, 00:57 (GMT) |
Cycles: Implement tile stealing to improve CPU+GPU rendering performance While Cycles already supports using both CPU and GPU at the same time, there currently is a large problem with it: Since the CPU grabs one tile per thread, at the end of the render the GPU runs out of new work but the CPU still needs quite some time to finish its current times. Having smaller tiles helps somewhat, but especially OpenCL rendering tends to lose performance with smaller tiles. Therefore, this commit adds support for tile stealing: When a GPU device runs out of new tiles, it can signal the CPU to release one of its tiles. This way, at the end of the render, the GPU quickly finishes the remaining tiles instead of having to wait for the CPU. Thanks to AMD for sponsoring this work! Differential Revision: https://developer.blender.org/D9324 |
Commit Details:
Full Hash: 517ff40b124bc9d1324ccf7561a59ac51bf86602
Parent Commit: 523414d
Lines Changed: +124, -5
7 Modified Paths:
/intern/cycles/device/device_cpu.cpp (+5, -0) (Diff)
/intern/cycles/device/device_memory.h (+8, -0) (Diff)
/intern/cycles/device/device_task.h (+1, -0) (Diff)
/intern/cycles/render/buffers.cpp (+1, -0) (Diff)
/intern/cycles/render/buffers.h (+3, -0) (Diff)
/intern/cycles/render/session.cpp (+93, -5) (Diff)
/intern/cycles/render/session.h (+13, -0) (Diff)
/intern/cycles/device/device_memory.h (+8, -0) (Diff)
/intern/cycles/device/device_task.h (+1, -0) (Diff)
/intern/cycles/render/buffers.cpp (+1, -0) (Diff)
/intern/cycles/render/buffers.h (+3, -0) (Diff)
/intern/cycles/render/session.cpp (+93, -5) (Diff)
/intern/cycles/render/session.h (+13, -0) (Diff)