← All ideas
  • Published 26 Feb 2019

Can the CYCLES renderer introduce a dynamic Tiles size like Vray?

Hey guys, my English is not very good, the following content comes from Google Translate. I observed that when using GPU-CUDA rendering in Cycles, simply using the CPU (as shown) is about 20% slower than using the CPU directly. When using GPU rendering alone, the Tiles size must be set to be larger than the CPU rendering. I think, whether the image can be divided into several parts, one part is used alone for CPU rendering, and the other part is used separately for GPU rendering. The Tiles size on both sides is automatically set to the performance optimization size by the system. If one of the CPU or GPU completes the rendering task first, the system automatically redistributes the unfinished portion to both parties until the rendering job is completed (like Vray).

qqq.jpg

85.7%

Development Status: Open

Upvote 6 Downvote 1
maylog
26 Feb 2019

11 Comments

In modern Cycles (2.79 or 2.80 experimental/beta builds) Cycles is now usually fastest for small tile sizes like 16x16 on the GPU, unlike the old 2.79b that liked 256x256 tiles. This dramatically reduces the issue where at the end of the render the GPU is done but you have 8 slow CPU tiles that take a long time to complete.

1
maylog Author

* @gbs * If this is the case, I feel that it is possible to add a dynamic evaluation function to evaluate the computing power of the GPU and CPU, based on which the task is distributed dynamically. After all, this problem is not a big problem when rendering a single frame, but there is a lot of time saved when rendering the animation.

* @maylog * I think even better might be to let the GPU preempt (or simply compete with) the newest CPU tile being rendered.

1
ric.bancone

* @gbs * Totally agree, right now if the GPU computing power is a lot more than the CPU computing power( if I use both) at the end, the GPU will remain idle waiting for the CPU slowly render the last tile.

maylog Author

* @ric.bancone * If it is really "far more than", then the user should manually disable the CPU to participate in the calculation.Or provide an option to let the user decide whether to open the CPU and GPU separately.

bukebeyond

* @gbs * In 2.93 alpha, I still find 256 tiles to be the significantly faster on the GPU Cycles.

Josephbburg

This is already a feature, it's an addon though.

lsscpp

* @Josephbburg * What addon??

Josephbburg

* @ Lsscpp * Blender 2.79 ships with a plugin that changes the tile size to work optimally with render device and resolution.

On second read, it looks like the OP was suggesting that the tile size for different render devices working together should be different. However, I'm pretty sure the performance for small tiles has been improved on GPU so there's no need anymore.

lsscpp

* @Josephbburg * Ah ok, you mean auto tile size, right?

Josephbburg

* @ Lsscpp * Yeah, I think I read the original post wrong. But it's really better to just improve GPU performance on small tile size, which I think is already in master.