<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Performance impact of multiple identical bifrost graphs in Bifrost Forum</title>
    <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11986110#M1046</link>
    <description>You are right! Just updated the post, thanks!</description>
    <pubDate>Wed, 24 May 2023 14:28:55 GMT</pubDate>
    <dc:creator>dominik6UUXE</dc:creator>
    <dc:date>2023-05-24T14:28:55Z</dc:date>
    <item>
      <title>Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11976083#M1044</link>
      <description>&lt;P&gt;EDIT: attached a demo file + performance readings for said file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a reasonably complex bifrost setup that builds geometry procedural. A single graph in an empty scene runs at max fps (my system is capped at 60). With 3 of the same graph in the scene, this drops to ~48fps. With 10 it goes all the way down to ~10fps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The profiler tells me the bif graph evaluation takes 14ms with a single graph and 26ms avg with 3 graphs in the scene. That evaluation happens in parallel so I had assumed the bottleneck was coming from the BifVP_Translation as that looks to be serial evaluation. However, with 10 graphs, each graph execution went up to ~67ms avg. The translation went from taking roughly 15% to 30% which I can attribute to the serial evaluation.&lt;/P&gt;&lt;P&gt;But, I dont understand why the evaluation time of a single graph increases (significantly). Plotting these values gives me a linear increase of evaluation time per bifrost graph for each additional duplicate of that bifrost graph in the scene even though.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I ran more tests after I wrote this first part with similar results. The individual times changes slightly but every batch of tests gave me a linear plot in the end. Referencing the compound on the inside did not make a difference. I tried with 2.3.0.0 and 2.7.1.0. I didnt observe this before when using copies of the same graph several times in the rig although those generally output floats and matrices, not geometry.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you shed some light on whats going on here? Has anyone observed something similar?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;---&lt;/P&gt;&lt;P&gt;Again I can confirm that all evaluations happen in parallel on different threads (according to the profiler).&lt;/P&gt;&lt;P&gt;Below are my performance plots for the demo file. Putting it into a graph gives a linear time increase for each visible graph during the execution.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;bifrostGraphs visible: 1
    fps: ~60 (capped)
    graph execution: 14.39ms
    Backend::execute: 14.39ms
    BifrostGraph::Container::compute_impl: 14.47ms

bifrostGraphs visible: 1,2
    fps: ~45
    graph execution: 18.50ms
    Backend::execute: 18.50ms
    BifrostGraph::Container::compute_impl: 18.58ms

bifrostGraphs visible: 1,2,3,4
    fps: ~31
    graph execution: 25.30ms
    Backend::execute: 25.30ms
    BifrostGraph::Container::compute_impl: 25.42ms

bifrostGraphs visible: 1,2,3,4,5,6,7,8
    fps: ~18.7
    graph execution: 40.25ms
    Backend::execute: 40.25ms
    BifrostGraph::Container::compute_impl: 40.44ms

bifrostGraphs visible: 1,2,3,4,5,6,7,8,9,10,11,12,13
    fps: ~12
    graph execution: 60.35ms
    Backend::execute: 60.35ms
    BifrostGraph::Container::compute_impl: 60.75ms&lt;/LI-CODE&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 May 2023 14:28:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11976083#M1044</guid>
      <dc:creator>dominik6UUXE</dc:creator>
      <dc:date>2023-05-24T14:28:15Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11983644#M1045</link>
      <description>&lt;P&gt;I developer will have a better answer here, but is gonna be tough to get the right answer without seeing what you have on that graph. Maybe try to share a repro graph and see if that happens and share it here.&lt;/P&gt;</description>
      <pubDate>Tue, 23 May 2023 18:57:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11983644#M1045</guid>
      <dc:creator>sepu6</dc:creator>
      <dc:date>2023-05-23T18:57:52Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11986110#M1046</link>
      <description>You are right! Just updated the post, thanks!</description>
      <pubDate>Wed, 24 May 2023 14:28:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11986110#M1046</guid>
      <dc:creator>dominik6UUXE</dc:creator>
      <dc:date>2023-05-24T14:28:55Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11990966#M1047</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/12083682"&gt;@dominik6UUXE&lt;/a&gt; I haven't looked at your scene file, but if you are doing any parallel work in each Bifrost graph I would expect each graph to take linearly longer time to evaluate if one graph is already using up all your cores?&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 09:43:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11990966#M1047</guid>
      <dc:creator>morten.bojsen-hansen</dc:creator>
      <dc:date>2023-05-26T09:43:12Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11991582#M1048</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4555935"&gt;@morten.bojsen-hansen&lt;/a&gt;&amp;nbsp; That would make sense and brings up a good point, I can try to optimize my nodes using for eachs instead of iterates.&lt;/P&gt;&lt;P&gt;In my example, I have an iterate that transforms and merges the geometry inside. In terms of cpu usage, I can only go by what the profiler tells me. Is there any documentation or debug mode to see bifrosts resource usage other than the profiler? (Or a nice write up like there is for parallel evaluation mode &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unless the transform_points is expensive, I fail to see what could be the cause of the performance hit... (In this example, I cranked up the number of points to transform quite a bit to get results faster)&lt;/P&gt;&lt;P&gt;(Adding to that thought, I just replaced the transform_points with an auto loop matrix multiply solution to see if there is some non-essential overhead and I got a 10% performance boost in FPS relative between transform_points and custom, the execution time still increases linearly though).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below are two screenshots of my graph&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dominik6UUXE_0-1685109524323.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1219811i5ED83230939AB599/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dominik6UUXE_0-1685109524323.png" alt="dominik6UUXE_0-1685109524323.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dominik6UUXE_0-1685112030494.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1219823iBEBC7D3591CCBFAF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dominik6UUXE_0-1685112030494.png" alt="dominik6UUXE_0-1685112030494.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;(Edit: updated screenshot)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 14:40:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11991582#M1048</guid>
      <dc:creator>dominik6UUXE</dc:creator>
      <dc:date>2023-05-26T14:40:48Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11991627#M1049</link>
      <description>&lt;P&gt;Lots of the nodes in your graph, including `transform_points`, already process your geometry in parallel so I highly doubt adding more bifrost graphs is going to improve performance, and might even hurt performance a bit since there is more overhead. Can I ask, why you think this setup will improve performance?&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 15:00:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11991627#M1049</guid>
      <dc:creator>morten.bojsen-hansen</dc:creator>
      <dc:date>2023-05-26T15:00:59Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11991699#M1050</link>
      <description>Its what the transform_points does under the hood, I thought, without the additional features like weights, orient/normal blending etc that I am not using. I did just notice internally its doing a matrix*vec4, not matrix*matrix like in my case. transform_points is a reference on my end, so wouldnt that 'unpack' to all the nodes inside?</description>
      <pubDate>Fri, 26 May 2023 15:33:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11991699#M1050</guid>
      <dc:creator>dominik6UUXE</dc:creator>
      <dc:date>2023-05-26T15:33:56Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11992011#M1051</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/12083682"&gt;@dominik6UUXE&lt;/a&gt; No, I mean, why are you splitting up the processing into separate bifrost graphs rather than doing it all in one graph.&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 17:57:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11992011#M1051</guid>
      <dc:creator>morten.bojsen-hansen</dc:creator>
      <dc:date>2023-05-26T17:57:16Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11992352#M1052</link>
      <description>I had set it up as a reuseable component in my scene and hoped Maya's parallel evaluation would be faster than the bifrost graph. I'll restructure it and report back with my findings. Thanks &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;</description>
      <pubDate>Fri, 26 May 2023 20:38:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11992352#M1052</guid>
      <dc:creator>dominik6UUXE</dc:creator>
      <dc:date>2023-05-26T20:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11992360#M1053</link>
      <description>&lt;P&gt;That would be interesting to hear about. I suspect just using Bifrost's parallelism would be the fastest.&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 20:44:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/11992360#M1053</guid>
      <dc:creator>morten.bojsen-hansen</dc:creator>
      <dc:date>2023-05-26T20:44:26Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/12002072#M1054</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4555935"&gt;@morten.bojsen-hansen&lt;/a&gt;&amp;nbsp; You suspect right! I wrapped my example into a for-each and compared the results of having n-dag nodes to n iterations in the for-each (results below).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there any chance we can get Bifrost resources more accurately represented in the Profiler?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, is the time for multiple graphs longer because:&lt;/P&gt;&lt;P&gt;- bifrosts internal parallelization takes up more resources and therefore other graphs wont have those available?&lt;/P&gt;&lt;P&gt;- there is a not insignificant, static, per bifrost dag node overhead (eg converting maya-data into bifrost-data and back again) that now has to happen n times more?&lt;/P&gt;&lt;P&gt;Or maybe both?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;n-graphs: 1
    dags:     60fps (capped)
    for-each: 60fps (capped)

n-graphs: 2
    dags:     60fps (capped)
    for-each: 60fps (capped)

n-graphs: 4
    dags:     48fps
    for-each: 53fps

n-graphs: 8
    dags:     31fps
    for-each: 40fps

n-graphs: 16
    dags:     16fps
    for-each: 26fps&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2023 18:04:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/12002072#M1054</guid>
      <dc:creator>dominik6UUXE</dc:creator>
      <dc:date>2023-05-31T18:04:17Z</dc:date>
    </item>
    <item>
      <title>Re: Performance impact of multiple identical bifrost graphs</title>
      <link>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/12002103#M1055</link>
      <description>&lt;P&gt;&amp;gt; bifrosts internal parallelization takes up more resources and therefore other graphs wont have those available?&lt;BR /&gt;&lt;BR /&gt;I suspect that's it. Bifrost should already scale across all your CPUs/CPU cores. Adding Maya's parallelism on top of that can only clash with this and make things slightly slower. Maya also does caching and, as you said, conversion back-and-forth. I am not an expert on how Maya's parallelism works, however (I mainly work with Bifrost only).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm sure we'll get better tools for debugging Bifrost performance in the future, but probably not in the near future. It's definitely something we want to improve though.&lt;/P&gt;</description>
      <pubDate>Wed, 31 May 2023 18:27:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/bifrost-forum/performance-impact-of-multiple-identical-bifrost-graphs/m-p/12002103#M1055</guid>
      <dc:creator>morten.bojsen-hansen</dc:creator>
      <dc:date>2023-05-31T18:27:38Z</dc:date>
    </item>
  </channel>
</rss>

