Krethi & Plethi schrieb:
SMT = 1 Kern mit 2 Registersätzen
CMT = 2 Kerne
Aber bei CMT auch nicht komplette Kerne, sondern auch teilweise geteilte Ressourcen pro Modul. Sonst wäre es ja einfach nur klassisches, symetrisches Multi-Core.
Grob vereinfacht kann man es so beschreiben:
AMD hat bei CMT zwei "80%-Cores" zu einem Modul zusammengefasst. Intel hat bei HT auf einen kompletten Core nochmal 5% draufgeschlagen, um darauf zwei Threads parallel abarbeiten zu können.
Beide Ansätze haben ihre Vor- und Nachteile.
Bei Intels HT gibt es den Vorteil, dass ein Core+HT immer noch die volle Single-Thread-Leistung bringt. Allerdings legt er bei zwei Threads nicht ansatzweise um 100% zu, sondern vielleicht um 10-15%.
AMDs CMT glänzt bei zwei Threads, wo ein Modul dann quasi 160% der Leistung eines theoretischen, einzelnen 100%-Cores bringt. Aber in Single-Thread halt auch nur ca. 85% (etwas mehr als 80%, weil er die sonst geteilten Ressourcen für sich allein hat und eventuell dank Turbo etwas höher takten kann).
Letztendlich kommt es also auf die Software an, was besser ist. Und auch nicht nur auf die Thread-Anzahl und wie sich die last darauf verteilt, sondern z.B. auch, ob sie eher Integer- oder Floatingpoint-lastig ist, denn AMDs Module haben gemeinsam genutzte FP-Einheiten, aber dedizierte Integer für jeden Core, usw.