Bucket sizes - how to determin optimal size?
1456 5 1- Soothsayer
- Member
- 862 posts
- Joined: Oct. 2008
- Offline
- jsmack
- Member
- 7816 posts
- Joined: Sept. 2011
- Offline
- Soothsayer
- Member
- 862 posts
- Joined: Oct. 2008
- Offline
- jsmack
- Member
- 7816 posts
- Joined: Sept. 2011
- Offline
Soothsayerjsmack
never have I ever changed bucket size
I'm working on a scene where an image rendered with 32 pixel bucket has nearly double the render time of a 16 pixel bucket. Plenty of ram left on both settings, so I'm wondering what's going on.
Is that with Mantra? I experimented with bucket size with mantra and never saw a pattern. some scenes were faster with bigger buckets others slower--so I left at default. What render time spread are you seeing at 2x, 5 seconds vs 10 seconds or 1 hour vs 2 hours?
- Soothsayer
- Member
- 862 posts
- Joined: Oct. 2008
- Offline
After conducting several tests, I have some insights into the rendering process.
It seems that each bucket corresponds to a CPU core, and as individual buckets complete their rendering tasks, the overall CPU utilization decreases. If there is a single remaining bucket with a render intensive element in it, you have to wait for that specific core to finish the task. Consequently, if your bucket is large and contains a particularly slow element, it leads to idle time.
The first graph below illustrates the render times against varying bucket sizes for an image containing textures, surfaces, and both emissive and non-emissive geometry.
In contrast, the second graph represents the same image rendered at a higher resolution. In this case, the render times are much more closely clustered, suggesting a more efficient process.
The second graph shows the same image but at larger resolution. The render times are much closer together in that case.
I wonder if this means the process could be automated, either by calculating an optimal bucket size by analyzing coverage of the image vs cores at the beginning of a render of by adjusting it dynamically during the render process.
It seems that each bucket corresponds to a CPU core, and as individual buckets complete their rendering tasks, the overall CPU utilization decreases. If there is a single remaining bucket with a render intensive element in it, you have to wait for that specific core to finish the task. Consequently, if your bucket is large and contains a particularly slow element, it leads to idle time.
The first graph below illustrates the render times against varying bucket sizes for an image containing textures, surfaces, and both emissive and non-emissive geometry.
In contrast, the second graph represents the same image rendered at a higher resolution. In this case, the render times are much more closely clustered, suggesting a more efficient process.
The second graph shows the same image but at larger resolution. The render times are much closer together in that case.
I wonder if this means the process could be automated, either by calculating an optimal bucket size by analyzing coverage of the image vs cores at the beginning of a render of by adjusting it dynamically during the render process.
Edited by Soothsayer - April 21, 2023 07:45:08
--
Jobless
Jobless
- daviddeacon
- Member
- 165 posts
- Joined: Jan. 2019
- Offline
The issue is even worse on high-core count machines that often have lower clock speeds. VRay solved this issue with dynamic bucket splitting back in 2014! I don't know any other renderer that does this. Maybe if they have a patent on the technique.
https://youtu.be/kq7PG35MM-8?t=29 [youtu.be]
They also updated it not so long ago, where buckets that have already started rendering can be split if idle cores become available.
https://www.chaos.com/blog/how-adaptive-bucket-splitting-speeds-up-v-rays-rendering [www.chaos.com]
https://www.youtube.com/watch?v=O05N7hnuSjM [www.youtube.com]
https://youtu.be/kq7PG35MM-8?t=29 [youtu.be]
They also updated it not so long ago, where buckets that have already started rendering can be split if idle cores become available.
https://www.chaos.com/blog/how-adaptive-bucket-splitting-speeds-up-v-rays-rendering [www.chaos.com]
https://www.youtube.com/watch?v=O05N7hnuSjM [www.youtube.com]
Edited by daviddeacon - April 21, 2023 08:15:43
-
- Quick Links