Drop in Processing Speed since 1.6

Ok I have noticed another issue with 1.6. I tried upsampling again to DSD128 as I fancied seeing if it improved some albums. I noticed my processing speed is severely reduced since I last tried it. In November last year I was getting 3.7x from 44.1/16 to DSD128 from Tidal now its lucky to get past 2.5x and local files don’t fare much better. Whats going on here is Roon using a lot more of the cpu than it was? Anybody else noticed this?

Hmm, using an i5 WIN10 Core I can (as always) upsample 44.1K to DSD256 and maintain about 2.3x processing.

If I run a another endpoint re-sampling to 96K simultaneously wiith the DSD256 endpoint, then the new queue comes in around 25.5x. The DSD256 drops, but stays above 1.5x.

FWIW.

We didn’t change anything about how the DSP/processing code works in 1.6–it is exactly the same as before.

The processing speed is designed to communicate whether or not you have enough safety factor to support the current workload. The way it is computed makes it unsuitable for drawing conclusions about the performance of the code itself in the way that you are attempting to.

The processing speed indicator represents the amount of time that processing the audio takes relative to the amount of audio processed (so if it takes 1/4s of time to process 1s of audio, the speed is reported as 4x).

One problem is–your CPU cores are not always running at the same speed. The maximum speed reachable and how long each CPU core can sit at that speed depend on the real-time temperature inside the CPU at that moment. Which is in turn dependent on everything from what else is going on in the system/on other cores, the temperature of the room, the amount of dust in the CPU fan, how much temperature has soaked into the assembly over the past minutes/hours, etc.

If we made the code twice as fast, it might not move the processing speed number at all, since it may be more efficient for the CPU to run at a lower speed, at which point the same amount of time passes for the same processing, and you’re simply using less energy. Likewise, environmental factors, or the speed at which your CPU has decided to run today based on energy saving or thermal management rationale may pull the number around, sometimes dramatically. This logic can change with OS or BIOS or Driver updates, too.

At the limits, the CPU generally “opens up” and makes most of the performance available–there’s still an exception to this–since the Turbo Boost mechanism on some CPUs is another complex thing in the mix…in most situations it’s only available for short times and not on all cores at once, so even the idea of “maximum speed” is pretty ephemeral.

There are good and accurate ways for us to measure how much work the code is doing. We always have an eye on this when making changes to DSP and other performance-critical stuff and know that it hasn’t changed. The processing speed indicator is influenced by too many outside factors to really use it for that purpose. It’s there to tell you if you’re “safe” or not. That’s it.

8 Likes

Thanks for the thorough and cogent explanation.
Who knew?

Not sure this explains fully why there such a big difference. My units fanless and has been steady temp since I last tried it. It was fixed at 3.7 X for a long time to. It has been running for longer overall now I guess if this effects things in any way. I’m away for a week now and have powered it off whisky away so will check it when I get back and see if this affects things.