Poor blender performance in sculpting/rendering despite powerful CPU

I noticed that blender only uses a fraction of my CPU and memory when doing things like sculpting and remeshing. I have 64gb ram, a 12 core amd threadripper, 2080ti GPU, multiple m.2 ssd drives. It’s a custom built computer about 2 years old now but cost close to $5k when I had it built. Ive dedicated 40gb to memory in blender system settings. When I watch the task manager CPU, memory, GPU usage while remeshing or sculpting, I notice my CPU utilization sits at around 16% only and meanwhile Blender seems to be struggling with sculpting and remeshing. For comparision, when I run the app Instant Meshes to remesh one of my blender models, I notice it’s quick and I uses 90% or more of the CPU and gets the job done.

How can I force blender to utilize more of my CPU?
Im frustrated because I have a relatively powerful 12 core CPU that is barely being utilized by Blender.

Some tasks in Blender still only use a single core.

2 Likes

As @watercycles wrote.

CPUs with a lot of threads are still a novum on a consumer oriented market, and the majority of software was written for a handful of threads for a loooooooong time. You can blame both AMD and Intel for it. First one for not delivering, and second one for 10 years of quad cores. When a manufacturer can deliver steady improvement by maintaining the design and changing manufacturing node, why bother with code optimization or multithreading? Let the fab do the heavy lifting and enjoy the ride. Your software will run faster without you doing your job! Magic!

Hitting Moore’s Law limitation forced CPU manufacturers to pursuit different ways of gaining performance - that involves a lot of cores. And that is forcing software to adapt, but it is not an easy or trivial task. There will be a lot of growing pains. Not every operation can be parallelized and some tasks (usually synchronization) need to be performed by one thread by design.

You can talk to developers, but they likely will know better what parts of Blender can or cant be multithreaded. And I assume all low hanging fruits in that area are already harvested. But I might be wrong.

Don’t be. Not only Blender have this problem. Software always lags behind hardware.
Do you have zen1, 1+ or 3 Threadripper? I heard first zen iterations had some problems, but I never dived into them. I just waited for zen2/3.

1 Like

Hi.
Sculpting in Blender is multithreaded, but Blender has its own limitations and developers are constantly working to improve performance.
Are you using Multiresolution modifier? Or anyway you specify number of vertices with which you are working

And from what I can see, Voxel remesh is multithreaded. Quad remesh is single thread.

1 Like

I should mention the way I use Blender to get it to work well. The big one is to only use Dyntopo with the Simplify brush. This makes it so I add more detail only where I need it and don’t constantly have Blender trying to recalculate geometry on the fly with dyntopo. With Dyntopo off the rest of the time it is a great sculpting program for me. Other things that could slow it down is modifiers like the Subdivision if it’s up too high.

When I open my Task Manager on a high res mesh I see mostly one core being used.

1 Like

You use some good graphical CPU usage monitor with heavy meshes in Sculpt mode (To the point that you start to get lag while working)

Even up to Blender 2.8 you had a “Threaded Sculpt” option enabled by default, which was simply removed in later versions of Blender assuming that it would always be enabled by default anyway.
https://docs.blender.org/manual/en/2.80/sculpt_paint/sculpting/tool_settings/options.html

Edit:
You said you use Dyntopo. Dyntopo probably makes better threaded use in sculpt-dev experimental branch:

That is what I did. The single thread gets maxed out pretty fast with dyntopo on which is why I keep it off most of the time. Keeping it off gives me better control over which parts of my mesh have more res anyway so it’s a win win. I tried it in 2.93 and 3.1 and it was like this in both so Threaded Sculpt should have been on. The mesh needs to be really heavy with each brush stroke moving a ton of geometry to see the single core getting maxed.

My guess is that not every process involved in dyntopo can be multithreaded, or it would have no benefit being so. Maybe some tasks involved are multi-threaded and some are not. Maybe @joeedh if he has some available time he could tell us a few words about this.