Zum Thema "Effektivitaet von CMT":
Kernelcompilation unter Linux mit
...zwei Threads EINES Moduls: 15m12.427s
...je ein Thread von ZWEI Modulen: 11m51.664s
(nicht ueber die Zahlen wundern, das war untertaktet auf 1400 MHz, siehe unten)
Im Vergleich zu Intels Lynnfield i7 860 (keine Sandy zum Testen vorhanden), dieses Mal mit ALLEN Threads mit vollem Takt und Turbo im Vergleich zu deaktiviertem HT/CMT:
FX6100 OHNE CMT, also 3 Kerne von drei Modulen: 3m28.108s
FX6100 MIT CMT, also 6 Kerne, 3 Module: 2m22.931s
i7 860 OHNE HT (4 Threads, 4 Kerne): 2m21.761s
i7 860 MIT HT (8 Threads, 4 Kerne): 1m58.376s
Wenn man davon absieht, dass der bald zwei Jahre alte Lynnfield mit dem kleineren FX 6-Kerner kein Problem hat, sieht man, dass das CMT in der Tat deutlich wirksamer bei gut parallelisierbaren Lasten ist als Intels HT.
Unter Linux existiert uebrigens auch kein Schedulingproblem... die Schedulingdomaenen werden so gesetzt, wie es Linux auch bei HT macht: Siblings werden erst benutzt, wenn pro Kern (Intel) oder Modul (AMD) schon ein Thread laeuft. Sprich: 3 mit Vollast laufende Threads laufen beim FX6100 mit je einem Thread pro Modul.
Und zu guter Letzt... das, was mich geschockt hat (und das ich so auch nicht im Netz gefunden habe):
Bei Lasten, die die neuen Befehlssatzerweiterungen (AVX und Co) nicht verwenden, ist ein Zambezi-Kern etwa genauso schnell wie ein Bobcat-Kern (Zacate) bei gleichem Takt! Unser E-350 laesst sich auf 1422 takten, der Zambezi auf 1400... dabei ergibt sich beim Kernelcompilieren:
1 Zambezi-Modul mit 2 Kernen @ 1.4 GHz: 15m12.427s (siehe auch oben)
2 Zacate-Kerne @ 1.422 GHz: 15m33.807s
Kompiliert wurde jeweils mit Parallelitaet 4 (also 4 Threads - make -j4), so dass die jeweils 2 Kerne wirklich ausgelastet werden.
nbench (ziemlich alter single-thread Benchmark):
Zambezi@1.4 GHz, Dual Channel DDR3-1333
MEMORY INDEX : 9.715
INTEGER INDEX : 10.926
FLOATING-POINT INDEX: 15.534
Zacate@1.422GHz, Single Channel DDR3-1066
MEMORY INDEX : 9.153
INTEGER INDEX : 11.731
FLOATING-POINT INDEX: 15.690
Ein uralter K7 Thunderbird ist bei 1.4 GHz uebrigens etwa ebenso schnell...
OS war jeweils Linux 3.1, nbench war mit gcc und -march=native compiliert (was bei Zambezi allerdings zu K10-Optimierungen fuehrt, da der benutzte gcc 4.5 ihn noch nicht kennt - macht aber nichts, denn ich schrieb ja: Software, die die neuen Erweiterungen nicht nutzt).
Vielleicht sollte CB einen taktbereinigten Vergleich mit Zacate mal ernsthaft erwaegen... ich frage mich dabei, wohin der ganze Aufwand geflossen ist, denn bobcat ist ja nun wirklich sehr einfach und trivial. Sollten es tatsaechlich "nur" die potentielle Taktsteigerung und die Befehlssatzerweiterungen sein?
Viele Gruesse,
Jan