For others interested to configure CPUsets (without Processor Lasso) this is a useful tool:
ReservedCpuSets is an extension of the SetRTCores feature of WindowsIoT CSP - amitxv/ReservedCpuSets
github.com
no work will be scheduled to the cores at all, so you need to set processor affinity to them manually (or using Processor Lasso, script, etc) to put the workload on the cores you've freed.
Then for interrupt affinity this is is the easiest tool to use:
I just tried to create a better version of the "Interrupt Affinity Policy" and "MSI Mode" Tool - spddl/GoInterruptPolicy
github.com
Then use PowerShell for network adapters RSS affinity:
Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.
learn.microsoft.com
It's a lot of work, but gives you a big advantage for gaming workloads on the 7950X3D over the 7800X3D, especially with NVIDIA graphics cards. I don't know if there's much difference with PyPrime though.
Using CPUsets is like shooting yourself in the foot
whenever you need to assign an app all 32 cores you will have to use manual affinity, or a script, or a secondary app (process lasso)
for example it's a not a problem when you test pyprime because it will use only 1 core, but if you start to bench ycruncher or cinebench it will run on half the cores, unless you do additional and more complicate steps.
The same apply on every program that makes use of all the available cores in your system.
Affinity is another matter of discussion, that is usefull, you configure it 1 time and you can forget it, but the way you assign interrupts is different
gpu is simple, open GoInterruptPolicy, find the gpu and set your preferred core, ez
mouse almost the same, use the same app but don't assign the affinity to the device or it won't work: affinity must be set to the entire xHCI controller where it's connected (better have "only" the mouse connected on that entire controller, must play a bit with mb usb ports to find the optimal setup)
network adapter will ignore entirely what you set with GoInterruptPolicy, you need to use Set-NetAdapterRss commands to spread the RSS queues as you wish (number of RSS threads, base core, ecc), check the indirection table and double check with latency mon while you stress test the lan to see which cores are getting used.