Posts: 263
Threads: 39
Joined: Feb 2014
Reputation:
6
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?
Posts: 1,283
Threads: 5
Joined: Apr 2015
Reputation:
44
10-23-2017, 08:07 AM
(This post was last modified: 11-09-2017, 12:26 AM by x42.)
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.
Posts: 263
Threads: 39
Joined: Feb 2014
Reputation:
6
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.
Posts: 458
Threads: 30
Joined: Oct 2013
Reputation:
8
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
Posts: 263
Threads: 39
Joined: Feb 2014
Reputation:
6
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).
Posts: 1,437
Threads: 27
Joined: Sep 2013
Reputation:
34
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