Hyperthreading in DAW - ON or OFF?

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

This pertains to all DAWs equally, so I guess it's the right place to ask :)

Normally, one would think having Hyperthreading ON is good, since you're using your CPU to its "full potential", spreading the workload wide (in parallel). Right?

However:
- splitting of clocks and allocation of jobs across 'weaker' threads (and management of job queues, interlocks, etc.) is a job in itself, so there's a tangible processing overhead, which means that sum of throughput of twice as many threads (logical cores) is always smaller compared to the sum of throughput of not split hardware cores working at full clock and with less job scheduling,
- by reducing the capacity of a single thread to process jobs, it becomes much more likely to hit a bottleneck with a notoriously serial jobs like digital signal processing,
- I did some testing in Reason 10 (where the setting is exposed in options) and - surprisingly enough - my CPU was showing 10-15pp less utilisation, which was enough to ensure glitch-less playback,

I suspect this might be less of an issue for projects that only replay many tracks of simple audio clips with few mixing inserts on top of each channel and few mastering plugins on the Master (a typical mixing project or band tracking), because that lends itself well to parallel processing.

But I think it can make a huge difference in complex, modular setups like Reason (or Bitwig, or Live) is encouraging, where CPU has to "wait" for signals coming from other tracks, busses, nested effects, cross-track sidechaining and signal routing, etc. You can have 4 tracks in your project, but due to internal interconnections and dependencies it might be a single, serial job for the CPU. In such cases, having many "weaker" threads with no space left to add one more big-sized job (because it can't be split to different jobs) is inferior to fewer, much faster physical cores where such bottleneck is less likely.

I actually tried to make some theoretical examples (in Excel :)) to find cases where hyperthreading is beneficial, but failed. And this one clearly shows why fewer threads / logical cores is better:

Image

Now add to that, that with more logical cores - due to scheduling overhead - it might not be possible to *effectively* get the same processing power (so, in this example 2 cores would effectively run at maybe 7.95GHz each, 4 cores at 3.9GHz each, etc.) so we would start hearing the glitches even sooner.

This results in a confusion I see quite often on FB or here: why is my DSP full and playback is glitching, when CPU monitor shows 50% utilisation. That's exactly because none of the "idle" threads is able to accommodate yet another track/plugin in full, whereas it would be more likely that a "full" core would, because - simplifying - it would have double the processing headroom.

--------------

Does that mean multi-core CPUs is a hoax? No, because there are physical and thermal limits to clocks at which they can run, so it's better to have 2 cores at 3.5GHz each, than 1 core maxed out at 6GHz. So that setting should be left ON, as it always helps.

So is hyperthreading a hoax, then? Well, here I can't really see the benefits other than marketing ones - a 4 logical cores CPU definitely *sounds* more powerful than dual physical core CPU, even if it's the same exact silicon. For now, I'm keeping hyperthreading OFF.

---------------

Your thoughts & experiences?
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post

I have HT enabled on my i7-6700K, and OC'd to 4.5 GHz. It works like a charm in Reaper, no problems with my projects at all. :)

Post

Not sure how Reason uses hyperthreading but in Reason i have to turn it off to be able to run some vst's.
In my other daws i get a performance boost.

Post

I think it depends on how you use your DAW and the number of physical cores. If you use a lot of virtual instruments at latencies below 128 samples, you will usually get better performance and much less glitches if you switch Hyperthreading off. At least that is my experience with Cubase and an 8 core Intel machine. I disabled Hyperthreading on BIOS and never looked back.
Last edited by Sahul on Fri Mar 09, 2018 11:11 am, edited 1 time in total.

Post

EvilDragon wrote:I have HT enabled on my i7-6700K, and OC'd to 4.5 GHz. It works like a charm in Reaper, no problems with my projects at all. :)
That's not the question though, is it?

It's about whether disabling it would give you a better or worse performance? :)
Last edited by antic604 on Fri Mar 09, 2018 11:03 am, edited 1 time in total.
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post

D-Fusion wrote:Not sure how Reason uses hyperthreading but in Reason i have to turn it off to be able to run some vst's. In my other daws i get a performance boost.
With hyperthreading on you get a boost in other DAWs? Is it a "feeling" or have you diligently tested it? I'm not contesting your opinion here, just really curious about how and if it works :) I'm perfectly aware that my thought process above is very simplified, not to mention I might be completely wrong :D
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post

Uhm, what hyperthreading? "Hyperthreading" is a prioprietary technology of Intel, which has limited use in DSP-heavy applications.

From the description above it looks just regular multi-thread processing to me.
Blog ------------- YouTube channel
Tricky-Loops wrote: (...)someone like Armin van Buuren who claims to make a track in half an hour and all his songs sound somewhat boring(...)

Post

Is is very easy for a programmer to know which cores are real and which ones are not. You can also chose specific cores for your threads if you want.

For DSP code you don't want to use the "hyper" threads, but they are usually perfectly fine for UI or other "lighter" work.

In general, just leave hyperthreading on and leave it to the programmers to figure out how they should best use the available resources.

Of course, sometimes you come across a program with less than optimal implementation and then it can be worth it to experiment with settings.

Post

DJ Warmonger wrote:Uhm, what hyperthreading? "Hyperthreading" is a prioprietary technology of Intel, which has limited use in DSP-heavy applications.

From the description above it looks just regular multi-thread processing to me.
Yes, multi-threading is an umbrella term for programming techniques, allowing to split overall workflow into parallel jobs (threads). If you re-read the OP, my question is about how far to go with this in DAWs - obviously using multiple physical cores is desired, because single core is limited in clock due to thermal and physical constraints of the silicon, but I can't see any benefits in splitting the physical cores into logical cores (eg. the Intel's Hyperthreading) as I can't see any benefits and only possible problems there.

But seeing you wrote it has "limited use in DSP-heavy applications" I think we agree here :)
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post

PeterP_swe wrote:Is is very easy for a programmer to know which cores are real and which ones are not. You can also chose specific cores for your threads if you want.

For DSP code you don't want to use the "hyper" threads, but they are usually perfectly fine for UI or other "lighter" work.
I don't think it's true, though? Aren't the physical cores always "split" in half to give 2 "logical" cores?

If for example we had only 1 physical core to process everything - DSP processing, GUI, antivirus, I/O, etc. - then it would have 100% of capacity available. If we'd split that into 2 logical cores, each with 50% of power but one of them would be dedicated exclusively to antivirus & I/O and the other to DAW's DSP and GUI, then we'd end up with limited DAW performance and a lot of "wasted" performance for system stuff.

At least in Reason, when I disable hyperthreading in its options, I immediately see all processing - both from DAW and the system - moved to 2 physical cores and nothing on the logical ones, which would suggest such a split isn't possible (or at least that's how Reason has this implemented).
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post

it's a question of innovating paradigms in DAW programming.
why should one track with 10 plugins not be split into 10 threads on 10 physical kernels? it is just a matter of buffering and sync techniques. it works like a bucket brigade.
the other thing is DSP math, that often allows to break up computations into parallel. this makes it a task of the plugin programmer, to use that if resources allow, and routing (causing lazy kernels) demands it.
there are different methods e.g. for IIR and FIR. research ongoing.
but - I did not hear about any standardized interface so far, that can manage that dynamically.

the DAW would have some optimizer (very mathematical, and "cost"-based, as for SQL execution optimizing), which detects overloaded paths of computation, and then asks the plugins and other DAW functionalities of this path, to switch modes and request/use more threads. after this, it has to re-evaluate and iterate, until the best strategy of execution has been found.
after a few seconds of that, it will playback smoothly and render the mix very quickly. CPU very close to 100% utilization, no lazy kernels around.

Post

antic604 wrote:
D-Fusion wrote:Not sure how Reason uses hyperthreading but in Reason i have to turn it off to be able to run some vst's. In my other daws i get a performance boost.
With hyperthreading on you get a boost in other DAWs? Is it a "feeling" or have you diligently tested it? I'm not contesting your opinion here, just really curious about how and if it works :) I'm perfectly aware that my thought process above is very simplified, not to mention I might be completely wrong :D
I have tested it ;)
In Reasn 1 Instance of Roland Jupiter 8 (Vst version) gives me crackles and stuttering.
Same with Repro 5.
Turning off hyperthreading The cpu is lowered to about half and i can play without any problem.

In Cubase i can use 3 notes chords with 5 of Repro 5 + 5 Korg Arp Odyssey + 5 Roland JP8 + 5 Divas and 5 Roland System 1 when hyperthreading is enabled.
Haven't tested Cubase without hyperthreading since it works so well there.

There is no way i can play the same amount in Reason with or without hyperthreading.
But i still love both Cubase and Reason even if Reasons audio engine is very flakey and not optimized for vst's.

Post

Of course HT off, who needs it?... extra cores, pff, don't need at all... Some dumb useless marketing feature probably. More Ram is what counts, you never can't get enough, I get mine at https://downloadmoreram.com Always fast, reliable and my daw has never been so happy.
Last edited by Wavetone on Tue Mar 13, 2018 2:20 pm, edited 1 time in total.

Post

.....

Post

D-Fusion wrote:I have tested it ;)
This thread is not to compare Reason to other DAWs, because it's a common knowledge that current VST implementation in it is inferior to anything else in terms of performance.

So I'm not interested if Cubase was better than Reason and you that haven't tested it with hyperthreading off because "it works so well". I'm exactly interested in you turning it off and reporting if it works even better :)
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”