DSD resampling and convolution filters result in low performance on NUC 10i7

Hi all,
I am running Rock on a NUC 10i7.

I have been experimenting with room-correction using REW and have created filters that do improve my sonic experience. I exported the filters in all possible formats (44.1, 48. 88.2, 96, 176.4, 192, 352.8 and 384 in 32-bit) and placed them all in a .zip file, which I load into the convolution setup page. Do I need to have all these formats in the Zip file? Is 32 bit overkill or is 24 bit ok?

As my end-point is capable of DSD128, and I prefer the sound being upsampled to DSD128, I, by default, re/upsample all (PCM & DSD64) to DSD128. I use the smooth, minimum phase filter, 7th order (CLANS), parallelize signal-delta modulation and enable native DSD processing.

I also us headroom management and speaker setup (delay/distance).

When all of this is enabled, I only reach a performance of about x1.8 a x1.9. It takes like about 5 seconds for the performance counter to get higher than x1 and for the music to start playing. Is this normal, as this is an i7 NUC? When starting from a DSD256 I do not even reach x1, resulting in a non-playable file. Is there a setting that I am missing or a BIOS setting… ?

Is there something I can do to achieve faster/higher performance?

Will there be an option in future releases to enable multi-core use when multiple rooms are not needed? Kinda of a shame that when for example in a 2 room setup and a ten core processor is used, only 2 cores for each room can be used, thus only using 40% of the processing power at max. Would be great that one could assign a number/remaining processors to a certain room.

Would love to hear your comments and possible improvements on this.
Thanks

Well, first I would suggest making a Feature Request.

Then, maybe turning off some of the DSP and see if you can make it to the 1.4x ish mark. I would start with “native DSD processing”, or, not using convolution.

I’m not sure there is any other tricks you can do other than begin rethinking your hardware.

Hi Daniel, what did you mean with begin rethinking my hardware… You have my full attention :blush:

The convolution filters must be what is killing your CPU right now.
I say this as I upsample to full DSD512 on a humble 7i3 and it runs at 1.3x , with DSD256 about 1.9x.
But that’s all I do, Upsampling, no room correction etc.

Try it with just Upsampling and see what happens, just out of curiosity.

Btw, yes it does take 3 or 4 seconds for the very first track of the album or playlist to kick in but no hesitation at all after that initial start.

I mean that Roon utilizes 1 core for DSP per endpoint, as you noted. Until Roon changes things, like you are asking for, in terms of assigning extra cores for DSP, you might need to run Roon on a beefier computer to do what you want. Or, turn off some of your options, like convolution.

Doing your setup, without convolution as I don’t use it, my i5 ROCK NUC sits at about 2x when upsampling 96 to DSD 256 (50% of the cpu core). My Desktop Core running an i7 9700k with a 3.6 Ghz per core speed (Windows) is doing the same at 6x (16% of the cpu core).

I can imagine that with convolution, my NUC, would dip down to unplayable levels, but, my desktop would still be playable.

That being said, if you are really into DSD upsampling, etc, you should check out HQPlayer.

These are screenshots with different type of source files… Sampling to DSD64.

As you can see convolution is done before resampling tot DSD64. Is there a reason for this? Otherwise the source format would not influence the performance?

Hmm. Yes, I do think there is a reason for that and i think it was detailed on the forums already. I’ll spend some search time and see if I can find it.

Try reading through this thread, especially Brian’s posts.

The hardware limitation…

i7-10710U
1.10 GHz
15 W TDP

AJ

Disable Native DSD Processing.

Enable Parallelize Sigma Delta Modulator.

If that does not help, you need better hardware (not a NUC) with the highest single thread performance.

Changed to conversion to max pcm rate (power 2), so 352.8 for any dsd and 384/352.8 for pcm. Same filtering, speaker setup etc and achieving at least x4… ! All in 32 bit. So guess ss the convolution files should also be 32?

After reading the suggested links, seems this is the best way to go?

If it sounds good to you, then yes! That is basic test.

I’m a new roon user and only use convolution filter for room correction, too. I also experienced same dsd delayed playback problem and can’t play dsd256, too. I’m using a i5 Intel Rock, 16g RAM.

I understand the key is the speed of CPU. My stupid question is, I just wonder did anyone got DSD delayed playback problem improved after added more RAM?

Thanks all.

Roon said many times that more RAM in ROCK does not improve performance. It’s just that if there is not enough RAM, it crashes (as it does not swap to disk). If it does not crash, RAM is sufficient.

That said, if you currently have just one RAM stick, you can probably squeeze out a few percent by adding a second one (as this enables dual channel memory access). But most likely this won’t help enough.

It’s all about CPU single-core performance

Ic. Thanks. I’m already using 8G + 8G.

DSD playback using convolution filters is very computing intense, try turning off convolution, do you still have the same issue?

Thanks, my NUC plays dsd files normally, as long as the convolution filter is off.

Try Disable Native DSD processing, and Enable Parallelize Sigma Delta Modulator.

Hi, Peter,

Thanks. Yes, after disabled native DSD processing, then the speed is already good enough.