DSD performance issues

out of interest I played a little bit with DSD from 64 to 256 using DSF/DFF files. My NUC core is a recent NUC10 i7 with a fairly capable 10710 U CPU. I run a volume equalizer and a 4 path convolution filter as per attached signal path.
DAC is capable of DSD512 in native mode via USB.

Processing speeds:

DSD 64 is 3 with low processor load
DSD 128 is 1.4 with 25% processor load
DSD 256 fails to play. Processor stays at 25%

What gives?

Signal path

Processor load at DSD128

May I ask why you use a 4 path convolution filter?

If you right click on the CPU-display in Activity Monitor, you can select “show individual threads” or something along those lines.
You will see that Roon use only two threads for this particular zone, which is how Roon is built.
Not enough for your needs? You need to balance your hardware to match your demands…

First of all, I’m interested in your answer to Phillipp’s question as well.

Have you set ‘Parallelize Sigma-Delta modulator’ to ‘Yes’ already?
Probably yes, since 25% of 6 cores equals 1.5 cores, but just making sure…

Actually Roon’s upsampling capabilities benefit most from as high as possible single core speeds, rather than low base speed, high core count architectures.

High core counts are needed additionally, if you’re streaming to many end points concurrently, since Roon uses one core per zone.

All in all, I guess nothing can be done to further optimize settings, because your CPU is not up to the task.

I’m using a fan-less desktop i3-10320 4x 3.8/4.6GHz CPU setup, which is capable of upsampling to DSD512 including convolution, but at the cost of a TDP of 65W instead of your CPU’s 15W - I guess your NUC’s fan is howling away while upsampling to DSD128.

This a custom built filter by HAF for my equipment and room.

  • Audiophonics dual 9038 DAC with Raspberry Pi4 streamer built in as Roon Ready endpoint
  • XLR connection Mogami to Nubert Power Amp A
  • Nubert Nuvero 140 series II speakers with Goldkabel LS 440 Rhodium cables

in a large, asymmetrical room with vaulted ceilings.
Why are youasking? is this unusual and if so why?
really interested in your answer

Filter is set to ‘yes’
I do not upsample in this case, it is DFF material in various resolutions from 2L test bench.

Well, I thought my CPU was at least mid-range power for NUC10 series.

And yes it plays 8 zones easily with 192/24 or more.

Oops, sorry for overlooking that essential aspect of your post!

Actually, not having to perform upsampling causes lower CPU load.

which makes it even more strange that the cpu can’t handle above 128

I edited my original post, it was an omission on my end

Well after all, you’re processing 4 paths of roughly 6 million taps each.

Maybe you could ask HAF for an explanation regarding the use of 4 paths while handling “only” two channels.
(My uneducated guess would be the use of two paths for room correction and another two for crosstalk cancellation.)

I asked for the version with cross-talk elimination and I guess that is what forces 4 paths.

Disable Native DSD Processing in DSP Engine

Tried that, Roon converts everything to PCM. Set the DAC to DoP with the same result. Will play but conversion to PCM which wasn’t the intention.
Checked again the capabilities of the XMOS U208 and it clearly stated DSD 512 DoP or native mode. The convolution filter kills the cat, w/o it it works but that is not the idea either.

I’m confused by this. I’ve also had some challenges with processing power on my Core when trying to do native DSD. I solved my problems by streaming over a Raspi to my RME DAC in DSD over DOP format. With my set up the DAC clearly shows that it’s processing DSD - it changes the level meters to blue and indicates format on the screen. Attaching a screenshot to show my set up.

If you have already enabled Parallelize Sigma Delta Modulator, and still got processing speeds below 1.4x without converting to PCM, you’re simply asking the CPU to do more than it is capable of with the current way Roon does DSP.

You only have three choices: 1. PCM 2. simplify your DSP requirements. 3. Buy the most powerful CPU rated by the single thread performance.


Makes sense. As Marin_Weigel stated, this is just too much for that CPU.

Peter listed the options above - where 2. could be to try out the HAF filter without cross-talk elimination. Would be interesting to see if 2 paths can be processed by the CPU for DSD128.

Good luck!

Found the issue that Roon converts it to PCM. Appears to be a bug in the latest Ropiee software version. Went back to the old style set up and DoP works again. Still not enough power to process 256.

It will process DSD128 with the 4 path convolution with a processing speed of 1.4.

Which is actually quite remarkable :slight_smile:
Glad to hear you got it running!

Just to set the expectations right here: once you do DSP, any DSP, you’re already in “PCM territory”, so it’s not DSD anymore. This is why a sigma-delta modulator is needed to go back to DSD.