blue_focus
Cadet 3rd Year
- Registriert
- Jan. 2020
- Beiträge
- 60
A1MSTAR_ schrieb:also irgendwas ist komisch - so sieht die gaming last aus ... er nutzt auch nichtmehr alle treads ...
Dieses Verhalten ist an sich ganz normal und auch so gewollt. Ist bei meinem auch so und schon von Beginn weg so gewesen.
Das passiert im Grunde wegen des Windows Thread-Schedulers (das "Windows-Subsystem" welches entscheidet welcher Prozess bzw. Thread auf welchen Kern gelegt wird) in Verbindung mit der "preferred Core" Einstellung aus dem UEFI. Durch die preferred Core Einstellung im UEFI bekommt Windows über eine Art Core-Ranking mitgeteilt, wie gut welcher Kern performed. Damit ist jetzt nicht nur gemeint, welcher Kern am höchsten Taktet, sondern im Gegenzug auch, welche Kerne sehr effizient laufen können. Also vielleicht nicht ganz so hoch takten aber bei moderatem Takt umso weniger Spannung und somit auch Strom benötigen.
Über die Windows Powerplans kann man dann in einem gewissen Rahmen steuern, wie sich der Thread-Scheduler benimmt. Also ob er eher die schnellsten, oder eher die sparsamsten Kerne bevorzugt. Außerdem gibt es noch zig Stellschrauben, wie das Taktverhalten sein soll. Also wegen jedem Käse hochtakten und super responsive zu sein, dafür aber Strom hungrig, oder im Gegenteil, eher gediegen schnell hochtakten und dadurch eben träger zu werden. Dafür aber sehr effizient zu laufen.
Jeder Powerplan Ersteller versucht hier den heiligen Gral einer ausgewogenen Balance zwischen Verbrauch und Trägheit zu finden. Das Optimum wäre im Officebetrieb super Effizient zu sein, beim Zocken perfekte Frametimes und beim Video Transcoding volle Power zu bekommen. Und das dann alles in einem Powerplan...
Hat bis jetzt noch keiner geschafft... so viel kann ich sagen und auch ich habe da schon Wochen dran rum getüftelt. Es läuft IMMER auf ne Kompromisslösung raus. Oder man macht es eben mit mehreren Powerplans zum hin und her schalten. Das mache ich so und lasse das je nach aktiven Programmen automatisch von Aquasuite hin und her schalten.
Das Bild deines TaskManagers ist übrigens auch normal. Windows versucht der Reihe nach die Threads deiner CPU zu füllen. Das Macht auch Sinn aus Sicht des CPU-Caches und der Inter-Core Latenzen.
Bei Zen hängen immer 3-4 Cores ( bei dir 3) in einem CPU-Complex (CCX) zusammen. Diese 3-4 Kerne teilen sich einen gemeinsamen L3 Cache und haben auf Grund der Zusammengehörigkeit und kurzen Wege sehr niedrige (gute) Latenzen untereinander. Die niedrigen Latenzen und der gemeinsame L3 Cache tragen hier enorm zur Performance bei, wenn zB.: ein Prozess mit mehreren Threads innerhalb eines CCX gehalten werden kann.
Jeder Core Compute Die (CCD/ aka Compute Chiplet) hat 2 dieser CCXs. Muss ein Prozess auf beide CCXs eines CCDs verteilt werden kann das schon Einbußen bei der Performance haben, weil die Latenzen zwischen den CCX schon deutlich höher sind, als zwischen Kernen innerhalb eines CCX. Kommen jetzt noch deine letzten 6 Kerne des 2. CCDs ins Spiel wirds nochmal radikal schlechter, da dann die Kerne zwischen den Chiplets nur noch über den I/O-Die kommunizieren können. Je nach Workload kann das Katastrophale Performanceauswirkungen haben, oder auch komplett egal sein. Kann man pauschal einfach nicht sagen.
tl:dr: oh Mann ist das lang geworden. Und ich wäre noch lange nicht fertig
Also kurz: Es macht technisch Sinn die Kerne von links nach rechts und von oben nach unten sukzessive voll zu machen und nicht alles irgendwohin (round-robin) zu verteilen
So sieht mein Taskmanager aus, wenn ich 2 FullHD-Videos parallel transcodiere
Der 2. CCD ist auch immer erst voll ausgelastet wenn wirklich genug Last für voll 32-Threads da ist.