CPU-Aktivität Shuntregler

Antworten
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

CPU-Aktivität Shuntregler

Beitrag von Daihedz »

Hallo Forenten

Vielleicht renne ich offene Türen ein, erfinde das Rad neu, oder komme mit altem Wein in neuen Schläuchen, denn z.B. ...
Fujak hat geschrieben: (am 05.01.2011)
... das Thema geht nun stark in Richtung hörbare Unterschiede durch Jitter, bedingt durch CPU-Aktivität ... deutliche Unterschiede zwischen unterschiedlichen Software-Playern hören, die sich vor allem durch die unterschiedliche CPU-Aktivität von Prozessen unterscheiden ...
Seither diskutieren und praktizieren wir im Forum den Ansatz, durch Abspecken der Betriebssysteme (=CPU-Nutzung) und durch Verlagerung von Daten ins Ram (=Festplattenzugriffe) die Gesamtlast in einem Audio-PC möglichst niedrig und konstant zu halten.

Zusätzlich zu diesen Ansätzen könnte ein Programm/Dienst/Daemon hilfreich sein. Dieses Programm würde bei Bedarf eine dynamische Dummy-Last an der CPU anlegen, um gemeinsam mit der schwankenden Nutzlast (=das Abspielen von Audio, restliche Systemdienste) eine konstante und einstellbare Gesamt-Soll-Last an der CPU zu erzeugen. Für den Audio-Betrieb müsste eine CPU-Soll-Gesamtlast knapp höher eingestellt werden, als jene, welche im Nutzbetrieb, also z.B. während des Abspielens von Audiodaten, ohnehin anliegt. Damit wäre sichergestellt, dass die Gesamt-CPU-Belastung konstant bleibt, und damit wäre auch deren Strombedarf mehr oder weniger konstant.

Gibt's schon sowas? Für Linux? Für Windows?

Grüsse
Simon
Bild
Trinnov
Aktiver Hörer
Beiträge: 975
Registriert: 13.11.2009, 19:02

Beitrag von Trinnov »

Das sehe ich genauso wie Ulli.

Für unsere zeitkritische Audio-Anwendung hilft uns dabei mittlerweile auch die RamDisk. Denn dadurch ist das Gesamtsystem von Anfang an im gegenüber der SSD sehr schnellen Arbeitsspeicher. Timing-Probleme sind viel weniger ein Thema.

Shunt-Regulator sind eine gute Sache um die Auswirkungen einer schwankenden Last zu beruhigen. Der dadurch verursachte Konstantstrom hilft aber nur in Netzteilen.

Gruß,
Horst
Bild
Hans-Martin
Aktiver Hörer
Beiträge: 9145
Registriert: 14.06.2009, 15:45

Beitrag von Hans-Martin »

Ulli, ich sehe das auch so.

Beim Chip muss noch ein Kondensator die Stromversorgung puffern, entkoppelt von anderen Bausteinen, die Lastwechsel haben. Diese Entkopplung hat eine Ladezeitkonstante, die auf die Stromaufnahme des Chips abgestimmt ist, und die Qualität des Kondensators (ESR) könnte entscheidend sein.

Meine Versuche, mit Oszi die Stromaufnahme zu erkennen bzw. den Spannungsverhältnissen an den Versorgungspins nachzuspüren, wurden von Strahlausdehnung und bei der hohen Taktung auch von der nicht vorhandenen Wiederholung geprägt, ein stehendes Bild, wo sich viele Strahlen sauber übereinander schreiben, war nicht da. Da muss man wohl ein sehr schnelles Speicheroszilloskop haben.

Grüße Hans-Martin
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo CPU-Beruhiger,

ich bin hier den pragmatischen Weg gegangen, indem ich meine CPU mit einem eigenen Labornetzteil mit nachfolgender Ultralownoise-Regulator-Einheit versorge. Das bringt klanglich tatsächlich etwas. Die andere klangliche Stellschraube der CPU sehe ich im Bios in puncto Taktung, Spannung (da gibt es je nach eingesetzter Playersoftware unterschiedliche Richtungen) sowie Abschalten von Hyperthreading und anderen Sperenzien, die nur Unruhe in die CPU bringen. Und zu guter letzt hilft auch die Aufteilung diverser Prozesskategorien auf die 4 Kerne einiges.

Grüße
Fujak
Bild
frankl
Aktiver Hörer
Beiträge: 489
Registriert: 20.01.2013, 01:43
Wohnort: Aachen

Beitrag von frankl »

Daihedz hat geschrieben: Zusätzlich zu diesen Ansätzen könnte ein Programm/Dienst/Daemon hilfreich sein. Dieses Programm würde bei Bedarf eine dynamische Dummy-Last an der CPU anlegen, um gemeinsam mit der schwankenden Nutzlast (=das Abspielen von Audio, restliche Systemdienste) eine konstante und einstellbare Gesamt-Soll-Last an der CPU zu erzeugen. Für den Audio-Betrieb müsste eine CPU-Soll-Gesamtlast knapp höher eingestellt werden, als jene, welche im Nutzbetrieb, also z.B. während des Abspielens von Audiodaten, ohnehin anliegt. Damit wäre sichergestellt, dass die Gesamt-CPU-Belastung konstant bleibt, und damit wäre auch deren Strombedarf mehr oder weniger konstant.

Gibt's schon sowas? Für Linux? Für Windows?
Hallo Simon,

ich schließe mich hier den anderen Kommentaren an und schätze, dass eine Dummy-Last nicht so sinnvoll ist. Wenn das System soweit abgespeckt ist, dass im Wesentlichen nur noch das Audioprogramm darauf läuft, dann sollte die CPU-Auslastung dadurch sehr konstant gehalten werden, dass dieses Audioprogramm die CPU sehr gleichmäßig belastet (das ist ja der Ansatz, den ich bei meinen Linux-Programmen verfolge). Das hat dann auch genau die von Dir gewünschte Wirkung.

Wenn die CPU viele Features und eventuell mehrere Kerne hat, dann könnte es eher sinnvoll sein, einiges davon auszuschalten, um eine gleichmäßigere Auslastung zu erreichen. Z.B. Hyperthreading (virtuelle Zusatzkerne) ausschalten, maximale Taktfrequenz senken, CPU auf konservativen Taktwechsel einstellen (in meinem Convolver-Rechner lege ich die Taktfrequenz sogar ganz im Userspace fest), oder die Affinität von Prozessen festlegen (also, dass sie auf einem vom User vorgegebenen Kern laufen).

Viele Grüße,
Frank
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Hallo Last- und Latenzpflegende

Besten Dank für Eure klärenden Antworten.

Zusammenfassend besticht der von Euch beschriebene radikalere Ansatz, die letzten wenigen, absolut notwendigen Routinen dergestalt zeitlich und kernemässig zu verteilen, sodass sich "wie von selbst" eine weitgehend konstante Last für die CPU ergibt. Das ist natürlich wesentlich eleganter, als die von mir vorgeschlagene Idee, zu einer ungepflegt-wackelnden, spontenen Nutzlast einen zusätzlichen, dynamisch-komplementären Verbraucher (den "Shuntregler" - so war das gemeint) hinzu zu schalten.

Hat jemand von Euch mit dergestalt last- und latenzoptimierten Systemen probatorisch mal simultan zur Audiowiedergabe absichtlich zusätzlich ausgewählte Stör- und Lastprogramme laufen lassen, welche die Lastverhältnisse an der CPU wiederum wie vor der Optimierung chaotisch und bis mit zu 99% Belastung hin verändern? Bloss als experimenteller Stresstest gemeint, um zu schauen, bis zu welchem Masse sich die Last-und Latenzoptimierungen lohnen. Das könnte doch vielleicht eine prima Erfolgskontrolle sein.

Beste Grüsse
Simon
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Simon,

ich kann mich Ulli nur anschließen. Nur keine Last ist eine gute Last, weil nur sie zeitliche Kapazitäten für direkte Verarbeitung der Audio relvanten Prozesse schafft. Die "Shunt-Prozesse" vergrößern damit das Problem eher, weil sie Prozessorkapazität binden. Natürlich wird nicht jede (auch unregelmäßige) CPU-Aktivität gleich zu dramatischen Klangeinbrüchen führen, aber am weitesten kommt man nach meiner Erfahrung, wenn Lasten vermieden und die unvermeidbaren Lasten auf einen Prozessorkern gelagert werden, der nicht mit der Audiowiedergabe (Player und beteiligte Hintergrundprozesse) befasst ist. Bei 4 Kernen sollte das gut möglich sein.

Grüße
Fujak
Bild
huscape
Aktiver Hörer
Beiträge: 55
Registriert: 06.02.2015, 07:01

Beitrag von huscape »

Hallo Simon,

so etwas Ähnliches wie du beschreibst ist in jedem Betriebssystem durch sog. Leerlaufprozesse realisiert. Ist also im Grunde genommen gar nicht so daneben, nur eben bereits schon realisiert. Um gegen Jitter und große Latenzen erfolgreich vorzugehen empfehle ich sog. Realtime-Kernel als Betriebssystemkern zu verwenden.
Das zielt in die Richtung in die du möchtest und bringt extrem viel, je nach dem welches Betriebssystem du verwendest. Für Fedora Linux (Version 21) gehe wie folgt vor:

Realtime Kernel einspielen
vi /etc/yum.conf
→ /etc/yum.conf:
...
installonly_limit=0
...
← /etc/yum.conf:

yum install planetccrma-core
Standardkernel ein für allemal löschen
vi /etc/yum.conf
→ /etc/yum.conf:
...
exclude=kernel-[0-9]*
exclude=kernel-core-*
exclude=kernel-modules-*
exclude=kernel-modules-extra-*
...
← /etc/yum.conf:

yum erase kernel kernel-core kernel-modules kernel-modules-extra
Gruß, Hans
Bild
Antworten