Jump to content

Is My Bottleneck Hypothesis Correct? Fusion 360 Slow When Working on Large Parametric Models.

This is going to be a fun one because the weeds are deep here.

 

My problem is that I have a large parametric 3D Model in Fusion 360 and it is getting unreasonably slow. When using a parametric model in Fusion the model has to recalculate the sizes and positions of everything almost every time you make a change. For my model, this can take anywhere from 1 min to 5 min but it has to be done almost every 30 seconds in my standard workflow. When diagnosing this issue I ran into some weird things when trying to find my bottleneck and it is this bottleneck that I want to get into.

 

Before I get into the hardware stuff though I want to make sure that I mention a few things that I know will come up if I don't. To start, all of my drivers are up to date, Fusion is up to date and Windows is up to date. In addition, I read the recent post from Autodesk where they talk about performance issues in Fusion 360 and show some settings that you can use to make Fusion run better (refer to link #1). There is also an older post from the Autodesk forum where it is explained that Fusion 360 does support multi-threading however what calculations it can do when is limited by how you make your model 9Refer to Link #2). I also included another link talking about if and how the CPU is a bottleneck in Fusion 360 to provide a bit more background about this issue (Refer to Link #3). Now let's get into it.

 

Observations:

When Fusion needs to recompute the model it freezes it's self and may even say that it is not responding. This is when I look at Task Manager and I see that I have lots of RAM left, my GPU is hardly working, my C drive is hardly working and Fusion 360 is barely using any network capacity. What does seem to be working is my CPU, though maybe not in the way that you may expect. In this circumstance utilization of my CPU by Fusion Jumps from the  2-5% that it uses at idle up to 15-25%. In addition, the clock speed jumps from my base clock speed to my max boost clock speed. With this info, you may expect that when you select "Show logical processors" on the CPU graph in the task manager you will see one core working really hard while the rest just idle along but this is not what happens. What does happen is that one core is doing a bit more work than the others but the others are not far behind. To me, this is odd behavior because the only thing that is working on this compute appears to be the CPU as the utilizing goes up by about 20% and the clock speed shoots up to max however it isn't fully utilizing one thread and it isn't fully utilizing all of my threads. So my question is, if this compute is being done on my CPU, why is it not fully utilizing its single-core capabilities or its multi-core capabilities?

 

Everything from this point forward is my hypothesis as somebody who does not have any real knowledge about this kind of stuff and I want to know if I am right or if and how I am wrong about what may be happening here.

 

Hypothesis:

 

Every time Fusion 360 has to recalculate something, those calculations must be done in a specific order. Some calculations can be done at the same time as others but it can only do so many before it moves on to the next set of calculations. Before it moves on to the next set of calculations it has to wait for the longest calculation to finish, and then the computer must "Sync" the data which in this case means that it has to check to make sure that it has all of the data that it needs by searching the memory or cache to make sure it is there. This must happen because each core of the CPU is working independently so the computer must check to make sure that all of the calculations are done before moving on. This means that the CPU is doing a lot of waiting itself. Effectively this means that these kinds of calculations can only go as fast as it takes to do the slowest compute per sync plus the amount of time it takes to sync the data and that must be repeated every time the computer has to sync the calculations. This is why we see the clock speed go to max but the utilization does not go past 20% or so. The CPU is calculating as fast as it can but it is also waiting for data to start the next calculation. 

 

Recommendations: 

 

From what I gather 1000 things can impact the speed of these calculations but to improve speed the most there are a few standouts.

  • Faster CPUs: Higher clock speeds will decrease the time it takes to finish the longest calculation per sync. More cores are handy in many ways but do not impact this situation.
  • Faster RAM: Faster RAM would decrease the amount of time it takes to sync the calculations because the data can be accessed more quickly.
  • Faster hard drives: A faster hard drive would possibly decrease the sync time in the case that data from these calculations gets stored on the hard drive itself.
  • Possibly CPUs with more onboard cache: CPUs have a small amount of memory on board called cache that it can search extremely quickly due to its physical proximity to the CPU cores, more cache means a higher chance that data gets stored in the cache where it can be found much quicker then if it were stored on the RAM or hard drive.

I look forward to you guys tearing apart my definitely simplified and probably wrong understanding of the situation.

 

References:

https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/How-to-optimize-settings-in-Fusion-360-for-performance.html

https://forums.autodesk.com/t5/fusion-design-validate-document/yellow-warning-on-component-with-no-features-slow-recalc/m-p/6624514#M77275

https://forums.autodesk.com/t5/fusion-design-validate-document/cpu-is-the-bottleneck/td-p/6827520

Link to comment
Share on other sites

Link to post
Share on other sites

I have witnessed this behavior on 4 different machines, running on two different networks and various versions of Windows 10 and 11. Three machines include my laptop at work as well as my two co-workers' laptops and of the three I have the least powerful one. The fourth is my home build which is by far the most powerful.

 

My Work laptop is a 7th gen Lenovo x1 Carbon with the following specs:

CPU: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz   2.30 GHz

RAM: 16GB @ 2133MHz

GPU: Intel UHD Graphics

Storage: 512GB WD pc sn730 M.2

Unknown network details.

 

My Home Desktop is an Intel Nuc 11 Extreme with the following specs:

CPU: i9-11900KB

RAM: 64GB @ 3200 MHz

GPU: RX 6700xt 12GB

Storage: WD BLACK SN850 NVMe M.2 2280 1TB PCI-Express 4.0 x4 3D NAND

600Mbps Fiber optic connected by LAN to a 2.5gb connection

 

My co-workers have more powerful Lenovo laptops than me and see the same issues. this issue has persisted for a long time and over many versions of Windows. at work, I am running Windows 11 Enterprise and at home, I am running Windows 11 Pro.

 

My home Desktop is much faster than my work laptop for these computes but I see very similar CPU utilization patterns across all devices.

Link to comment
Share on other sites

Link to post
Share on other sites

Well I can't say I can see a bottleneck anywhere, however if the model is large enough.... The 11900KB is a rehashed 11980HK and probably not the best bet for larger models. 

Link to comment
Share on other sites

Link to post
Share on other sites

Sure, there are 100 CPUs that may be better but my question is about how processors manage resources during a computation of this nature.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×