GPU+ CPU render denoising strategy.
Often if I use GPU+CPU rendering and OpenImage Denoise the rendering is finished long before all buckets are denoised. The CPUs try to compete with the GPU and basically ignore the denoising. Then the render is finished, the GPU is idle and the CPUs are still busy with denoising. I often render faster with GPU only because then the CPU are only denoising, the whole process being quicker. Configurations with the problem are: RTX3090 + 3970X 32c CPU and intel 8700K + 1080. INSTEAD: The CPUs should denoise more often during rendering, like prioritize denoising finished, noisy buckets if any and only start to render a bucket if almost nothing to denoise is momentarily available.
3 Comments
when you have a pascal or later GPU (1000 generation or newer) you should always use OptiX denois, its way faster. And in the latest blender versions tile stealing should be active, but in my expiriences still wasn't much faster than GPU only. The problem is that the CPU benefits from smal tile sizes (16/32), while the GPU uses bigger once (128/256/512). So combining is allways a compromis betwen the two
* @Fynndus * OptiX denoiser is not "animation safe" / consistent. You're getting a lot more differences with OptiX between very similar frames than with the other two. Sorry, but it isn't a real option most of the time.
* @vangel * It only becomes a bad option when rendering at low sample rates... 1K+ samples should yield a consistent result in most circumstances.
As for your proposal, this would require some overhead that could slow things down (not allot, but still more complex nonetheless.) And it would be more beneficial anyways to only render with GPU. As @Fynndus pointed out, both the CPU and GPU don't use their most efficient render tile sizes; It's always a compromise between them which ultimately slows the entire render down.