Multi-threaded Performance Low (Some thoughts + Question)

So, I’ve been exporting a lot of albums recently, and the performance is very slow. I understand this is to do with group busses being limited to single core, and I use a LOT of bussing/routing in mastering projects, and only one track is playing at a time anyway (so no point using the same fx on each track - bussing is easier).

But I was wondering, what is the reason for the single-core limitation? How come when we route things through a buss, it’s somehow limited to only be able to be off-line processed on a single core? Surely it should be an online processing consideration, but not for off-line processing, since we don’t need a precise real-time audio stream when exporting off-line. Can’t some of the audio processing maths be done using other CPU cores, and/or some offloaded to GPU cores?

Image of my CPU utilisation during export of a typical album master project (with oversampling on limiters/multiband plugins).

I’ll add some more thoughts here:

I guess if there’s a whole chain of processing (through multiple busses), there’s no way to parallelise it with ease because it’s always going to be limited by the slowest process. That slowest process needs to complete before faster processes can be done, as it’s all serial, not parallel.

So I guess I’ve answered my question, and will be upgrading my computer in the coming months to a faster CPU, rather than one with more cores!

1 Like

You have indeed answered your own question but to clarify, and perhaps help you purchasing decision, it’s both about “slowest process” and also dependencies between things. Any track that is completely independent of any other track can be processed independently from beginning to end. Routing through buss or adding a side chain to it will create a dependency on another track. When you add the dependencies then things have to wait until you know the impact of the dependency which ultimately leads to the slowest process in the dependency chain is the bottleneck.

There are some opportunities for parallelisation that can occur if you can look ahead to see if a dependency is real - for example if all but 1 track going into a bus are silent then technically it’s not a dependency. In Cubase ASIO Guard uses a look ahead to render some audio ahead of time - it can do this because it has no real-time input dependency for some tracks.

The other factor here is sheer complexity of trying to figure all of this out, particularly in a situation with the flexibility of routing, impact of effects (eg. Reverb tails well beyond the end of a note event), real-time recording input, external instruments and effects (no look ahead for them!). Cubase does appear to use a different approach when exporting compared with real-time recording and playback since it can export faster than real-time under some conditions. As a programmer myself though I can understand fully if it doesn’t exploit every possible parallelization during export and re-uses the algorithms developed for real-time work. There may be more you can exploit during a “static” export, but I’ve no doubt such exploitation would be costly to develop. If they develop anything like I do, they probably tinker with improving this aspect every now and then but it’s not on the critical path given the bang for buck ratio (and I don’t mean in profits, but in overall impact and value for users by whatever metrics they use for that).

Personally I’m finding my new 13900KS with it’s hybrid architecture a fascinating beast with Cubase. You can actually see ASIO guard using the Efficiency Cores (lower speed) and realtime on the Performance cores switching as you change tracks. Kinda gives you the best of both worlds - high clock speeds for the bottlenecks that pump through a single thread, more cores for other less dependent things. My P-Core average 5.8GHz with Cubase loads - well up from my old i9 9900k (e-cores sit around 4.5). I’ve not actually exported anything yet since I only just upgraded but suspect it will take similar opportunities to use the performance cores. I do have other reasons for more cores though - my day job - so the value judgement in my case i biased to the extreme end of the processor choice scale for a “home PC”.
Personally I think you are right, Cubase definitely has some benefits from having higher clock speeds and diminishing returns for core counts - though perhaps not Cubase but DAWs generally due to dependencies. That said, we are spoiled for choice right now with CPUs at all levels and brands sporting more cores and higher clocks. Also note that newer generation processors (particularly Intel ones) have a better Instructions Per Clock (IPC) level - it’s not just clock speed in the equation. My daughters Intel i5 12600k can handle very nearly everything my i9 9900k could with relative ease though it has fewer total cores and similar clocks (both processors are overclocked in my situation). I personally think it would be very difficult to make a poor choice of CPU for Cubase use in anything from the current generation mid range up in a desktop form factor.

4 Likes

Thanks so much for your post Rob. As a non-programmer, a lot of this kind of stuff baffles the heck out of me, how CPUs, OS, and software can all work so well to allow me to do what I do. Amazing minds out there building it all!

Yeah, I was looking towards the 13900KS for my next build. I usually keep PCs at least 6 years and make maximum use out of them during that time, but this 9900X has been so bottlenecked with mixing and mastering projects. I think a move to a newer gen chip will really boost performance for me. My mixing methodology makes heavy use of bussing, so faster clocks would be really good in my case and likely save me tonnes of time so I can be working instead of eating food and watching paint dry on exports.

And yeah, the IPC - I do know about that, although don’t know the inner workings. It’s why I’ve always gone with Intel for CPUs. There’s also the fact that any time I had an AMD CPU in the past, I’d have constant crashes, almost as if they were overclocked out of the box in order to compete with Intel. Not sure if that’s changed in recent years, but I trust Intel to make decent chips (at the top of the range, which is where I always buy now).

@jim_griff A couple of thoughts and observations prompted by your post which you may find helpful in your choices.

13900 KS vs K: I wouldn’t sweat getting the KS over the K. In practice you will not see much of the 6GHz boost except on light loads (Cubase is a moderate to high load). I’ll spare you the details the way this boost works is very dependent on your cooling solution and number of threads running. With Cubase it never boosts for 6GHz (or in my case with my overclock to 6.2Ghz on 3 cores). Cubase has a lot of threads active and so the processor clocks down to the point the KS and the K are basically the same.

Cooling - Cooling on modern processors is critical for Moderate to High Loads. Not so much because they get hot (they do but the 13900K is rated for 100C so all good), but the way they manage clock speed is related to heat. My processor definitely clocks higher when the ambient temperature is lower. Personally I’m running a 420mm AIO (though a 360mm AIO would be sufficient). I am considering custom water cooling but not for Cubase - my day job is a lot more demanding on compute resources (5000 cores plus) and I like to tinker on my home PC before going large. In short for Cubase it will still pay to use a 360mm AIO and a decent case with case fans (I run some fairly quiet fans in my rig and though I have 9 of them it is basically silent compared with ambient noise under Cubase loads). If you go a K processor then you may as well overclock it. Cubase will use the extra performance across the cores given the moderate load it produces so long as your cooling solution can keep up.

AMD vs Intel - At the high end I doubt you could go wrong with either processor. I have some single threaded loads in my workflow that benefit from a few cores that run harder (hence the S in my KS). It certainly doesn’t hurt Cubase to have some boosts on a few cores but I don’t think K vs KS makes much difference in that regard. AMD IPC is slightly lower than Intel but again not by much and depending on which instructions (and thus workloads) in can go either way.

Motherboards and memory - More than a few folks have been caught out by high DPC issues impacting realtime performance in Cubase. In many cases this isn’t to do with P/E cores on the 13900K - it is to do with motherboards and memory. These are very new systems and there are a lot of gremlins still being resolved. Memory in particular with DDR5 had some major changes. I ended up with slower DDR5 ram on my system because the original higher speed RAM wouldn’t POST with the full 64Gigs installed. If you motherboard supports 4 slots be sure to buy a memory kit with 4x sticks - not 2 lots of 2x sticks. If you can get the memory you want in 2x sticks then just use 2 (which is what I did to get 64GB total in the end - though I am eyeing up the new 4 stick 192 GB packs just released and that my motherboard can support - best to go with memory that is on the qualified vendor list for your motherboard, not just brand but actual model number). For you motherboard, BIOS updates are key as shown in a recent post by another Forum member who had a Gigabyte motherboard that was problematic and fixed by subsequent BIOS updates. Personally I use an ASUS ROG Strix Z790-E with latest BIOS and it was happy straight out of the box (once the errant memory was resolved).

We really are spoiled for choice right now with either AMD or Intel. Nice to have some competition. Just be aware of the newness of it all and be patient as the fixes flow.

1 Like

Thanks so much for the info Rob.

I had heard of the issues people were having with DPC latency. I’m always picky when it comes to things like that, as I’ve had issues with past systems (in the early 2000s). Bought a new motherboard and started to have weird glitches with my soundcard (Sound Blaster Live!) at the time. This was my introduction to hardware incompatibilities and the nuances when choosing the correct motherboard and/or other components.

Also had serious memory issues on an older Gigabyte X58 board. Could never get it sorted until I bought high quality Kingston DDR3. Was stable as ever after that, minus the weird boot cycling issue that was something to do with the way it checks overclocks. Soon as it booted, it would be rock solid stable.

Now currently on an ASUS TUF X299 mark 2 board, 32GB Kingston Fury (3200), and the Core i9 9900X. Unfortunately, bottlenecking due to the way I mix my projects, hence the desire to upgrade and sell this one.

Great info on the core temps controlling how much it can boost. I did notice that with this CPU and heard about it with later gen chips. Got an air cooler for my current rig (Noctua NH-D15S). Does the job. Keeps it running 58-63°C running Cubase at fixed 4.2GHz all-core), but I’ll definitely look into proper cooling solutions. New cases needed for that, as this one’s an old one used for my past three rigs. Can’t fit any kind of AIO fan system in it apart from the smallest. Not fit for purpose for a modern mid to high-end studio rig.