Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
linux, mixbus and hyperthreading
#1
Hi

For the past 3 years I've been running a 6 core CPU with hyper-threading turned off.

In the old days (single core CPU's) hyper-threading caused performance issues with Ardour and I've just kept things that way.

Given it is now 2017 is it worth turning hyper-threading on for Mixbus(32c), on the understanding this PC is used exclusively for studio use?

Does it actually utilise this feature of the CPU or does it ignore the hyperthread (fake) cores?
Allan  Klinbail 

Steam Mastering - www.steam-mastering.com 
Reply
#2
tl;dr: try it and check the DSP load (or x-run counter in Mixbus' status-bar)

Mixbus cannot tell the difference between a real CPU core and a CPU thread [1]. The Linux kernel abstracts it all. These days Ardour/Mixbus allows you to configure "use all CPU cores/threads" in Preferences > General.

Also the concept has not changed in the last 5 years. Hyper-threading allows to run 2 threads on the same CPU physical core. That CPU core still has only one floating-point unit (FPU) and almost all audio processing is done on the FPU. If two threads on the same core need the FPU, one will stall until the other is done. It also adds a bit of overhead to arbitrate available resources. HT makes sense for applications with mixed load e.g. one thread does integer maths another float on the same core; or one thread waits for I/O, meanwhile a 2nd thread can utilize the CPU core. As for pro-audio that is not usually the case. However if DSP load isn't near the max and you don't need ultra-low latency, HT can result in a improvement. In theory HT should not make things worse: It doesn't make a difference if Mixbus only launches 3 threads or if Mixbus launches 6 threads and 3 wait because the core is busy. In practice it can make a difference, particularly for low latency. In any case, as with all complex systems it also depends on infrastructure around it (CPU caches, chipset, bus..) and the only sensible way is to actually test a given system. In many cases the CPU isn't actually the bottleneck.

[1] a user-space application can get the count of real CPU cores, but can't pin specific threads to cpu-cores. That does require special permissions and also isn't recommended in general. the Linux scheduler does a very good job.
Reply
#3
Excellent information.

I use 5 cores for Mixbus (all but one processor with HT turned off).
From the information here it seems like it's not worth turning it on as I run at 64 periods in jack

my upgrade cycle hits next year. Looks like I can get a more domestic CPU with 6 cores and no hyperthreading and still see a decent performance boost..
not sure I'll get my latency any lower as I'm bound to the performance of the firewire stack.
Allan  Klinbail 

Steam Mastering - www.steam-mastering.com 
Reply
#4
(11-01-2017, 01:21 AM)allank Wrote: Excellent information.

I use 5 cores for Mixbus (all but one processor with HT turned off).
From the information here it seems like it's not worth turning it on as I run at 64 periods in jack

my upgrade cycle hits next year. Looks like I can get a more domestic CPU with 6 cores and no hyperthreading and still see a decent performance boost..
not sure I'll get my latency any lower as I'm bound to the performance of the firewire stack.
At 64 frames and 5 cores, perhaps your audio interface should be
the next upgrade? If there's no nagging performance issues, a more
futureproof interface, that includes an excellent software bundle,
might be a good interim upgrade, with long term benefits.
Cheers
Reply
#5
HT is only supported by Intel CPUs? I have AMD so I should not worry about this I think. Please correct if I am wrong, but I have never found anything regarding HT in my BIOS and I have always used AMD processors.
ASUS M5A99FX PRO R2.0 w/AMD FX™-8350 Eight-Core Processor 32GB RAM
M-Audio Delta 1010 / Echo AudioFire 12
Mixbus v7.x on Fedora 33 64bit
Reply
#6
Hyperthreading is Intel's brand name for the general concept of https://en.wikipedia.org/wiki/Simultaneo...ithreading (SMT).
As far as I know the AMD Ryzen offers SMT, but I don't know the details if you can en/disable it...
Reply
#7
(11-09-2017, 12:21 AM)x42 Wrote: Hyperthreading is Intel's brand name for the general concept of https://en.wikipedia.org/wiki/Simultaneo...ithreading (SMT).
As far as I know the AMD Ryzen offers SMT, but I don't know the details if you can en/disable it...

re-visiting this thread because it's nearly time...

(AMD FX8350 doesn't run SMT.. Ryzen chips do.
Not clear if it can be turned off. )

What confuses me more, is recently seeing benchmarks of another DAW showing massively better DSP performance (using DAWbench) on the Intel 8700k vs the 8600k with the 8600k running at a higher clock than the 8700k
The primary difference then is that one has hyper-threading/SMT turned on and the other turned off.
The new generation AMD 2700x runs in between these 2 in the benchmarks.

I think I'm just going to have to create a massive session and see what happens with SMT turned on and turned off.. (better check I've got support in my kernel as I may have turned it off).
Allan  Klinbail 

Steam Mastering - www.steam-mastering.com 
Reply
#8
OK .. I ran some tests and am stunned..

Using mixbus 32c default channels.. with a 6 core 4930k running at 4.4 GHz .. at 64 jack periods and SMT turned off, using all but one core I could run up 64 channels at 44.1k, and record 16 and be bouncing up between 75 ~ 98% DSP.. mostly sitting at 75

Turning SMT on I was sitting mostly at around 50% DSP for 64 channels. To get the same utilisation I added another 32 channels... That's 96 channels of mixbus 32c.
I started triggering xruns, if I tweaked EQ while recording 16 channels.

So for Intel architecture at least with a big multicore CPU... Hyperthreading is actually a benefit..

This definitely opens up the new domestic core i7 and AMD Ryzen 2000 series cpu's.

Of course in reality, I doubt I'd ever max out even this cpu, but it means I can use this current CPU in my office for running the stupidly hungry VM's I need for work and take a current CPU, not do any CPU overclocking (but OC the RAM to 3200Mhz for equivalent bandwidth) and get equivalent or better than my current CPU, using less power and importantly, running fewer fans at a slower rate.. (it's near silent as it is, but i'd like to not be able to hear them at all).
Allan  Klinbail 

Steam Mastering - www.steam-mastering.com 
Reply
#9
Thanks for the test Allank

I expect that the AMD Ryzen series will be different for real time performance.

It features a network of groups CPU cores. so interupt latency will be high and and there will be logic needed to see which which cores will be used. SMT will add an extra load.


regards

frank
Frank W. Kooistra

- MMB32C 9.1, AD/DA: Motu:1248, 8A, 8D, Monitor8. X-Touch,, Mini M1 11.6.2, venture 13.3 plugins melda fabfilter harrison No Harrison CP-1 
Reply
#10
(05-12-2018, 06:13 PM)Frank Wrote: Thanks for the test Allank

I expect that the AMD Ryzen series will be different for real time performance.

It features a network of groups CPU cores. so interupt latency will be high and and there will be logic needed to see which which cores will be used. SMT will add an extra load.


regards

frank
Funny, I thought that was how the Bulldozer chips worked but Ryzen had actually gone back to a more traditional core layout.. I could be wrong, these things are way above my head..

Granted - on the windoze forums and testing.. (Specifically the stuff published by Scan Pro Audio).
The Ryzen 1000 series got a terrible wrap at low latency settings.
The Ryzen 2000 series has somewhat improved (which is why it has come back into my consideration) but I question the value of being a guinea pig for this.
Allan  Klinbail 

Steam Mastering - www.steam-mastering.com 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)