Hi in die Runde,
GCC: Die Neuerungen in 4.6 sollen angeblich nicht so sehr viel bringen - phoronix hat da unter Linux ein paar Tests gemacht. Steht aber auch noch auf meiner TODO, das mal bei Gelegenheit zu testen. 4.5 fuehrt zumindest bei nbench zu etwas LANGSAMEREN Code als 4.4.
....Intels Turbo ist zumindest bei den getesteten Modellen ein Witz....
Seltsamerweise wird auch das in vielen Tests ignoriert... Sandy ist turbomaessig ein Rueckschritt gegenueber Lynnfield. Mein Xeon X3470 (entspricht etwa dem i7 870) hat eine 2/2/4/5 Konfig, das bedeutet bei Lynnfield ein Plus von 266 MHz mit allen Cores und von 666 MHz mit einem Kern. 100/400 bei Sandy sind da vergleichsweise schlecht.
Was ich an AMDs Turbo mag: Man kann ihn ganz bequem ueber MSR einstellen, in allen Richtungen. Unseren Fx6100 kann ich mit einem zweizeiligen Shellscript uebertakten, ohne dabei irgendwas kompliziertes tun zu muessen. Ebenso kann ich ihn bei Default lassen und nur den Turbo umbauen.
Trick ist:
Die MSR 0xc0010064 bis ...6b definieren die P-States, wobei beim FX6100 ...64 P0 ist, ...65 P1 und ...66 P2 - jeweils aus Sicht der Hardware. Fuer das OS ist das Hardware P2 das normale P0 (Standard-Takt), waehrend HW P0 und HW P1 "unsichtbar" sind. Definiert man also ...64 und ..65 um, dann definiert man den Turbo um. MSR schreiben und lesen geht bequem mit rdmsr und wrmsr aus den msrtools unter Linux.
Beispiel:
Bei unserem FX6100 enthaelt das MSR 0xc0010064 den Wert 0x800001b200001617. Das vordere Stueck beschreibt Spannungen usw. (siehe Bios- und Kernel Programming Guide fuer den Bulldozer), die letzten beiden Stellen sind (mit ein paar Umwegen, die ich hier ignoriere, der verdoppelte Multiplikator). 17h bedeutet 23 dezimal, da kommen 10h (16 dezimal) drauf, macht also 39. Multi fuer Turbo ist 19,5, passt also. Schreibe ich in selbiges MSR den gleichen Wert, nur mit 18 am Ende, ist der Turbo fuer die Haelfte der Module bei 4 GHz usw.
Ohne Spannungsaenderung (war bislang zu faul, die entsprechenden Bits zu dekodieren) macht dieses Exemplar bei 4,6 GHz Turbo noch bequem einen nbench-Lauf und taktet den Turbo dabei auch nicht runter. 4,7 crashen nach wenigen Sekunden, 4,8 sofort beim Umschalten. Wenn man nun auch noch an den Spannungsbits drehen wuerde, koennte man vermutlich einen stabilen Turbobetrieb bei fast 5 GHz realisieren.
Btw... bei 4,6 GHz hat er immer noch keine Chance, im nbench einen i7 2600 zu erreichen, aber immerhin kommt er bei 4 GHz zumindest integermaessig an einen i7 860 ran und ueberbietet ihn darueber dann deutlich. Floatingpoint: Keine Chance, auch nicht gehen den alten Lynnfield.
Der Allcore Turbo (MSR ...65) steht bei 3,6, aber den haelt er schon bei normalen Lasten nicht, sondern geht eher so auf 3,4 (kann man mit "turbostat" aus den Tools zum Linux-Kernel gut beobachten), von daher bringt Erhoehen da nichts - ich denke mal, das ist den 95 W TDP geschuldet.
Was auch sinnvoll ist: Der FX6100 taktet die Northbridge mit 2 GHz. Gehe ich mit den Kernen auf 4 (im Turbo), ist durch das nun synchrone Taktverhaeltnis die Performancesteigerung ueberproportional hoeher, als es der Sprung von 3,9 auf 4,0 vermuten lassen wuerde. Aehnliches galt bei anderen Takten, wobei dieses Exemplar fuer eine NB-Frequenz von 2,2 GHz (Standardwert des FX8150) schon deutlich mehr Spannung auf der NB brauchte als fuer 2,0.
Btw... alle Tests, die ich hier erwaehnt habe, waren mit dem Standard-Mini-Spielzeug-Boxed-Kuehler!
Viele Gruesse,
Jan