Jump to content
IGNORED

HQPlayer4 EC modulator tips and techniques


ted_b

Recommended Posts

8 hours ago, Gato said:

To be noted, on my system, when upsampling to DSD512, if Multicore DSP is grayed, there is a lot of stuttering. So in this case, for this system, unchecked is OK.

 

That is strange because on my 7700K with stock Win10Pro it works fine... Please check that you have "High Performance" power profile selected in Control Panel -> Power. Are you using any "system optimizers" (AO, Fidelizer, etc)?

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
7 hours ago, Miska said:

 

That is strange because on my 7700K with stock Win10Pro it works fine... Please check that you have "High Performance" power profile selected in Control Panel -> Power. Are you using any "system optimizers" (AO, Fidelizer, etc)?

 

The PC in question is a "Windows Server 2019 Standard Core: RAMDISK Network booted using also AudiophileOptimizer and Fidelizer.

More on that: https://audiophilestyle.com/profile/30314-gato/?tab=field_core_pfield_3

Link to comment
3 hours ago, Gato said:

The PC in question is a "Windows Server 2019 Standard Core: RAMDISK Network booted using also AudiophileOptimizer and Fidelizer.

More on that: https://audiophilestyle.com/profile/30314-gato/?tab=field_core_pfield_3

 

Please try without AO and Fidelizer, those could be the source of such stuttering problem.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
5 hours ago, Miska said:

 

Please try without AO and Fidelizer, those could be the source of such stuttering problem.

 

To be noted: my initial issue was due to the "UltraCap LPS 1.2" used to energize the ISO Regen. Using ISO Regen without UltraCap LPS 1.2 eliminates the "pop" problem. Uptone has been contacted about that.

For the rest: Upsampling to DSD512 with Multicore DSP Grayed:

  • Without Fidelizer but with AO: Same stuttering
  • Without Fidelizer nor AO: Stuttering but a bit different (light) and with one more kind of noise like a very light frying "crcrcr".

Maybe a bios "thing": the Gigabyte bios settings:

  • MIT
    • Advanced Frequency Settings
      • Advanced CPU Core Settings
        • Intel(R) Turbo Boos Technology: Disabled
        • Hyper-Threading Technology: Disabled
        • Intel(R) Speed Shift Technology: Disabled
        • CPU Enhanced halt (C1E): Disabled
        • C3 State Support: Disabled
        • C6/C7 State Support: Disabled
        • C8 State Support: Disabled
        • Package C State Limit: C0/C1
        • CPU Thermal Monitor: Enabled
        • CPU EIST Function: Disabled
      • Memory Ref Clock: 133
    • Advanced Memory Settings
      • Memory Boot Mode: Auto
  • BIOS
    • Full Screen Logo Show: Disabled
    • Boot Option #1: Samsung Portable SDD T5 0
    • Boot Option #2: Windows Boot Manager (P2: Samsung SDD 850 PRO …)
    • Boot Option #3: IBA GE Slot 0400 v1321
    • Hard Drive BBS Priorities
      • Boot Option #1: Samsung Portable SDD T5 0
      • Boot Option #2: P2: Samsung SDD 850 PRO 256GB
    • Fast Boot: Disabled
    • Windows 8/10 Features: Windows 8/10
    • CSM Support: Enabled
    • LAN PXE Boot Option ROM: Disabled
    • Storage Boot Option Control: UEFI
    • Other PCI Devices: UEFI
  • Peripherals
    • Trusted Computing
      • Security Device Support: Disable
    • Super IO Configuration
      • Serial Port: Disabled
      • Parallel Port: Disabled
    • USB Configuration
      • XHCI Hand-off: Enabled
      • USB Mass Storage Driver Support: Enabled.
      • Port 60/64 Emulation: Disabled
      • Mass Storage Devices:
        • Samsung Portable SDD T5 0: Hard Disk
    • SATA And RST Configuration
      • Aggressive LPM Support: Disabled
  • Chipset
    • VT-d: Disabled
    • Internal Graphics: Enabled
    • Audio Controller: Disabled
    • Wake on Lan: Disabled
Link to comment
52 minutes ago, Gato said:

Maybe a bios "thing": the Gigabyte bios settings:

  • MIT
    • Advanced Frequency Settings
      • Advanced CPU Core Settings
        • Intel(R) Turbo Boos Technology: Disabled
        • Hyper-Threading Technology: Disabled
        • Intel(R) Speed Shift Technology: Disabled
        • CPU Enhanced halt (C1E): Disabled
        • C3 State Support: Disabled
        • C6/C7 State Support: Disabled
        • C8 State Support: Disabled
        • Package C State Limit: C0/C1
        • CPU Thermal Monitor: Enabled
        • CPU EIST Function: Disabled
      • Memory Ref Clock: 133
    • Advanced Memory Settings
      • Memory Boot Mode: Auto

 

OK, this is wrong. I would recommend to use the "Load optimized defaults" in BIOS to load the default settings and leave it at that.

 

Turbo Boost, Hyper-Threading and Speed-Step/Speed Shift must be enabled. You could as well leave all the C-states enabled, but this doesn't affect performance, only power consumption.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
21 hours ago, Miska said:

 

OK, this is wrong. I would recommend to use the "Load optimized defaults" in BIOS to load the default settings and leave it at that.

 

Turbo Boost, Hyper-Threading and Speed-Step/Speed Shift must be enabled. You could as well leave all the C-states enabled, but this doesn't affect performance, only power consumption.

 

With "Fidelizer + AO",

Without "Load optimized defaults" in BIOS,

But with Turbo Boost, Hyper-Threading, Speed-Step/Speed Shift and all the C-states enabled, no more stuttering when Upsampling to DSD512 with Multicore DSP Grayed.

To be noted: I have also "Package c state limit" set to "C8", do you agree with this one?

PS: For the rest, ISO REGEN with UltraCap LPS-1.2 switch up to “ON”, there is no "pop noise" anymore.

Thank for your help!

Kind regards,

Gato

 

Link to comment

@Miska

 

Built a server from instructions on another thread here.  First time building one.  HQP is on the same device as Roon core, and was outputting to a SOtM SMS-200 over local network. I got DSD256, ASDM7EC poly-sinc-ext2 working, sounds amazing.  Tried also doing 768mhz PCM upsampling, couldn’t do it, got constant dropouts.  Maybe because of the cheap DLink switches and ethernet cables I have, I think.  

 

So I downloaded drivers to the Denafrips Terminstor, connect it to the sever, and play PCM upsampled to 1.56Mhz.  Smooth as butter and my computer ran much cooler at 55 degrees C.  Meanwhile, now I can’t get DSD256 with ASDM7EC to work, in this setup I get a one second dropout every 5-6 seconds.  DSD126 works - however for both I can’t get HQP to retain DSD output.   If I make a change, it defaults to PCM, even if DSD is selected.  I have to close out of HQP to get DSD back.  

 

Very confused about what’s going on with my direct USB approach  Any ideas?  

 

 

 

 

 

 

 

 

Link to comment
On 4/16/2020 at 5:25 PM, Miska said:

 

OK, this is wrong. I would recommend to use the "Load optimized defaults" in BIOS to load the default settings and leave it at that.

 

Turbo Boost, Hyper-Threading and Speed-Step/Speed Shift must be enabled. You could as well leave all the C-states enabled, but this doesn't affect performance, only power consumption.

 

Two more points about that:

  • With "Fidelizer + AO", Without "Load optimized defaults" in BIOS, but with Turbo Boost, Hyper-Threading, Speed-Step/Speed Shift and all the C-states enabled, no more stuttering when Upsampling to DSD512 with Multicore DSP Grayed. BUT with all off that now, when upsampling to poly-sinc-ext2/ASDM7EC/48k x 256 with Multicore DSP Grayed, the sound drop every approximatively 40 sec for one sec.

 

  • So to successfully Upsample to DSD256 via poly-sinc-ext2/ASDM7EC/48k x 256 with Multicore DSP Grayed, the following do the thing: With "Fidelizer + AO", Without "Load optimized defaults" in BIOS, with Turbo Boost enabled, Hyper-Threading Disabled, Speed-Step/Speed Shift Disabled and all the C-states disabled, no more Drop.

 

Kind regards,

Gato

Link to comment

If you are interested: I have described here many BIOS settings which allow the operation of the EC modulators without problems.

 

On 3/3/2020 at 3:27 PM, StreamFidelity said:

2.1 BIOS

 

BIOS stands for "basic input / output system" and is the firmware on the mainboards. You can access the BIOS settings by clicking the F2 key several times during booting. Screenshots are taken on ASUS boards with the F12 key and e.g. B. stored on a USB stick. There are really a lot of setting options. Below I describe the most important ones I use.

 

2.1.1 BIOS update

 

Before the BIOS configuration and installation of the operating system, the latest BIOS version should be loaded in any case. There are different methods. I like to use the internet connection because it is very straightforward.

 

37995907is.png

 

All BIOS settings are lost during the update. At least with this board. Anyone who has already made settings is well advised to save these settings on the USB stick.

 

37995908xg.png

 

2.1.2 RAM settings

 

The XMP II profile is recommended for system-stable operation. This setting reads out the profile in RAM and applies it.

 

37995898ng.png

 

2.1.3 CPU clock frequency

 

The most important setting for high performance concerns the clock frequency of the CPU. The Intel Core i9-9900K has a base clock of 3.6GHz. Not enough for the EC modulators of the HQPlayer. At least 4GHz on 3-4 cores are required. The CPU has 8 cores. I experimented with different settings. For example, clocking the first cores higher than the following ones. I did not like it. I stayed with the simple configuration: all cores on 4.1GHz.

 

37995899bw.png

 

2.1.4 Hyperthreading

 

If the HQPlayer loads complex filters, it will occupy all cores with 100%. To prevent the system from freezing, hyperthreading should be activated. 16 logical processors are then made available. As a result, the computing load can be better distributed.

 

2.1.5 Energy management

 

I am not describing settings for climate protection, but for increasing audiophile PC operation. The rule of thumb is to deactivate all energy saving options! The clock frequency should remain stable at 4.1GHz and not be reduced. The result would otherwise be z. B. Dropouts when playing the music. Deactivating the CPU C-states prevents (among other settings) switching back the clock frequency.

 

37995902kk.png

 

2.1.6 Temperature development

 

One of the main problems, especially with a passively cooled system, is the temperature development. By reducing the voltage, excessive temperature development can be avoided. However, if the voltage is set too low, the system freezes. The CPU is cooled very well. I therefore set the setting for BLCK Aware Adaptive Voltage to Enabled without fine adjustment.

 

37995901ol.png

 

In addition, I have the power consumption at 120W with max. 160W limited.

 

37995900ot.png

 

The CPU i9-9900K can up to max. 100 °C operated. Way to high. I have a max. Temperature set at 95 °C.

 

37995909oz.png

 

2.1.7 Deactivate functions that are not required

 

Basically, all functions of the board that are not required must be switched off. This saves electricity and promotes trouble-free

operation. In any case, I prefer M.2 SSDs and therefore do not need the SATA controller. That is also one of the reasons why I did not try RAID 0, because otherwise I could not have deactivated SATA.

 

37995903aj.png

 

I was able to switch off HD audio on this board without any problems. It seems that this also bypasses the problems on Windows. With a digital volume control like with the HQPlayer you have to switch off the Windows system sounds, which can otherwise be quite loud.

 

37995905gj.png

 

I have deactivated Wi-Fi and Bluetooth.

 

37995904bo.png

 

There are countless USB ports on the board. I only need three: for keyboard, mouse and USB stick. The assignments can be found in the mainboard manual. The JCAT USB Card Femto uses a PCIe connection and is not affected by these settings.

 

37996079dv.png

 

2.18 Settings for fanless operation

 

It is very important to deactivate the monitoring of fans or water pumps. Otherwise the system always shows an error message and does not start up.

 

37995906ya.png

 

Link to comment
23 minutes ago, StreamFidelity said:

2.1.4 Hyperthreading

 

If the HQPlayer loads complex filters, it will occupy all cores with 100%. To prevent the system from freezing, hyperthreading should be activated. 16 logical processors are then made available. As a result, the computing load can be better distributed.


This is entirely opposite to what I’ve found. What so-called complex filters are you using and what evidence do you can that they load all 8 cores at 100%? — aside from multichannel, and/or startup that is, HQP generally loads a single core per channel at a high rate with the EC modulators. 

 

Here are the speeds my cores are running at, at the moment: 

jon@jon-w2245:~$ ./cpuspeeds.sh
Processor:  0  Mhz:  3900.000
Processor:  1  Mhz:  1200.286
Processor:  2  Mhz:  1200.061
Processor:  3  Mhz:  1596.051
Processor:  4  Mhz:  3900.000
Processor:  5  Mhz:  1381.722
Processor:  6  Mhz:  4499.999
Processor:  7  Mhz:  1200.048
Processor:  8  Mhz:  3904.632
Processor:  9  Mhz:  1201.346
Processor:  10  Mhz:  1201.246
Processor:  11  Mhz:  1510.476
Processor:  12  Mhz:  3900.118
Processor:  13  Mhz:  1360.446
Processor:  14  Mhz:  4499.598
Processor:  15  Mhz:  1200.049
CPU model:  Intel(R) Xeon(R) W-2245 CPU @ 3.90GHz
1 CPU,  8 physical cores per CPU, total 16 logical CPU units

There are 2 cores running HQPlayer ASDM7EC ... these cores are running at 3.9 Ghz (so 4 "Processors") and a third core is running another program at 4.5 Ghz / 50% ... the rest of the cores are sitting idle at 1.2 Ghz.

 

I haven't even looked at my BIOS

Custom room treatments for headphone users.

Link to comment
29 minutes ago, jabbr said:

This is entirely opposite to what I’ve found. What so-called complex filters are you using and what evidence do you can that they load all 8 cores at 100%?

 

A complex filter is for example poly-sinc-long-lp. Its sounds very good. As you can see in the Task Manager below, all physical cores are loaded. The other eight (logical) cores prevent the system from freezing.

spacer.png

Link to comment
35 minutes ago, jabbr said:

There are 2 cores running HQPlayer ASDM7EC ... these cores are running at 3.9 Ghz (so 4 "Processors") and a third core is running another program at 4.5 Ghz / 50% ... the rest of the cores are sitting idle at 1.2 Ghz.

 

I consider this setting to be suboptimal. it leads to the fact that different clock frequencies are permanently assigned to the cores. This leads to a restless sound in my ears. It is better to set all cores to the same clock frequency. That is among other things the reason to optimize the BIOS. 😉

Link to comment
26 minutes ago, StreamFidelity said:

 

I consider this setting to be suboptimal. it leads to the fact that different clock frequencies are permanently assigned to the cores. This leads to a restless sound in my ears. It is better to set all cores to the same clock frequency. That is among other things the reason to optimize the BIOS. 😉

 

No, permanent settings aren't assigned to cores. That might have been the case some years ago. The Intel chips are very complex and the various boosting algorithms depend on various factors including temp but also it appears likely that the AVX512 instructions throttle the core to a degree. The new Xeon W series as well as the Skylake-*X* series have 2 of these units.

 

Um hmm its complicated and not necessarily affected by BIOS settings ;)  This guy is very well respected and wrote this blog a few years ago on this very issue: https://lemire.me/blog/2018/08/13/the-dangers-of-avx-512-throttling-myth-or-reality/

Custom room treatments for headphone users.

Link to comment
29 minutes ago, StreamFidelity said:

A complex filter is for example poly-sinc-long-lp. Its sounds very good. As you can see in the Task Manager below, all physical cores are loaded. The other eight (logical) cores prevent the system from freezing.

 

Ok look you are upsampling from 96k to 192k ... we are talking about DSD upsampling using the EC modulators in this thread ... of course certain workloads will load cores equally 

 

But on my system using HQP in PCM mode, upsampling from 96K -> 384K using poly-sinc-long-lp only uses 7% of my CPU and they are idling by at 1.2Ghz ... very relaxed

 

Wow! Going back to PCM upsampling and then back to ASDM7EC shows exactly how great these modulators sound!

Custom room treatments for headphone users.

Link to comment
14 hours ago, WilliamWykeham said:

So I downloaded drivers to the Denafrips Terminstor, connect it to the sever, and play PCM upsampled to 1.56Mhz.  Smooth as butter and my computer ran much cooler at 55 degrees C.  Meanwhile, now I can’t get DSD256 with ASDM7EC to work, in this setup I get a one second dropout every 5-6 seconds.  DSD126 works - however for both I can’t get HQP to retain DSD output.   If I make a change, it defaults to PCM, even if DSD is selected.  I have to close out of HQP to get DSD back.  

 

Very confused about what’s going on with my direct USB approach  Any ideas?  


Figured it out.  Have Wasapi on the backend input, only supports DoP.  So now I have to replace Wasapi with AISO but that’s being used by the output.  

Link to comment
2 hours ago, jabbr said:

This is entirely opposite to what I’ve found. What so-called complex filters are you using and what evidence do you can that they load all 8 cores at 100%?

 

HQPlayer is HyperThreading (SMT) aware. Initialization and other "side activity" is run on threads when available. If the CPU is just dual-core with HyperThreading, then it is extensively used (some NUCs and laptops). Filters and modulators are not run on the same cores. When playing, most of the SMT threads are left unused to be occupied by the OS or something like Roon. This gives best overall efficiency. Threads improve performance of multi-tasking context switches. They cannot do real work, but they make task scheduling twice as efficient. This gives some 10% overall performance boost, depending on how many processes/threads are actually active on the system.

 

2 hours ago, jabbr said:

HQP generally loads a single core per channel at a high rate with the EC modulators

 

This looks different if you switch modulator to something like ASDM7 and run let's say poly-sinc-xtr or poly-sinc-long to DSD512 or DSD1024 on the CPU.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
37 minutes ago, Miska said:

 

This looks different if you switch modulator to something like ASDM7 and run let's say poly-sinc-xtr or poly-sinc-long to DSD512 or DSD1024 on the CPU.


Certainly ... although my previous server “experiment” with 20 E5 cores could not do DSD512  and we really need to optimize highest per core performance ... in general 

Custom room treatments for headphone users.

Link to comment
12 minutes ago, jabbr said:

Certainly ... although my previous server “experiment” with 20 E5 cores could not do DSD512  and we really need to optimize highest per core performance ... in general 

 

There are two things; 1) doing filters to rate X and 2) doing modulator at rate X.

 

(1) can utilize almost any number of cores while (2) cannot and depends more on per-core speeds.

 

GPU is especially good at (1) having a lot of parallel cores. While CPU with low core count and high clock speeds is good at (2). Hence the combo. Although something like W-2245 gives nice compromise between the two with AVX512. 9900K(S) leans a bit more towards (2) but not too much different.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
15 hours ago, jabbr said:

No, permanent settings aren't assigned to cores.

 

We're probably talking at cross purposes. Independent of AVX, I can assign a fixed clock frequency to all cores. For AVX an AVX offset is also possible. For example -5, which would allow me to throttle the CPU from 4.1 - 5 = 3.6 GHz when using AVX instruction sets like HQPlayer. Of course this is not useful for EC modulators. 

 

As you can see in the HWMonitor, all 8 cores are permanently assigned 4.1GHz. What differs is the degree of utilization (in %). I appreciate this setting in the BIOS very much, because it brings more silence into the sound image compared to permanently changing clock frequencies. Just give it a try. 😉

 

spacer.png

Link to comment
5 hours ago, StreamFidelity said:

 

We're probably talking at cross purposes. Independent of AVX, I can assign a fixed clock frequency to all cores. For AVX an AVX offset is also possible. For example -5, which would allow me to throttle the CPU from 4.1 - 5 = 3.6 GHz when using AVX instruction sets like HQPlayer. Of course this is not useful for EC modulators. 

 

Are you saying that you DISABLE AVX in BIOS?, or tell me which BIOS settings you are using for AVX specifically? I think that would be counterproductive but I've considered doing that as an experiment to see if the Xeon W would boost > 3.9 when running the EC modulators, that would give more evidence that the reason the boost isn't happening are the AVX512 units.

 

5 hours ago, StreamFidelity said:

 

As you can see in the HWMonitor, all 8 cores are permanently assigned 4.1GHz. What differs is the degree of utilization (in %). I appreciate this setting in the BIOS very much, because it brings more silence into the sound image compared to permanently changing clock frequencies. Just give it a try. 😉

 

My CPU cores typically run at 1.2 Ghz when unused and that is very quiet!

 

I measure individual core temps in Linux using the "sensors" program, and wrote a little script to pretty print the individual core clock rates:

https://github.com/jab-r/scripts/blob/master/cpuspeeds.sh

 

Custom room treatments for headphone users.

Link to comment
1 hour ago, jabbr said:

Are you saying that you DISABLE AVX in BIOS?

No, I have said that I am not using the AVX offset which would result in lower CPU performance. Without AVX the operation of the HQPlayer is not possible.

 

1 hour ago, jabbr said:

My CPU cores typically run at 1.2 Ghz when unused and that is very quiet!

I'm not denying that. But at 1.2 GHz you could hardly run an EC modulator, could you? 😉 So it depends on how the cores behave in music mode. And here I see an advantage in having all cores at the same level of 4.1 GHz for example. This is of course a question of your own ears. I tried both settings and decided to go for the more restless version. Have you tried both variations? Only then does it make sense to discuss it.

Link to comment
1 hour ago, StreamFidelity said:

I'm not denying that. But at 1.2 GHz you could hardly run an EC modulator, could you? 😉

Yes its magic!

1 hour ago, StreamFidelity said:

 

So it depends on how the cores behave in music mode. And here I see an advantage in having all cores at the same level of 4.1 GHz for example. This is of course a question of your own ears. I tried both settings and decided to go for the more restless version. Have you tried both variations? Only then does it make sense to discuss it.

 

Oh there are too many variables for my ears to sort out. I haven't even yet compared all the combinations of filters and modulators and NAAs and DACs that I have. What I know is that my system is sounding absolutely fantastic with this new workstation I have (Xeon W) and listening to the ASDM7EC modulator at DSD256! Let me see ... does closed-form-16m sound different than xtr-mp? I don't even know yet because I am having such a great time listening! 

 

Which filters do people like best?

Custom room treatments for headphone users.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...