PSA - Disabling SMT (Hyperthreading) on AMD 5950X Improved Performance

Just sharing the surprise that disabling Hyperthreading (or SMT as AMD calls it) allowed me to run at a relatively stable 256 samples under heavy load (lots of Kontakt plugiins, Guitar Rigs, analog synths etc).

I knew this was recommended years ago but didn’t think it still applied on a cpu as new as an AMD 5950x! Anyone else experimented with this, or maybe you don’t need it on your system? Would love to hear.

256 samples?

1 Like

Fixed!

1 Like

I suspect, there’s no single “best” way, but it depends on the particulars of one’s use case - possibly even different from project to project.

So your observation is correct for the project(s) you tested, but may not apply to other projects.

When the limiting bottleneck in a particular project is CPU, then allowing a CPU core to single thread rather than splitting its power between 2 threads seems to make sense.

But when none of the tracks in a project are hitting CPU bottlenecks, and there’s lots of tracks, then allowing more threads can be advantageous.

As a general rule of thumb, fx processing that is in series demands more of a CPU. Since Guitar Rig chains fx (mostly) in series, some such chains can get very CPU heavy. Especially if there’s one or more granular fx in the chain.

A Kontakt (or HALion or Omnisphere) instance can also get CPU heavy, if it’s a multi and/or with liberal use of builtin FX.

A single instrument Kontakt without FX tends to be much lighter on CPU, and if one has a lot of those tracks, then using dual threads per CPU often ends up being the better strategy.

Side note: granular synthesis and/or fx is often very taxing on a CPU. Some of the more spectacular ethereal Guitar Rig patches are like that.

1 Like

as mentioned

far too many variables in your example to be specific, although once you get to 256 samples buffer size I would have expected SMT “ON” to have better performance - as the inherent latency/overhead of SMT will be swamped/masked by the buffer.

A couple of extra thoughts not mentioned in @Nico5 's post

Kontakt has a setting for CPU multi threading in the preferences for both standalone and as a plugin, worth checking which works best for you.

Hyperthreading isn’t exactly the same as AMD’s SMT and, in my experience, isn’t quite as efficient (YMMV) - real time processes such as a DAW have a different CPU load profile than most other software so lots of benchmarks aren’t really representative.

You don’t mention what the difference is when you ENABLE SMT on your system ? Also you don’t mention what you load you are seeing in the CPU cores (try task manager)

FWIW - I’m using Intel, 32 samples buffer (mostly), hyperthreading OFF, which works best for my setup. Once my buffers are 64 samples and above then hyperthreading ON is slightly better.

1 Like

Good one, and I’m using that from time to time (also in some other plugins which allow for that) but depending on the exact situation it can also break things a bit, since Cubase loses control over the exact syncing process. So that trick needs a bit of extra care in my experience.

There’s no point in being hyper specific about my system considering anything from an errant USB device can cause issues. Needless to say, with SMT on I encounter pops and clicks and instability using heavily single threaded processes at anything below 512 samples (particularly with aforementioned guitar rig and Kontakt FX like granular synthesis).

I run massive film score templates with VEP on the same system, so I’m pushing things really hard, but the increase in performance and stability when approaching high CPU usage is night and day with SMT disabled. This is intuitive, since it means a single core isn’t trying to swap between threads, but I was still surpised at how much of a difference it made on a processor released in 2021.

Turning off multi threading in Kontakt used to be conventional wisdom, but I’ve found in later years having it on 4 threads is best for my setup. Kontakt has just gotten so CPU heavy since that advice originally came out that limiting it to one core is not practical for many modern instruments.

yes - it’s very hit and miss - it might be that different Kontakt libraries respond differently to this setting too, but worth having a look at.

So I think all we can say is that your Public Service Announcement was that for YOUR project on YOUR system with YOUR plugins that SMT OFF was a better option.

Yes, it vaguely surprising but not really sure what other feedback you want as it’s not reflective of other people’s experience ? Nico5 has outlined reasons why that might be the case but how can anyone actually know ?

You still haven’t told us how the threads/cores are loaded ? Or even what are you using to monitor them ?

The devil is often in the detail.

When the limiting bottleneck in a particular project is CPU, then allowing a CPU core to single thread rather than splitting its power between 2 threads seems to make sense. But when none of the tracks in a project are hitting CPU bottlenecks, and there’s lots of tracks, then allowing more threads can be advantageous.

I can think of only one scenario where single thread performance would not be the bottleneck, and that would be for people who solely use Cubase to mix in and can afford to run at high latencies. Otherwise, the vast majority of users will experience bottlenecks due to overloading single threads.

How do you know it isn’t VEP that’s the problem though?

How do you know it isn’t VEP that’s the problem though?

True, that could be impacting my system for sure. I’m curious to get other folks general experience on whether disabling hyper threading / SMT is relevant for their setups.

1 Like

OK please help an acronym deficient person. What does “VEP” stand for?

Vienna Ensemble Pro

1 Like

Very Especial Pnicolett?

I guess you have access to vastly more user data than I have :slight_smile:

1 Like

It’s not about user data…when you place your cursor over a track and record enable it, Cubase will process that tracks signal path on a single thread so that it can be played “live.” This means that if you are recording audio or using a soft synth of any kind you will be running into that single threaded bottle neck.

I think it’s fair to say that most users are either recording audio or using a soft synth.

you might…or you might not.

If there is a lesson in this (?) it’s to test your system with hyperthreading/SMT turned on AND off to see which works better, which has always been sensible advice.

FWIW I would imagine that the great the number of cores the more likely that multi threading ‘might’ have an adverse performance impact at lower latency settings.

NOTE - turning off / on multi threading might affect the licensing of some software. Plugin Alliance being one - you will need to relicence when you toggle the setting.

1 Like

Thanks! Here I was trying to relate to some sort of hardware configuration.

Wow - I had no idea (don’t have PA in my collection) - thanks for that heads up!

1 Like