Am heutigen Tage hat Microsoft für das Betriebssystem Windows 7 einen Hotfix veröffentlicht, der die Probleme beheben soll, die sein jüngstes OS in Kombination mit einem AMD FX-Prozessor hat, die Lasten optimal auf die in Modulbauweise gefertigten Kerne zu verteilen, sodass am Ende die optimale Leistung dabei herauskommt. Bereits im Vorfeld der AMD FX "Bulldozer" Präsentation hatte AMD darauf hingewiesen, dass der Scheduler von Windows 7, der die Prozesse bzw. die Threads auf die vorhandenen Kerne verteilt, suboptimal arbeitet für den Bulldozer.
Wie man sieht ist Windows 7 die Modulbauweise und das CMT-Multithreading des Bulldozers nicht bekannt, verteilt die Threads wahllos wie bei einem herkömmlichen Multi-Core Prozessor. Als Folge davon kann der Turbo-Modus nie einzelne Kerne optimal beschleunigen und die Stromsparfeatures nie ganze Teilsegmente zweck niedrigerem Stromverbrauch stilllegen. Der Scheduler von Windows 8 dagegen soll das bereits berücksichtigen. Einige Publikationen haben das bereits nachgewiesen, wir selber hatten in unserem Review noch keine Gelegenheit, Tests auf Windows 8 durchzuführen.
Der heute von Microsoft veröffentlichte Hotfix für den Scheduler soll das Zuordnungsproblem der Threads nun dahingehend lösen, dass der Bulldozer nicht mehr als Prozessor mit 8 gleichberechtigten Kernen verwaltet wird, sondern als Quad-Core Prozessor mit Simultaneous Multi-Threading "SMT", so wie die Intel Core i7 Prozessoren zum Beispiel.
Leider ist unser regulärer AMD FX gerade zu Grafiktests in Deutschland unterwegs, sodass uns unsere Referenzplattform für einen Test nicht zur Verfügung steht. Daher muss hier ein privater AMD FX-6100, ein 6-Kerner (3-Moduler) mit 3,3 GHz Basis- und 3,9 GHz Turbo-Takt, als Versuchskaninchen herhalten. Auf die Schnelle daher ein paar Benchmarks, wo wir der Meinung waren, dass eventuelle Verbesserungen am deutlichsten sichtbar sein könnten:
Die Werte sind alarmierend! Auf Basis dieses Ergebnisses können wir zum aktuellen Zeitpunkt nur eindringlich davor warnen, den Hotfix KB2592546 zu installieren. Die Leistung steigt weder bei Single-, noch bei Multithreading-Anwendungen. Teilweise fallen die Resultate sogar erheblich schlechter aus!
Bei kurzem logischen Nachdenken wird auch klar wieso. Der Versuch, mehr Leistung aus dem Bulldozer zu holen, indem man ihn wie einen Prozessor mit SMT alias HyperThreading behandelt, muss scheitern. Bei einem HyperThreading-Prozessor teilen sich zwei logische Kerne einen physischen. Das heißt, der Scheduler versucht zu vermeiden, dass Threads auf zwei logischen Kernen eines echten Kerns laufen und verteilt sie falls möglich lieber auf zwei echte Kerne. Beim Bulldozer jedoch - siehe AMDs Grafik oben - wäre es ausdrücklich erwünscht, dass die Threads innerhalb eines Moduls laufen, damit der Turbo aktiviert wird, die Threads den shared L2-Cache nutzen können und der Rest schlafen gelegt werden kann. Der Patch geht also genau in die falsche Richtung.
So bleibt aktuell nur zu sagen: Ziel verfehlt, Patch bitte umgehend wieder zurückziehen und die Sache nochmal durchdenken!
Update 1 Auf Leserwunsch wurde noch ein Benchmark gefahren mit extrem FPU-lastiger Auslegung in Kombination mit wenig Threads.
Windows 7 SP1 Original:
Windows 7 SP1 Bulldozer-Scheduler-Hotfix:
Der Turbo-Modus war in beiden Fällen an und es wurde davon abgesehen, Threads auf irgendwelchen Kernen oder Modulen festzupinnen, da dies auch der normale User nie tun wird.
Hier - da extrem SIMD/FPU-lastig - bringt der Scheduler-Patch in der Tat etwas. Aber lohnt es sich, hier auf der FPU/SIMD-Seite 4000 statt 3900 Kiloknoten/s mitzunehmen, wenn auf der anderen Seite (INT/ALU) 2200 statt 3300 KB/s zu Buche stehen?!
Diesen Artikel bookmarken oder senden an ...