How to correctly assign CPU sets with Hyperthreading on?

Started by toby23, May 22, 2023, 05:52:10 AM

Previous topic - Next topic


Could someone please let me know how to correctly assign CPU Sets in Process Lasso with the 5800x3D ?

If I have 8 physical cores and 8 additional threads, should I assign non-MSFS apps to the additional threads (8-15) or only to the physical cores (0-7)?

I'm using DX12, so Microsoft Flight Simulator 2020 is able to utilise all the cores, but it favours the main CPU cores, not the threads.

I would like to keep MSFS on the main cores and don't know if I can safely assign everything else to the virtual cores or not? Is that even the correct way to do it?


Jeremy Collake

The logical CPU cores (threads) are staggered, so it goes like this:

0,1 = physical CPU core 0
2,3 = physical CPU core 1

So each physical core has 2 threads, and neither is more real than the other.

You could try to keep MSFS on distinct physical CPU cores (so at most one thread of each physical core), but it sounds like it is already doing that, and should. That said, there's a process context menu item 'CPU Affinity / Disable Hyper-Threading', that will stagger the CPU affinity, constraining it to only one thread of each physical core.

You probably don't need to assign other processes specific affinities to keep them out of the way, but you could. I don't have a certain answer as to the *most* optimal setup for your situation.
Software Engineer. Bitsum LLC.


There is a noticeable stutter when the ATC voice loads in or AI aircraft are injected, for example, and I was hoping that by separating these apps from the MSFS app by placing them on different cores, might help.

If I understood you correctly, Cores 0, 2, 4, 6, 8, 10, 12 and 14 are the 8 'physical' cores?

Thank you for your help and for explaining how it works.