Disable SMT with Threadripper Pro on ASUS WS WRX80E-SAGE?

Joined
Nov 1, 2014
Messages
5
Hi, does anyone know how to disable Simultaneous Multithreading (SMT), AMD's equivalent of HyperThreading, on the ASUS WS WRX80E-SAGE board? No mention of it in the manual or in Google searches. My software is not NUMA-aware and I think performance would benefit from disabling SMT.
 
Is there an Extreme Tweaker menu tab and SMT setting there? ASUS's manuals seem to only speak of the Intel based BIOS settings.
 
This is where it's at on their server boards: AMD CBS-> CPU Common Options-> Performance-> CCD/Core/Thread Enablement ->Accept-> SMT control->Disabled
 
This is where it's at on their server boards: AMD CBS-> CPU Common Options-> Performance-> CCD/Core/Thread Enablement ->Accept-> SMT control->Disabled
Hey, thanks for the responses guys. Unfortunately, when I follow that sequence and get to "Performance", there are no further options (see attached screenshot). The previous level also doesn't seem to offer any other useful settings!
 

Attachments

  • signal-2021-03-15-185135.jpeg
    signal-2021-03-15-185135.jpeg
    335.5 KB · Views: 0
  • signal-2021-03-15-185009.jpeg
    signal-2021-03-15-185009.jpeg
    250.6 KB · Views: 0
tbh I am *really* annoyed with how shit the BIOS on this $1k motherboard is.
I should have known - any ASUS software is just rushed, low quality, cobbled together trash.
I suspect we will have to wait for BIOS updates to implement basic functionality, which is just ridiculous for a "prosumer" motherboard.

As to your question, if you're running a recent Linux kernel then this should work:
https://serverfault.com/a/1029890
 
Last edited:
I'm sort of confused why you think disabling SMT has anything to do with NUMA, it's not really going to help performance unless the application you're running is single threaded.

If you're worried about NUMA latency, you'll need to affinity the application process to one of the CCX modules that is directly attached to system memory. NUMA can't be disabled without also disabling 50% of the processor cores, and I don't think UEFI allows you to do something like this.

It does suck that your expensive board can't turn SMT off in UEFI setup, but like you said, it's ASUS.
 
Can't you just use Ryzen Master to disable SMT? Or is this a non windows build?
 
NUMA is more about boundaries to memory (nodes)-hence the name Non-Uniform Memory Access. You still have the same issue with more logical cores or the the true core count, since it is more memory controller to cores related. However, the older Threadrippers had latency benchmarking/gaming "issues". I guess that is what you can call them. So, with the later Threadripper they introduced the memory access change from NUMA to UMA that can take place. Here is a quick article of what I mean: https://www.tweaktown.com/guides/8343/look-amds-threadripper-cpu-hardware-modes/index.html

With newer Threadripper this is not much the case. Even the Ryzen has a pseudo-NUMA like arch due to the 4 cores per CCX, and much of the Infinity Fabric tied to it. NUMA awareness is quite particular and is usually noted with programs, enviroments, and such.. Even networking, which is very memory dependent, you will have to set the profile, grouping, and number for RSS queues with NUMA. If you are not doing that then you may not need to worry. A basic assumption this is, but may be a good bar to assume such?

Ah, yes Game Mode....lol. Tom's shit article, fair warning: https://www.tomshardware.com/reviews/amd-ryzen-threadripper-1950x-cpu,5167-2.html
 
Has anyone found a way to disable SMT (Simultaneous Multithreading) on the ASUS WS WRX80E-SAGE board yet?

Why do we want to turn SMT off? On both Windows 10 Pro and Windows 10 Pro for Workstations the Threadripper 3995wx (and probably the 3990x) with SMT on appear (in Task Manager -> Set Affinity) as two processor groups with 64 logical processors in each group. I think that each processor group is really 32 cores. With SMT on each core can run two threads so each group has 64 logical processors. The problem is that Windows 10 Pro and Windows 10 Pro for Workstations can't run one program in both processor groups at the same time. So with SMT on, one program can only use 32 cores at the same time. I'm hoping that with SMT off, these operating systems will only see 64 logical processors and that the processor groups will be gone. Then a program should be able to use all 64 cores. For cpu intensive tasks with SMT on (running two threads on the same core) will only give a slight increase in performance over running a single thread on a core. So it is much more advantageous to run 64 threads on 64 cores than it is to run 64 threads on 32 cores. Also AFAIK these limitations have nothing to do with NUMA nodes. I believe that they are limitations of the operating systems. (I think that Windows uses a 64 bit word as a mask to set the affinity of threads with logical processors.)

Also there were several articles (from AnandTech and others) that suggested that these limitations were only with Windows 10 Pro and that Windows 10 Pro for Workstations or Window 10 Enterprise did not have these limitation. Subsequent articles came out that said Windows 10 Pro, Windows 10 Pro for Workstations and Window 10 Enterprise all have the same limitations. I can confirm that Windows 10 Pro and Windows 10 Pro for Workstations have the same limitations.

I have also read articles that claim that it is possible to write code with a custom scheduler to get around these limitations. If that is true then we could leave SMT on and run up to 128 threads simultaneously on 64 cores. That may be possible with some programing environments. I'm use C# and .NET and I'm pretty sure that there is no easy way to that (because the Thread Class still only has a 64 bit processor affinity mask). However, if anyone can point me to a way to write C# programs that can use all 64 cores, that would be very helpful. Thanks.
 
Have you tried Sever 2019 or Server 2022 to see if they're dong the same thing as the Windows 10 builds?
 
What about a software solution?

ProcessLasso states the following: "Process Lasso has the capability of disabling SMT or Hyper-Threading on a per-process basis. To accomplish this, it uses a staggered CPU affinity so that only distinct physical CPU cores are available to target processes."

They also state: "the Group Extender can help group unaware applications make full use of the CPU (for use when there are more than 64 logical CPU cores, resulting in more than one processor group)."
 
Back
Top