TweakPC


AMD Bulldozer Performance-Patch: Updates von Microsoft im Test

  

Das Doppelte Update-Lottchen für AMDs Bulldozer

Microsoft lässt gleich zwei Patches für die AMD FX-Prozessoren los. Das war so angekündigt und ist insofern keine Überraschung. Wir wollen natürlich wissen, ob und wie die Updates die Leistung zu steigern vermögen. Dazu stellen wir zunächst allgemeine Überlegungen an und wollen dann sehen, ob diese sich durch Testergebnisse bestätigen lassen.

Das erste Update

Es ist noch gar nicht so lange her, da hatte Microsoft bereits KB2645594 versehentlich veröffentlicht, damals jedoch als KB2592546. Worin der genaue Unterschied außer bei der Nummerierung besteht, erschließt sich dabei nicht, die Funktionsweise ist auf die gleiche Weise beschrieben. Es liegt aber nahe, dass die erste Version noch nicht optimal den ihr zugedachten Zweck erfüllte, denn Microsoft zog das Update umgehend zurück.

AMD und Microsoft sitzen bislang in einer Zwickmühle, wenn es darum geht, Threads effizient auf die Module der FX-CPUs aufzuteilen. Innerhalb eines Moduls teilen sich die beiden Integer-Kerne das Frontend, die FPU und den L2 Cache. Dadurch profitieren laut AMD Threads, die eng miteinander verbunden sind potentiell durch kürzere und schnellere Kommunikationswege im Vergleich zum alternativen Datenaustausch über den L3 Cache. Haben zwei Threads aber gar keine Verbindung zueinander und werden zusammen im selben Modul ausgeführt anstatt jeweils ein Modul exklusiv für sich zu haben, dann "klauen" sie sich gegenseitig Ressourcen.

Mit KB2645594 stellen sich Microsoft und AMD letzterem Szenario entgegen: Den Threads wird soweit wie möglich ein Modul exklusiv zur Verfügung gestellt, das funktioniert bei einem FX-8150 also für bis zu 4 simultan ausgeführte Threads. Jeder zusätzliche Thread muss sich die Ressourcen dann in einem Modul ohnehin mit einem anderen teilen. Auf der Strecke bleiben bei KB2645594 dabei diejenigen Threads, welche effizienter gemeinsam in einem Modul ausgeführt worden wären, weil sie voneinander abhängig sind. Inwieweit solche Abhängigkeiten von Threads untereinender bei gegenwärtiger Software gegeben sind, ist allerdings fraglich. Schließlich hatte in der Prä-Bulldozer-Ära noch kein Entwickler einen Grund, seine Software dahingehend zu optimieren - und so lange sind die Zambezi-Prozessoren ja auch noch nicht zu haben.

Daher zeugt diese "Holzhammermethode" zumindest was die FX-Modelle angeht von Pragmatismus, zumal Anwendungen, die mehr als vier Kerne ausreizen, auch im Jahr 2012 immer noch relativ spärlich gesäht sind. Kurz gesagt kann durch das erste Update lediglich die Leistung steigen, solange es unser FX-8150 nicht mit mehr als vier Threads zu tun bekommt - darüber hinaus erwarten wir keine Leistungssteigerung.

Das zweite Update

Durch das zweite Update KB2646060, das auf das erste aufsetzt, wird der C6 Power-State durch den Windows-Scheduler vorsichtiger angewendet. Weder Microsoft noch AMD gehen an dieser Stelle näher ins Detail, ob damit CC6 (Core C6) oder PC6 (Package C6) gemeint ist. Sinn macht unserer Einschätzung nach jedoch nur erstere Variante, bei der AMDs FX-CPUs mittels Power Gating einzelne Kerne in den Modulen von der Energiezufuhr trennen können.

Microsoft nennt als mögliche negative Auswirkung einen erhöhten Energiebedarf wenn nicht alle Kerne der CPU arbeiten müssen. Die arbeitslosen Kerne werden dann nicht mehr so schnell im (C)C6 Modus geparkt und länger mit Energie versorgt. AMD hingegen sieht den Vorteil dieses Updates in dem Umstand begründet, dass das Schlafenlegen und Aufwecken der Kerne in/aus dem (C)C6 Zustand mit Performance-Einbußen einhergeht, weshalb häufige Zustandswechsel an dieser Stelle eher schaden als nutzen. Gemäß dem Motto: lieber ein bisschen weniger Energie einsparen, dafür aber die Leistung rascher abrufen können.

Allerdings könnte die weniger aggressive Anwendung von (C)C6 für AMD an anderer Stelle zum Problem werden, nämlich bei TurboCore 2.0. Mit den FX-Prozessoren hat AMD ein zweistufiges Turbo-Modell eingeführt, bei dem die erste Stufe alle Kerne höher takten kann, solange die CPU währenddessen innerhalb ihrer thermischen Spezifikation bleibt. Im Fall des FX-8150 ist dies die erste Turbo-Stufe mit 3,9 GHz. In der zweiten Stufe kann bei diesem Modell die Hälfte der Kerne den Takt auf 4,2 GHz erhöhen, allerdings müssen dazu die anderen vier Kerne im (C)C6 Zustand geparkt sein. Eine seltenere Anwendung von (C)C6 muss also logischerweise auch dazu führen, dass die Voraussetzungen zur Zündung der höchsten Turbostufe seltener gegeben sind und so potentiell Leistung auf der Strecke bleibt.

Hierbei wird es also auf die Balance herauslaufen: Die durch den Patch gegebenenfalls wegfallende Zeitspanne, die benötigt wird, um einen Kern in den (C)C6 Zustand zu versetzten und aus diesem wieder herauszuholen muss sich in eine Leistung übersetzen, die einen etwaigen Turbo-Verlust aufwiegt. Bei mehr als vier Threads allerdings ist die zweite Turbo-Stufe ohnehin ausgeschlossen, dann kann die Hinauszögerung von (C)C6 hinsichtlich der Performance theoretisch nur noch positiv wirken.

Test-Procedere

Auf Basis dieser Überlegungen haben wir uns entschlossen, den FX-8150 unter verschiedenen Voraussetzungen zu testen: Ohne Patch, nur mit KB2645594 und schließlich mit KB2645594 und KB2646060 zusammen. Zudem haben wir alle diese Varianten einerseits mit unserem normalen Benchmark-Parcours vollzogen, der sehr Multitreading-freundlich ist. Um das Verhalten der CPU bei Nutzung von nicht mehr als vier Kernen zu überprüfen, haben wir diejenigen Benchmarks, bei denen wir sicherstellen können, dass sie nicht mehr als vier Threads erzeugen, auf diese Weise extra getestet.

Inhaltsverzeichnis:
[3] Fazit
  


ueber TweakPC: Impressum Copyright 1999-2014 TweakPC, Alle Rechte vorbehalten, all rights reserved