DSD performance issues

What are your CPU temps looking like?

With a base clock of 1.1Ghz and a boost of 4Ghz it’s impossible to tell from this if your CPU is able to stay close to that 4Ghz clock speed. If it’s overeating it will stay in that 1Ghz range and that may be your issue.

I ran the core for 60 min in loop with DSD 128 USB in DoP mode. Processor operated stable at 3.8-4GHZ and a load between 20-25% with short bursts into the 80% range and no sign of throttling due to overheating. Fan does not run at full blast, likely 50%.

1 Like

1.0 processing speed means you’re processing in real time which is not enough to keep-up. You need > 1.0 and at 1.2, for DSD128, you’re barely keeping up. This does not seem processor bound though. Where is your music stored? Maybe Roon can’t access the files fast enough? Memory latency? I don’t know. I’m kind of out of ideas.

But, as others said, look at utilization of each core. If 1 core is hitting 100% then that’s the issue. If there is a DSP operation that only lives on one core and it’s at 100% then you’re done. Windows will still report overall CPU utilization at 25% but the single core at 100% is what stops you from moving forward.

Getting Roon to use multiple cores I think someone suggested that further up. There is a setting but I don’t know if it works for all DSP operation.

I am with you on the processing speed. The NUC runs Roon server, basic win virus protection and not much else. All non-essential services are disabled, only necessary app are installed. From that end, the NUC has it easy.

Music is stored on shared 4 TB USB drive that is connected USB to the core.

There are 12 logical CPUs in this setup and I watched it for a while. All of the cpus hit 100% every so often and it appears that parallelizing works only in a limited way. When e.g. cpu 1 hits 100 another one takes over. And you can see that behavior across all logical cpus. Does seem like a good load balancing to me.
here is a pic of the first 5.

and a few more

Fun observation:

I up-sampled the 44.1/16 FLAC versions via Roon to DSD 512 and the little NUC plays it with convolution enabled in 2 separate zones running at 35% utilization. It barely plays 128 DSD from a file, but up-sampling allows for 512 at a processing speed of 1.8 -2.2. I don’t get it.

Can you share the signal path with up-sampling?

1 Like

Here it is

Looks like the convolution has to process a lot less taps in this mode.

1 Like

Thanks. That’s what I thought. The filter is applied at 352.8 kHz, not 5.6 MHz. That’s probably why it only requires 373k taps vs. 5968k. The ratio of tap count is basically the same as the ratio of frequencies:

5968k taps / 373k taps =16
5,644.8 kHz / 352.8 kHz = 16

That’s where the perf difference is coming from. Saying that processing at DSD rates is overkill is an understatement.

1 Like

Cool, problem solved. Avoid downloaded DSD files if you do not have a blindingly fast cpu to process it.
Convolution filters are not your friend in this scenario.

1 Like

If you really really want DSD, you can try to set up Roon to down-sample to 352.8, apply DSP, then up-sample back to DSD. (Not sure how, I guess by disabling DSD processing?) However, in my book, DSD only makes sense if sent directly to the DAC, without processing, since its only purpose is to be “D/A-friendly”.

As several others have pointed out, the problem is the massive number of taps. I use HAF convolution filters as well and have the same problem. My system will start out a native DSD file at .6X and over the course of a second or so spins up to 1.4X and the file starts playing. Like you, there is no problem with files upsampled to DSD, just with native files. The solution I use is to have Roon convert the files to their equivalent PCM rates. I know you said you don’t want to do that but I’m not sure where you’d get a computer with enough grunt to do what you’re asking of it.

Apparently, Linux is the OS of choice these days - should be a doddle to get Roon Core to run on one of these :grin:

1 Like

For the price of a Nucleus+, you can get a PC that is more than capable of doing that. It would still be overkill though.

Those supercomputers are all distributed. You need single system performance :slight_smile:

According to the article (and my understanding of the term), they are all non-distributed computers.

As far as I know all current high end supercomputers are distributed.
That is, N computers, each running the same OS, using software to distribute compute jobs across them.
None of the current ones are just a single computer with lots of CPUs in it (as that doesn’t scale very far).
I’ve visited this one btw:

Note it says " 4,608 compute servers, each containing two 22-core IBM Power9 processors and six NVIDIA Tesla V100 graphics processing unit accelerators, interconnected with dual-rail Mellanox EDR 100Gb/s InfiniBand."

1 Like

Seriously cool. Makes my Roon Core setup look tiny by comparison:

That’s pretty impressive as well!
Now we just need roon to make a distributed version so we can run it on a supercomputer and be able to scan real fast. Not to mention play dsd 512s :slight_smile:

1 Like

I bet they’ll start selling DSD4096 soon after.

Roon DSP for a single zone uses a single thread, but the particular step of Sigma Delta Modulator can two use threads (if Parallelize Sigma Delta Modulator) is enabled.

That is why you need a high single thread performance for Roon DSP.

1 Like