Roon Core Usage - Hyperthreading

  • Windows 10 - Intel 9700 3Ghz (8 Core - NO hyperthreading) - 64gb memory
  • 10Gb fiber optic backbone. Fiber media converter to Auralic Vega G2

Roon Client installed on the same machine separately from Roon Server.

I’ve managed to do upsampling to DSD512 by manually setting the processor affinity for the RoonAppliance task to 2 cores and running at AboveAverage priority.
This allows for upsampling in Roon to DSD512 at 1.0x processing speed - barely enough apparently.

The Roon Appliance task shows no interest in using more than 2 cores at a time even if explicitly assigned via affinitiy.

I have exhausted all networking and processing avenues in this pursuit. At this point it would appear that a new processor is in my future.

My question is whether the RoonAppliance is thread based? i.e. It will use 2 cores or 2 threads but not 2 hyperthreaded cores (4 threads).

I think I know the answer to this but wanted to confirm.
Thanks!

There is the parallize delta sigma processing option in the DSP settings. That will split the work to a couple cores instead of everything on a single core. But that’s your only configuration option. Other than that, DSD upsampling requires high clock speeds over multiple cores. Roon Core only really benefits from multiple cores if you are playing to multiple zones simultaneously, each doing DSP work.

Of course, upsamploing to DSD512 is completely unnecessary so not something to really lose sleep over if your current CPU cannot handle it…

Thanks for your comments.
I did try the parallize delta sigma processing option but still had drop-outs, hence setting up processor afinity.
My suspicion is that Roon is probably thread based which would limit it to 1 core per zone.

Roon uses all cores when upsampling, doesn’t seem to scale to all threads. (Given that Parallelize is enabled).

A couple of screenshots from my Windows Roon Core (Dell Optiplex 3050, Core i5 6500, 4C/4T. 3.2-3.6Ghz)

Are you doing any other DSP besides the DSD 512 upsampling? If so, then try disabling those other DSP functions.

Perhaps i’ll have to correct my last post? It doesn’t seem like Roon is utilizing all available threads where those are available.
Same album, from this particular Core’s internal SATA drive. (Intel Core i7 8700, 6C/12T, 3.2-4.6Ghz)

I believe that unless Parallelization is turned on Roon will only use 1 core per zone.
In my case without hyperthreading, it’s just a bare core. So, to emulate hyperthreading i dedicate 2 cores and DSD512 works.
Parallel processing with different number of cores has the following upsample Roon processing speeds:
8 Cores = 0.4 (Drop Outs)
4 Cores = 0.6 (Drop Outs)
2 Cores = 1.1 (Works!)
As Roon points out, parallel processing is inefficient.
What I found out is that there is a reason Roon only allocates 1 core to a zone - it is enough to upsample DSD512/do heavy lifting as long as it hyperthreaded. For non-hyperthreaded CPU’s however it looks like just a single core and the upsample drops out unless you run them in parallel.
Fun exercise, now I need a new processor…

1 Like

Still, something is not as it should. Your i7 9700 should not have any issues to upsample to DSD512… Maybe you are mucking about to much, dedicating cores and such? :wink: The simple cure is, enable parallelize and stop “fixing” things… :smiley:

The Roon proessing speed results I provided with 8/4/2 cores were all parallelized.

I just saw something peculiar in your first post, you state that you have installed “Roon Client separate from the Core” or something?

There is no need to install a Roon Bridge on the same machine where you have already installed a Roon Server, since the latter also contain the Bridge part.
I’d recommend uninstalling anything Roon-related and then installing Roon Server package only.
(I assume that the computer is being used headless, and not for controlling the library. If so, you should install the Roon package which contain all three parts of Roon; Core, Bridge and Control)

FYI:

1 Like

Hello Mikael
Roon allows you to install the client & server separately, even on the same machine.
It allows more control over the server function i.e. make it a windows service.
Once the server firewall settings are confirmed then any Roon client can connect to it.
John

This confirms my findings regarding the degrading performance across an increasing # of parallel cores.
I do find that Roon tries to run everything on 1 core/2 threads. If I allocate another core/2 threads it generally does some minor spill-over proessing to another thread but does not max it out.
Thanks

Thanks John, i understand then that by “client” you refer to the GUI for controlling playback etc.
I thought you referred to the Roon Bridge.