Singlecore Turboproblem (nicht nur) beim Haswell-E

Na immerhin tut sich nun endlich was. Nachdem Microsoft das Energiemanagement von Haswell-E und den Turbo nicht in den Griff bekommen hat, half sich Intel mit Tubroboost 3.0 bei Broadwell-E per eigener Software. Diese macht im Prinzip nichts anderes und pint bekanntlich Threads auf einzelne Cores die den Turbo konstanter halten als ein andauerndes durchgeswitche.

Das macht Windows10 im Gegensatz zu Windows7 bereits seit langem, aber perfekt läuft es immer noch nicht. Gerade bei mehreren Anwendungen mit (Teil-)Last funktioniert das Festpinnen nicht sauber. Nun kommt der Gamemode ins Spiel. Dieser priorisiert Games und hilft so in Kombination mit dem bereits verbesserten Threadmanagement unter Windows wieder zu einer besseren Singlethread Performance.

Es zeigt einfach, dass das Energiemanagement von Prozessoren, wo jeder einzelne Kern anders taktet und unterschiedliche Zustände (aus, Tiefschlaft, bis rauf zum Turbo) sehr komplex ist. Aber auch, dass eine Zusammenarbeit von Intel und Microsoft in dieser Sache kaum stattfindet. Dazu passt auch das Statement (fast wie eine Drohnung), dass neue CPUs nur mit neustem Windows supportet werden. Hat bisher nie Jemanden interessiert, bis Haswell-E kam...

(Lustig nur das HSW-E Win7 support ganz offiziell hat, auch wenn das wohl kaum Jemand noch nutzt.)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich bin jetzt wieder von 6 auf 4 Kerne zurück gewechselt... wobei die Aussage, dass man von einem 6 Kerner als Privatanwender nichts merkt auch quatsch ist. Selbst der Windows Start ist mit dem 6er schneller. Wobei ich schon ein "paar" Programme installiert habe und das Windows wohl eher einem Server Profil entspricht. In Summe waren mir die Vorteile in Kombination mit den Nachteilen zu gering.
 
Ach, der Pin mehr oder weniger. Ist aktualisiert. Danke für den Hinweis. Bei Tapatalk sehe ich die Sig nich mehr regelmäßig. ;)
 
Moin moin,

ich habe seit kurzem auch das "Vergnügen" mit einem x99 System (5820k) unterwegs zu sein (umgestiegen von 6600k). Es war eigentlich alles gut, bis ich Arma3 angemacht habe (spiele ich sehr häufig) ... kontinuierliche slowdowns (1-2x die sek) die das gesamte Spiel komplett schwammig gemacht haben. Nach ein wenig suchen bin ich dann auf die Singlecore Problematik gestoßen und habe ein bisschen experimentiert. Für Arma3 hilft das deaktivieren des C1E stats im bios schon ordentlich (die Slowdowns waren weg, aber FPS suboptimal) - im Höchstperformance modus wars dann ein Traum (fast sogut wie mit dem skylake). Das ist sicher aber nichts Neues für euch.

Da ich persönlich nicht der Freund von diesem dauerhaften Höchstperformance modus bin, hab ich ein kleines Tool geschrieben - bei dem man auswählen kann wenn Prozess X (zb Arma) läuft, automatisch der modus aktiviert wird, sobald der Prozess nicht mehr läuft, gehts zurück auf ausbalanciert. Wenn jemand Interesse daran haben sollte kann ich das auf GitHub oä. laden.
 
Dann werde ich heute Abend mal machen. Ist übrigens in .Net 4.5 geschrieben, und Sourcecode gibts natürlich dazu. Link poste ich dann hier.
 
Unter Windows 10 nutze ich für den 5820k auch den Energiesparplan "Höchstleistung". In den erweiterten Einstellungen hab ich den minimalen Leistungszustand des Prozessors auf 5% gesetzt, analog zu Ausbalanciert. In Desktopbetrieb taktet die CPU dann auf 1,2 GHz runter und laut Messgerät brauche ich im Idle gleich viel. Die ganzen C-Stati im Bios habe ich aktiviert und bislang keine Probleme in Spielen oder Benchmarks festgestellt.
 
Im Idelbetrieb ja - da gibt sich das nicht viel.
Es ist eher dazu gedacht dann zu greifen wenn der Max-turbo zu viel wäre - in 95% der Fälle läuft ja auch alles im Balanced-plan wie geölt. Und bei CS:GO zb spart man dann gute 20 Watt im Vergleich zu Höchstleistung.
Besitzern von Ryzen könnte es vllt auch nützen (die haben ja ein ähnliches Feature).
 
Da hatte ich gar nicht auf dem Schirm. Ich habe Allcore auf 4 GHz übertaktet. Ich muss mal heute Abend messen was die Energiesparpläne unter Teillast und Volllast für Auswirkungen auf den Verbrauch haben. Wahrscheinlich nicht viel, weil die CPU durch die Übertaktung nur noch 4 GHz oder 1,2 GHz kann, aber keine Zwischenstufen mehr taktet. Da gab es aber glaube ich auch ne BIOS Einstellung dafür. Bei MSI heißt das ja immer ein wenig anders, wie z.B. bei ASUS.
 
Hm, ich frage mich gerade, ob das bei meinem i7 auch so ist...Gleich direkt mal testen.
 
- In Windows 10 ist CoreParking bei Intel deaktiviert, also Problem "gelöst", dennoch wäre das Tool sicherlich für Ryzen-Nutzer oder für alle Win7-Nutzer interssant.
- Auch unter dem Profil Höchstleistung kann eine CPU runtertakten. Zumindest Haswell-E, Broadwell-E und Ryzen. Diese CPUs können nämlich jeden Kern unterschiedlich takten. Dadruch kommt es ja erst zu dem Problem: Sheduler schubst Anwendung auf schlafenden Kern -> aufwachen (Coreparking) braucht Zeit -> Singlethreadperformance im Keller
Singlecore Turboproblem (nicht nur) beim Haswell-E - Seite 7

Meins Wissens exestiert das Problem bei ältere Intel-CPUs oder die Sockel 1151 CPUs generell nicht. Liegt hier Singlethreadlast an takten alle Kerne synchron hoch.

100% Höchstleistung funktioniert folgendermaßen (damit man einmal ein Gefühl dafür bekommt wie das Energiemanagment überhaupt arbeitet):
Bei dauerhafter SingleCore-Last liegt der Takt über alle Cores hinweg beim Maximum. Auch im Idle verhält sich die CPU ähnlich zu den 97%. Die 1200Mhz werden genutzt, trotz 100%. Das hat mich doch sehr überrascht. Das heißt, dass die einzelnen Cores weiterhin Energiesparen wollen, jedoch ist das Verhalten derart "spritzig", dass der Verbrauch bei kleinsten Prozessen (Webseite öffnen) auf 130W und mehr hochschießt. Bei meinem 8-Kerner sind teilweise dadruch 4 von 8 Kernen mit 4500MHz aktiv für einen kurzen Augenblick. Interessant ist auch die Tatsache, dass nur noch der niedrigste Takt (1200MHz) und der höchste (4500MHz) genutzt werden. Alle anderen Taktstufen entfallen.
 
- In Windows 10 ist CoreParking bei Intel deaktiviert, also Problem "gelöst", dennoch wäre das Tool sicherlich für Ryzen-Nutzer oder für alle Win7-Nutzer interssant.

Das CoreParking deaktiviert sein soll, habe ich auch gehört. Nur löst dass mein Problem überhaupt nicht. Ich hab mal gerade die Frametimes gemessen:
Arma3 unter Windows 10 (mit creator update)

Ausbalancierter Modus: https://abload.de/img/arma3_x642017-04-1918h5r99.png 1%=29Fps
Höchstleistungs Modus: https://abload.de/img/arma3_x642017-04-1918szrrq.png 1%=54Fps !!!



Meins Wissens exestiert das Problem bei ältere Intel-CPUs oder die Sockel 1151 CPUs generell nicht. Liegt hier Singlethreadlast an takten alle Kerne synchron hoch.

Seit Sandybridge gibts TurboBoost 2.0 - und zb konnte schon ein i7 2600 NUR einen einzelen kern auf 3.8 laufen lassen. Daran wirds wohl nicht liegen. Wirft natürlich die Frage auf - woran dann?

Hm, ich frage mich gerade, ob das bei meinem i7 auch so ist...Gleich direkt mal testen.

Also bei einem i5 2500k, 4670k und 6600k ist es nicht so. Zumindest nicht das es auffällt - dort laufen SC2 oder Arma3 auch im Ausgeglichen Modus 1A.

Da hatte ich gar nicht auf dem Schirm. Ich habe Allcore auf 4 GHz übertaktet. Ich muss mal heute Abend messen was die Energiesparpläne unter Teillast und Volllast für Auswirkungen auf den Verbrauch haben. Wahrscheinlich nicht viel, weil die CPU durch die Übertaktung nur noch 4 GHz oder 1,2 GHz kann, aber keine Zwischenstufen mehr taktet. Da gab es aber glaube ich auch ne BIOS Einstellung dafür. Bei MSI heißt das ja immer ein wenig anders, wie z.B. bei ASUS.

Das wäre Traumhaft - ich hab leider kein solches Gerät.

Meine Theorie ist folgende:

1.Programme die 2-4 Threads einigermaßen gleich auslasten können (CS:GO zb) werden im Höchstleistungsmodus mehr FPS liefern (bei CS:GO aber egal, da eh 200+). Und der Stromverbrauch wird messbar höher sein
2.Programme die 6+ Threads gut auslasen, werden ein wenig mehr FPS bekommen, und marginal mehr Strom verbrauchen.
 
Also bei einem i5 2500k, 4670k und 6600k ist es nicht so. Zumindest nicht das es auffällt - dort laufen SC2 oder Arma3 auch im Ausgeglichen Modus 1A.

Getestet, alle Kerne bei 4300 mhz. Ein Glück, dachte schon ich muss da irgendwas rumfummeln
 
Meins Wissens exestiert das Problem bei ältere Intel-CPUs oder die Sockel 1151 CPUs generell nicht. Liegt hier Singlethreadlast an takten alle Kerne synchron hoch.

Exakt. Ich weiß nicht ob die neuste Generation sich anders verhält aber für meine CPU trifft das o.g. zu.

Ganz habe ich bei dem 5930 auch unter Win 10 nicht die single Core Performance erreicht, die ein gleich getakteter 4 Kern Intel mit HT liefert (sofern man das Runtertakten nicht generell deaktiviert oder den Prozess auf einen Kern festnagelt). Es war aber schon deutlich besser als bei Win 7.
 
Interessanterweise habt ihr recht. Ich hab bein einem 4770HQ und einem 5820K Prime95 mit einem Thread gestartet. Darauf hin habe ich bei beiden die affinity auf Core 0 gesetzt. In beiden Fällen war jetzt Core 0 bei 100% - die Restlichen bei ~0%

Und siehe da, der 5820K Core0 auf 4,2Ghz - die Restlichen auf 1,2 - der 4770HQ war komplette auf 3Ghz. Das wirft für mich aber die Frage auf, in welchen Fällen der 4770 die MaxBoost von 3,4 erreicht - denn das tut er manchmal laut HWMon.
 
Bei mir hat unter Win10 der MSI Afterburner (oder HWinfo) einen Bug verursacht bei welchem meine Singlethreadleistung extrem nierdrig war. Die Cores takteten wieder nicht sauber hoch. Hier wird wohl irgend ein Treiber mitinstalliert der irgend etwas zerschießt. Habe Win10 3x neuinstalliert und war reproduzierbar. Im Cinebench komme ich nun wieder auf etwa 180 Punkt. Schon doof wenn man ein Tool zum Auslesen installiert, welches einem dann die Probleme erst verursacht.

Keine Ahnung ob das bei anderen auch so ist. Wollte es nur mal gesagt haben. :)
 
Ich werde es mal Prüfen, aber hwinfo sollte eigentlich keinerlei sachen installieren. (Hab den afterburner aber auch).

Desweiteren könnte ihr mal das Tool ausprobieren

Releases · kozfogel/PPSwtich · GitHub

Wie gehts (im wiki gucken und über mein englisch lachen, oder hier lesen):

1. Release1.0b.zip download und entpacken
2. PPSwitch.exe öffnen
3. Doppelklick auf das "schöne" grüne icon in der symbolleiste (icons sind änderbar)
4. Das/die Programm(e) starten, welche immer im Höchstleistungsmodus betrieben werden sollen
5. Aus der "Running Process" liste, diese Programme auswählen (doppelklick)
6. Das wars eigentlisch schon. Sobald mindestens eins der Programme ausgeführt wird (in 7 Sekundenintervallen wird geprüft) - färbt sich das icon lila, und der Höchstleistungsmodus ist aktiv
7. Läuft keins mehr, wird der Ausgeglichen modus aktiviert, und das icon färbt sich wieder grün.
8. Rotes X -> Ausblenden (Doppelklick aufs icon zum wiederherstellen)
9. Rechtsklick auf icon->Exit -> Beendet das tool
10. Wenn alles zufrieden läuft - kann mans in den Autostart packen (die Liste wird als txt datei neben der exe gespeichert und wieder geladen beim neustart. kann man auch von hand editieren)

Ich würd mich über feedback/verbesserungsvorschläge freuen. Und ja, der Code ist unter aller sau - das mach ich nochmal ordentlich)

Benötigt wird .Net 4.5 - und eigentlich sollte es auf Win7 - Win10 laufen (getest nur auf 10)
 
Zuletzt bearbeitet:
Seit Sandybridge gibts TurboBoost 2.0 - und zb konnte schon ein i7 2600 NUR einen einzelen kern auf 3.8 laufen lassen. Daran wirds wohl nicht liegen. Wirft natürlich die Frage auf - woran dann?

Mach mal folgenden Test: Gib mit Super Pi Singlecorelast auf die CPU (32M) und schau dir das Taktverhalten der einzelnen Kerne an. Da geht nix runter bei meinem 6700K. Bei dem 5930K wurde da sehr wohl ständig runter getaktet auf einzelnen Kernen. Und ich rede von Energieprofil ausbalanciert.
 
Hast du völlig Recht. Hab das in Post Singlecore Turboproblem (nicht nur) beim Haswell-E - Seite 8 ja schon nachgestellt (aber mit Prime).

Fakt ist, auch wenn wirklich nur ein Kern belastet wird (einer Thread der nicht von Windows durchgereicht wird) - takten (bei 115X) all keren auf dem mindest-Turbo (nicht auf dem Max turbe, wie man es bei einem Kern erwarten würde, und wie Intel das ja auch anpreist).
Die frage ist, wann taktet eine einzelner Kern auf dem MaxTurbo? - weil sie tun es laut Hwinfo gelegentlich.
 
Da ich übertakte, ist das Problem bei mir nicht vorhanden. Der geht dann gleich auf den min/max Turbo (ist dann ja gleich). ;)

Interessant finde ich bei der Thematik auch, dass das in Tests nie so recht erwähnt wird. Da sehen die 6 / 8 Kerner in Spielen ja unterdessen oft besser aus. Der 6er hat in Windows 7 gerade mal 50% der Framerate geliefert in TESO ohne Höchstleistung und die hat dann locker 40 Watt oder mehr zusätzlich gebraucht. Hängt natürlich auch immer davon ab was im Hintergrund noch an Prozessen läuft - besonders im Idle.
 
Ich hab nochmal einen Test ohne Vollast gemacht - und siehe da, auch Haswell kann die Kerne Unterschiedlich takten!

Hier- einzelner Kern mit 50% auslastung - der Kern geht auf 3,3Ghz
partloadf.jpg

Und einzelner Kern mit 100% auslastung - ALLE Kerne geht auf 3,0Ghz
fullLoad.jpg
 

Anhänge

  • partload.jpg
    partload.jpg
    191,7 KB · Aufrufe: 188
Ja, sobald man keine Single Core Vollast gibt taktet er schön einzeln. Ich find das Verhalten aber Besser als bei den 6/8 Kernern, die ja aus dem Serverbereich stammen. Die sind wohl nach dem Motto ausgelegt, dass ein Server eh rund um die Uhr läuft und Turbo und somit temporär mehr Strombedarf sich nur lohnt, wenn mehr gefordert wird als Singlecorelast.
 
Zuletzt bearbeitet:
Doofe Frage, warum stellt ihr den Maximaltakt nicht einfach im Bios ein. Mein 5820k läuft auf 4.5GHz aber dennoch taktet er brav runter wenn er idle ist. Sobald irgendein Game läuft, laufen alle Cores auf 4.5Ghz, zuverlässig und konstant, auch im ausgeglichenen Energiemodus bei W10.
 
Doofe Frage, warum stellt ihr den Maximaltakt nicht einfach im Bios ein. Mein 5820k läuft auf 4.5GHz aber dennoch taktet er brav runter wenn er idle ist. Sobald irgendein Game läuft, laufen alle Cores auf 4.5Ghz, zuverlässig und konstant, auch im ausgeglichenen Energiemodus bei W10.

Dito.
 
Doofe Frage, warum stellt ihr den Maximaltakt nicht einfach im Bios ein. Mein 5820k läuft auf 4.5GHz aber dennoch taktet er brav runter wenn er idle ist. Sobald irgendein Game läuft, laufen alle Cores auf 4.5Ghz, zuverlässig und konstant, auch im ausgeglichenen Energiemodus bei W10.

Darum geht es ja hier. Mit Windows 10 klappt das schon deutlich besser aber von konstant kann selbst da keine Rede sein.
 
Das hat mit Windows nix zu tun, das Verhalten ist seit Windows 7 bereits so - zumindest habe ich es nie anders erlebt (und ich würde ne K CPU sicher nie auf Auto betreiben...wozu auch).
Ihr sprechtn hier immer von Turbo und Non-Turbo Takt. Diese Unterscheidung ist nur relevant wenn man keinen OC betreibt bzw. die Frequenzwahl dem CPU überlasst. Setzt man die Werte hingegen manuell (min und max) im Bios, dann sieht das anders aus. Dann gibt es keinen Turbo mehr sondern lediglich einen Maximaltakt und einen Minimaltakt, alles dazwischen wird automatisch geregelt.
Mein Haswell-E geht bei Last auf 4.5 rauf, und zwar jeder genutzte Core. Ich hab das gestern mal (aus Interesse) getestet, egal ob Prime, BF1 oder andere Games, selbst wenn ich dir Cores einzeln schalte ändert sich hier nichts, die sind immer bei 4.5ghz bzw. gehen ohne Last auf 1.2 runter.

Du hast einen 4-Kerner, ich einen 6 Kerne und das Verhalten ist bei beiden (wenn man die Werte manuell festlegt) gleich. Wenn ich die Werte auf Auto belasse dann ist das genannte Verhalten völlig normal. Der Turbo springt eben nur an wenn besonders viel Leistung (kurzfristig) benötigt wird.

Aber, die eigentlich Frage ist, warum gibt es 9 Seiten zu einem Thema das man ganz leicht umgehen kann indem man den Wert einfach manuell festlegt? Oder geht es hier um User mit Haswell-E CPUs die kein Oc bzw. keine freie Frequenzwahl betreiben können (Xeons?).
 
Weil sich das Thema ein wenig Verändert hat. Die Tuborboost Probleme sind eigentlich behoben - und die hatte ich auch nicht. Der Takt ist bei mit immer Völlig ok (4.2 max - ohne boost über den multi

Du hast einen 4-Kerner, ich einen 6 Kerne und das Verhalten ist bei beiden (wenn man die Werte manuell festlegt) gleich. Wenn ich die Werte auf Auto belasse dann ist das genannte Verhalten völlig normal. Der Turbo springt eben nur an wenn besonders viel Leistung (kurzfristig) benötigt wird.

An dieser Stelle irrst du dich. Liegt auf einem Haswell-E 100% Last auf einem Kern, Takte diesere Kern auf Max - aber nur dieser eine, die anderen gehen schlafen. Bei einem Haswell 4-Kerner Takte alle Kerne auf max, auch wenn nur ein Kern auf 100% belastet ist. Der Haswell-E verhält sich eigentlich genauso wie erwartet - das "Unsinnige" verhalten legt eigentlich der 4-kerner an den Tag.

Betrachten wir jetzt einmal BF1. Das Spiel lastet Problemlos viele Kerne aus, was dazu führt, dass auch bei Haswell-E alle Kerne im max-takt liegen - wird ein Thread jetzt von Kern zu Kern verschoben spürt man keinerlei beeinträchtigungen.

Kommen wir zu Arma3. Das Spiel lastet eigentlich nur einen Kern aus, die anderen schlafen. Wird jetzt dieser Mainthread auf einem Haswell-E von einem 4,2Ghz taktendem kern, auf einen schlafenden mit 1,2 verschoben, gibt es ein kurzen Einbruch, bis der Kern aufwacht, Volt anlegt und hochtaktet. Bei Haswell 4-Kernen tritt das problem nicht auf, da eh alle auf max Laufen.

Ich will jetzt das Problem nicht überbewerten, da in den meisten Fällen ist man davon nicht betroffen. Ich persönlich spiele, wenn ich spiele, aber fast nur Arma3 - und da entscheidet der höchstleistung-modus leider zwischen spielbar, und nicht spielbar.

Ich hoffe ich konnte das nochmal einigermaßen gut erklären. Es liegt nicht am Maximaltakt/Turbo per se.
 
Ah, nun hab ich es verstanden. Ich hab nur Bf4, Bf1 und BfH getestet und bei diesen Spielen wäre mir kein Problem aufgefallen. Aber das Verhalten an sich würde der Haswell-E richtig machen, denn nur jene Cores mit Last sollten hoch takten, nicht jene die im Leerlauf sind.
Gut, ich hab hier primär reingeschaut weil ich selbst mit nem 4.5GHz Haswell-E immer wieder Aussetzer in Bf1 habe und daher dachte, es könnte dieses Problem auch dort zugrunde liegen. Allerdings laufen alle Kerne im Max Takt, d.h. selbst wenn ein Lastwechsel von Core zu Core geschieht, dürfte dies keine Auswirkungen haben. Das Problem bei BF1 ist wohl die elend hohe CPU Auslastung wenn man damit Grafikkarten befeuert die über 120 FPS liefern. Cappe ich die FPS bei 60 ist die Auslastung deutlich geringer.
D.h. hier geht es im Prinzip um Single Core Threads.
Doofe Frage, warum weist ihr Arma 3 nicht einfach einem bestimmten Thread zu? Das wäre die leichteste Lösung und könnte über einen Link auch beim Start von Arma3 problemlos angewandt werden.
 
Die Idee ist gar nicht mal so übel - ich werde das heute Abend mal ausprobieren.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh