Maniphest T56123

Cycles: Allow variable render tile size for mixed gpu/cpu
Closed, Archived

Assigned To
Lukas Stockner (lukasstockner97)
Authored By
Jonathan Dunlap (jadbox)
Jul 27 2018, 10:13 PM
Tags
  • BF Blender
Subscribers
Brecht Van Lommel (brecht)
Derek Barker (lordodin)
Hernan Schmidt (hyperchango)
Jonathan Dunlap (jadbox)
Juan Gea (juang3d)
Lukas Mandok (Lukas)
Lukas Stockner (lukasstockner97)
Ray Molenkamp (LazyDodo)
Tokens
"Love" token, awarded by lordodin.

Description

Blender now has the ability to render using both CPU and GPU in a single pass (https://developer.blender.org/D2873). However, cpus desire smaller tile sizes (32x32) and gpus prefer larger (256x256). On several machines I've tested, it's often the case that the mixed mode of rendering yields to no benefit to using either pure cpu or gpu (on the same machine) .I'd like to propose a major optimization where the tile size in a single render pass are different between cpu and gpu.

One method could be to divide the rendering area first into larger tiles (like 256x256) that would be optimal for the GPU to render each tile. However, tiles can become owned by the cpu renderer, which would subdivide these large blocks into subdivisions (32x32 or smaller) to process.

Related Objects

Mentioned Here
rB6da6f8d33f65: Cycles: CUDA faster rendering of small tiles, using multiple samples like…

Event Timeline

Jonathan Dunlap (jadbox) created this task.Jul 27 2018, 10:13 PM
Jonathan Dunlap (jadbox) added subscribers: Juan Gea (juang3d), Brecht Van Lommel (brecht).Jul 27 2018, 10:18 PM

cc @Brecht Van Lommel (brecht) @Juan Gea (juang3d) for thoughts

Lukas Stockner (lukasstockner97) changed the task status from Unknown Status to Archived.Jul 27 2018, 10:33 PM
Lukas Stockner (lukasstockner97) claimed this task.
Lukas Stockner (lukasstockner97) added a subscriber: Lukas Stockner (lukasstockner97).

I've looked into this and it's definitely doable. The basic changes are easy, but there are two tricky parts:

  • The render engine API expects uniform tile sizes, that would need to be changed,
  • For denoising a uniform grid is needed. However, it wouldn't be too hard to merge smaller tiles back into large tiles before queueing them for denoising.

That being said, the bugtracker is not the right place for feature requests, so I'll be closing this.

Ray Molenkamp (LazyDodo) added a subscriber: Ray Molenkamp (LazyDodo).EditedJul 27 2018, 10:35 PM

Also the whole 'gpu likes larger tiles' no longer holds true since rB6da6f8d

Jonathan Dunlap (jadbox) added a comment.Jul 27 2018, 10:40 PM
This comment was removed by Jonathan Dunlap (jadbox).
Jonathan Dunlap (jadbox) added a subscriber: Lukas Mandok (Lukas).Jul 27 2018, 10:40 PM

@Lukas Mandok (Lukas) Stockner (lukasstockner97) thanks for the info, where's the right place for this?

Ray Molenkamp (LazyDodo) added a comment.Jul 27 2018, 10:54 PM

The default paste for a feature requests has some links

Hi, while we love to hear these ideas, this is not the right place for them. This website is mainly used to track bug reports and not feature requests. But luckly, there are some other nice solutions you can take, so please use one of the other >forms of communication listed below:

https://rightclickselect.com/
Fun board mailing list: https://lists.blender.org/mailman/listinfo/bf-funboard

Derek Barker (lordodin) awarded a token.Jul 28 2018, 12:02 AM
Derek Barker (lordodin) added a subscriber: Derek Barker (lordodin).
This comment was removed by Derek Barker (lordodin).
Derek Barker (lordodin) added a comment.EditedJul 28 2018, 12:08 AM

It is impossible to stress how important this is. Most people dont understand enabling CPU+GPU uses nearly twice the power to render 3 seconds faster. If this is not optimized blender is solely responsible for global warming xD

In T56123#522465, @Ray Molenkamp (LazyDodo) wrote:

Also the whole 'gpu likes larger tiles' no longer holds true since rB6da6f8d

That is absolutely incorrect. I use blender every day of my life on production scenes and never is a tile size below 196x196 faster than 256x256

When this was initially committed you could see a huge improvement especially at 32x32 it was even faster than rendering at 256x256

Now that is not true at all 256x256 is once again optimal for some reason

Juan Gea (juang3d) added a comment.Nov 28 2018, 2:02 PM

Yes, I noticed it too lately, there is not much of a difference, at least not like before.

Maybe some regression?

Hernan Schmidt (hyperchango) added a subscriber: Hernan Schmidt (hyperchango).Jul 26 2020, 5:02 AM

As of 2.83.3, there is still a single tile size setting for the whole render process, and GPU preference for larger tiles still holds true.

Is the Blender team considering this feature for an upcoming release?