09-11-2023, 09:58 AM (Modification du message : 09-11-2023, 10:06 AM par zaurux.)
Un petit compte rendu des mes dernières optimisations sur mon serveur Win10 Roon / HQPlayer.
Je partagerai le lien sur le fil "windows".
Le serveur est désormais sur base Hdplex H3V avec une carte MSI et un i5-11500.
Pour l'instant, je suis toujours sous Win10 22H2 Atlas avec un JCAT Net Femto.
C'est là que portent les dernières optimisations avec un maintien de la latence au niveau le plus bas.
La latence n'est pas l'alpha et l'omega mais il y a une réelle corrélation entre elle et le SQ (Qualité sonore comme disent les anglo-saxons).
Clairement quand l'os et le hardware sont en phase, la latence permet de valider objectivement cette adéquation.
Mes serveurs sont pour l'instant construit sous Win10 avec Roon + HQPlayer.
Le bios est optimisé pour profiter au maximum des capacités processeur au bénéfice de l'upsampling.
Ce qui permet aujourd'hui de faire du DSD512 avec Diretta en Asio sous HQP5.
Une fois ces éléments en place, reste à optimiser. L'OS très dégraissé permet de tourner avec un minimum de services et une latence logicielle très basse.
Par contre, je n'arrivais pas à descendre quelques drivers sous une certaine limite.. sans que cela ne pose de réels problèmes : pas de blancs ou autres pocs.. mais avec LatencyMon , on visualise des drivers qui tournent à 0.05 ms et le fait de voir certains.. s'envoler au bout de 2 minutes à 2 ou 3x plus, ça me chafouinait !!!
Sur cette copie, on voit dxgkml.sys à 0.15 : il s'agit d'un driver directX en lien avec l'affichage.
Comme j'utilise un affichage déporté via TighVNC, la piste a été de réduire avec ProceLasso, l'impact du soft de gestion de l'affichage bureau : dwm.exe.
Ce process tourne avec une priorité maximale et avec une alerte en cas de changement.
J'ai descendu sa priorité au maximum.. et le résultat est positif mais pas vraiment avec un impact SQ.
La suite est beaucoup plus intéressante.
La carte ethernet JCAT Femto a 2 interfaces.
Chez moi, elles sont utilisées de la manière suivante : eth1 est l'entrée réseau (web <> machine) et alimente Roon (accessoirement HQPlayer) en IPV4.
etht2 est utilisée par HQPlayer pour sortir en NAA et désormais Diretta pour sortir en IPV6.
En résumé :
ETH1 > ROON (IPV4) <> ETH2 - HQPlayer (IPV4+6) > Diretta (IPV6)
Le réseau HQP <> est exclusivement en IPV6 et isolé du reste (paquets vers DST-00 et retour = 0).
Plusieurs tests de drivers m'ont permis de faire des choix mais aucun ont permis de descendre le driver ndsys.sys en dessous de 1.5 ms.
J'ai mis en place un réglage via powershell des files d'attente et des profils de gestion adéquats (eth1 nommé TENDA sur 2 coeurs et eth2 nommé GUS sur 6, les coeurs 0 et 1 n'étant pas utilisés).
Aucun souci, tout fonctionne très bien mais toujours pas de latence stable en dessous de 0.1 ms : nombreuses interruptions, certes à très faibles latence mais se cumulent et le chiffre passe le 0.1 sur LatencyMon au bout d'une minute...
J'ai décidé de creuser encore avec un outil qui permet d'affiner certains réglages via la base de registre lié à une affectation de la charge des drivers par coeurs. GoInterruptPolicyqui vient améliorer les outils "Interrupt Affinity Policy" et "MSI Mode"
image en provenance sur dépot GitHub :
Je l'ai donc utilisé pour les 2 entrées "cartes réseau" en sélectionnant "high" et surtout l'application à tous les coeurs "IrqPolicySpread..." cf copie écran.
Plusieurs réglages, plusieurs tests..
Et le résultat : une latence ndys.sys aux alentours de 0.6... et hier soir, entre Jonaz en live ou Miles Davis, j'étais aux anges !! Une sorte d'hyper résolution..
La caisse claire de ce morceau.. n'a jamais été aussi "claire", précise, localisée.. en fait, juste réaliste et tout le reste..
Depuis la version 5 de HQPlayer, ses modulateurs allégés, ses améliorations, performances optimisées et l'acceptation du DSD256 comme "sweetspot" (Gustard A26) plutôt que le 512, mon serveur tourne sans souci.
Le i5-11500 est poussé à plus de 4ghz (c'est peut-être même trop) et là je n'utilise même plus le "Multicore DSP".
Le nombre de threads a considérablement chuté !!
Le plus difficile est de pousser les réglages pour maintenir la latence ndis à son minimum.
Je réessayerai le DSD512 mais avec le A26, il n'y a a pas de gain (limitation de la puce AKM.. si j'ai compris).
(10-03-2023, 02:35 PM)zaurux a écrit : Je réessayerai le DSD512 mais avec le A26, il n'y a a pas de gain (limitation de la puce AKM.. si j'ai compris).
Hello Stéphane,
Il ne me semble pas qu'il s'agisse d'une limitation de la puce AKM, mais plutôt, pour un utilisateur de HQPlayer, d'un sérieux avantage, puisque c'est une des seules du marché à offrir un traitement du signal qui n'applique aucun filtre ni correction, à condition de l'alimenter en DSD256 justement.
10-03-2023, 04:07 PM (Modification du message : 10-03-2023, 04:15 PM par zaurux.)
(10-03-2023, 03:40 PM)Bear a écrit : Hello Stéphane,
Il ne me semble pas qu'il s'agisse d'une limitation de la puce AKM, mais plutôt, pour un utilisateur de HQPlayer, d'un sérieux avantage, puisque c'est une des seules du marché à offrir un traitement du signal qui n'applique aucun filtre ni correction, à condition de l'alimenter en DSD256 justement.
Oui effectivement... aucun filtre pour le DSD256 mais pour le DSD512, j'ai du mal à traduire techniquement l'info donnée par Jussy :
Citation :DSD 512 is not native rate for the AK4499EX chip which always operates at 128fs or 256fs speed. It cannot operate at 512fs or higher, or 64fs or lower. So any other rate requires rate down-conversion for the converter chip. This results in worse audio band SNR performance at DSD512 because some of the ultrasonic noise is aliased back to audio band. Distortion remains unchanged though.
En fait, le 512 est possible mais ce n'est plus du "direct".
(10-03-2023, 04:07 PM)zaurux a écrit : En fait, le 512 est possible mais ce n'est plus du "direct".
Oui exactement. Jussi remet une couche sur les avantages de sa technologie en indiquant que le traitement par le processeur pour downsampler a comme conséquence de réintroduire du bruit ultrasonic dans la bande audio...