That’s a good idea Simon. I’ll do that later.
Hard to know what people will really want. I just about never do DSD conversion but always do Convolution. Hoping the diversity of postings can help any individual user’s needs.
That’s a good idea Simon. I’ll do that later.
Maybe also throw some MQA processing in there - however I don’t ever see any processing speed indicator, when unfolding any MQA, even on the MQA 352.8KHz files I have locally stored.
On the room correction processing - maybe someone could offer their file as example reference, or a basic, medium or complex version (don’t understand enough about the processing of determining room correction measurement here, as I have never wanted additional processing on the music)
Only time I see the processing speed displayed is when DSP is being used. I have the same basic setup as @grossmsj but with 16gb ram. I’m only familiar with Windows OS and was told the more memory the less paging out to virtual memory on your primary ssd/hdd. May not be a factor with Linux or Rock but that is why I went with 16gb ram.
With DSP engaged I have noticed the processing speed start at 90x on a track and drop as more complex material is processed. The lowest I’ve detected is 10x.
No problem Ged, thanks!
NUC5i3 2GHz 15W CPU, 8GB, 240GB SATA SSD
Running networked only (not plugged into a DAC or local USB disks, library is on NAS)
So playback of a 16/44.1 Redbook file, to 'Max PCM (Power of 2) is 21.1x
Playback to Max PCM which is 24/192 is 15.3x
Playback of DSD64 with PCM conversion to Max PCM rate is 7.4x
Playback of DSD128 with PCM conversion to Max PCM rate is 4.1x
Playback of DSD256 with PCM conversion to Max PCM rate is 2.9x
Playback of MQA 352.8KHz to Max PCM rate is 8.6x
Playback of 24/352.8 to Max PCM rate is 9x
However everything plays.
BTW only have 4 DSD256, 9 DSD128, 4 24/352.8 and 2 MQA 352.8KHz albums in the library of nearly 6,500, where only 50% are 24-bit HiRes.
Plus no-one has ever given a good answer on why would you want to upsample Redbook formats, nevermind to DSD256 (remember if the information isn’t there to begin with, you can’t add it in through post recording processing).
Ok, since much of the discussion on DSP is ‘upsampling’ to DSD, this is 16/44.1 to DSD64, which is 7.3x
Going from a HiRes PCM to DSD64 is 6.6x
Parallelize Sigma-Delta Modulator had a predictable effect, using both cores to ‘upsample’ 24/192 to DSD64 was 7.2x, unsettling it and one using one core, processing speed was 3.6x
‘Upsampling’ 24/192 PCM to DSD128 was 4.3x (both cores)
I had to change the capabilities of the Endpoint to raise it to DSD128
However this was still being converted on the NUC5i3
Most DACS oversample so the theory is it takes that out of the equation so DAC does less work and may improve SQ as a result of you upsample to the DACs internal rate. PS Audio DACs upsample massively. Chords Mscaler is essentially a hardware upscaler and it’s supposed to sound awesome, so there must be some advantages in certain situations. I found Upsampling to DSD can sometimes make the source sound much more analogue in nature and it’s easier to listen to. I found I liked it more for some music where others it had the opposite. So I gave up in the end.
As much as I tried to compare measurements to @simon_pepper’s post above, I couldn’t get a good head to head comparison for various reasons. So here are some cases where performance was tested on a NUC8i7 running ROCK:
(All comparisons done with 24/88 Daft Punk Random Access Memories)
Convolution Filter running on one Zone 60X
Convolution Filter running on two Zones 54X
Convolution Filter running on three Zones 43X
(This was a real surprise to me. I haven’t done this before but I found it odd that running convolution filter DSP on three zones ran almost as fast as 1 zone. I guess that is a benefit of a quad core processor on the i7?)
Playing DSD64 file (Santana Abraxas), no convolution > 100
Playing DSD64 file with convolution to one zone 3X
Upsampling to DSD with no Convolution DSP
Convolution Filter, upsampling to DSD256 1.9X
For the record, I don’t prefer DSD upsampling. I like the way my DAC does things itself.
It would be very helpful for this thread if someone could post conditions that either an i3 or i7 processor choked on.
How about this?
That’s very interesting as I have just ran some measurements on ‘upsampling’ to DSD64 & then DSD128
The NUC5i3 measured 7x for DSD64 and 4.3x for DSD128
These seem to be higher than your NUC8i7
That’s a treasure chest Mikael!
Not sure what that is due to. I was using a 24 bit file. But it could be something about my DAC (native DSD processing in 32 bit path) too.
@Mikael_Ollars spreadsheet is instructive. Certainly under some circumstances performance from i3 and i7 are similar. And actually, it almost doesn’t matter what the ‘speed’ rating is as long as it is manageable (>2). What’s really important is what one CPU is able to do when another CPU can’t do it. I’d love to see that.
I couldn’t come up with a scenario where the NUC8i7 couldn’t handle it. But I’ve seen a thread where upsampling to 5.1 signal path couldn’t be done.
Just added my NUC5i3 to the sheet, and with my library and the measurements taken last night, is giving as good equivalent results as the NUC8i3 (240Gb Kingston m.2 PCI) and NUC7i3 (with Samsung 970 Evo NVMe 250Gb m.2) listed, and just as good as the NUC7i5 (with Samsung 960 M2 SSD).
So it looks like, based on these measurements and statistics that ROCK doesn’t need the additional CPU performance of later NUC generations or faster i5 or i7 processors, or NVMe based SSDs - it is holding its own on a 15W 5th Gen NUC i3 CPU from 2015.
How come you have power measurements while upsampling but not idling?
I have no way of measuring power, as it is ROCK, but the NUC5i3 has a TPW of 15W, so it that will be the max.
Also even when doing this upsampling testing, did the fan come on - now the BIOS is set for Quiet operation, as I don’t want the fan on during normal playback.
So I ran these benchmarks with a Convolution file, from @grossmsj loaded into Roon Core, and replaying 24/88 Daft Punk Random Access Memories as a comparison to the NUC8i7 (4 Core machine)
Convolution Filter running on one Zone 43.6x
Convolution Filter running on two Zones 37.1x (on the original zone)
Convolution Filter running on three Zones 37X (on the original zone)
Convolution Filter running on four Zones 40x (on the original zone)
So that’s 4 zones, with DSP on each zone and no impact of each additional zone, and the NUC5i3 ROCK server has no problem supporting 4 playback zones with DSP!
Playback of Redbook file with Convolution DSP and PCM Upsampling (Power of 2) 15.8x (without Convolution DSP it was 21.1x)
Playback of Redbook file with Convolution DSP and PCM Upsampling (Max Rate) 12.7x (without Convolution DSP it was 15.3x)
Playback of DSD64 with Convolution DSP and PCM conversion to Max PCM rate is 7.3x (without Convolution DSP was 7.4x)
Playback of DSD128 with Convolution DSP and PCM conversion to Max PCM rate is 3.9x (without Convolution DSP it was 4.1x)
Playback of DSD256 with Convolution DSP and PCM conversion to Max PCM rate is 2.9x (without Convolution DSP was also 2.9x)
Playback of MQA 352.8KHz with Convolution DSP and conversion to Max PCM rate is 7.3x (without Convolution DSP was 8.6x)
Playback of 24/352.8 with Convolution DSP and conversion to Max PCM rate is 7.5x
(without Convolution DSP was 9x)
‘Upsampling’ 24/88.2 to DSD64 with Convolution DSP is 6.4x
‘Upsampling’ 24/88.2 to DSD128 with Convolution DSP is 4.3x
So final stress test
Zone 1: 24/88.2 with Convolution DSP ‘upsampled’ to DSD128: 4.3x
Zone 2: 24/352.8 with Convolution DSP converted to Max PCM 24/192: 7x
Zone 3: 16/44.1 with Convolution DSP with DSP Attentuating volume: 85.7x
Zone 4: 16/44.1 with Convolution DSP ‘upsampled to DSD64: 6.8x
So simultaneous 4 zone playback supported with Convolution DSP on each zone, with some level of DSP conversion, including DSD128 and DSD64 conversion on 2 of the zones.
Have I missed anything?
I think ROCK running on a NUC5i3 can do DSP!
No. I won’t accept it! It violates my preconceived ideas. Your NUC5i3 has special super powers.
Seriously, this is really helpful. You put a lot of work into this. I now have a healthy respect for how well the i3 can handle Roon.
Still glad I bought the i7.
Are you using more than one processing core?
In the DSD ‘upsampling’ I have the ‘enable use of multiple cores’ set.
I observed very predictable behaviour earlier in my tests, when you unset this option, i.e. processing speed was halved.
However the purpose of a multiple core processor is to allow the workload to be across multiple cores, instead of being bound to a single core.
It is an implementation of the Von Neumann computing architecture to be able to undertake this.
Other than that I am just letting RoonOS manage the hardware to get the job done, which it did!
And if you can get can get this level of processing done, with a 2 Core i3 based unit, why the need for anything more? You are just wasting your money on additional processing capacity you are not going to use.
That is good to know. I actually decommissioned my 5i5 because I wanted to be able to do more but I now appreciate that apart from upsampling DSD to the really big numbers I could have stuck with it. I never used the parallelize function.