Announcement

Collapse
No announcement yet.

Adaptive bucket size

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Adaptive bucket size

    The bucket size is sometimes an undervalued factor in render times. The more 'seems' need to be calculated the slower it gets, but with multiple cores or DR you have a better utilization of each core, so it's a matter of finding a sweet-spot.
    The problem I have with DR (as I type I'm rendering with 12 cores/buckets and I'm sure people use a lot more) is that sometimes a single core on one of the machines is stuck rendering the last bucket and all the other cores are idle, waiting. So my question is:

    Would it be possible to have an adaptive render region size?


    The render would start with a large render region and as it would approach a number of render buckets left to compute, equal to the number of cores/processes used, it would subdivide the remaining buckets, to minimize the effect of idle cores waiting for the last render region to be calculated.

    It's not a huge problem, but could make the render quicker by a couple of percent. I think making the render region allocation "more intelligent" would be especially beneficial in cases where one has a lot of processes running (using DR).

    Below is a simplified case of an adaptive region allocation with 4 cores.

    Attached Files

  • #2
    This has been requested before but it can't hurt to ask again.

    Originally posted by Daytona View Post
    ...I think making the render region allocation "more intelligent" would be especially beneficial...
    What about a bucket order based on the slowest buckets from the previous render, these could render first on the next frame/render to help minimise the issue. The order would need to take camera movement into accounty to determine where these buckets are likely to be on the next frame and I see it being used in conjunction with an adaptive bucket size.
    Set V-Ray class properties en masse with the VMC script
    Follow me for script updates: @ollyspolys

    Comment


    • #3
      Sure ... I'm certain there are many ways in which one could improve the performance by just smarter bucket assignment and dynamic size adjustments.

      I think that's not that hard to implement as well.

      Comment


      • #4
        We played with dynamic bucket resizing as in the first post; in many cases it works fine. There are some cases where it fails - for example, if a large bucket hits a difficult part of the scene early on, and the rest complete the scene before that bucket finishes. One solution would be, in such cases to cancel the large bucket and split it into smaller ones. This complicates things somewhat though...

        Best regards,
        Vlado
        I only act like I know everything, Rogers.

        Comment


        • #5
          Originally posted by vlado View Post
          There are some cases where it fails - for example, if a large bucket hits a difficult part of the scene early on, and the rest complete the scene before that bucket finishes.
          So could a hybrid of the two ideas be the solution?
          Set V-Ray class properties en masse with the VMC script
          Follow me for script updates: @ollyspolys

          Comment


          • #6
            Seems if you could set the size of the largest bucket size and the smallest, then you could control its adaptability, like other vray settings...which would be nice.
            David M. Foster

            Comment

            Working...
            X