amd und intel - hyperthreading

  • Ersteller Ersteller DarkInterceptor
  • Erstellt am Erstellt am
D

DarkInterceptor

Gast
hi leute
mir kam heut beim arbeiten die frage warum amd nie auf den hyperthreading zug aufgesprungen ist.
bringt das denn kaum mehrleistung oder wie ist das?
ich möchte hier keine amd vs intel debatte lostreten. mich interessiert das halt einfach. und vor allem. warum hat intel sich nach dem p4 wieder davon losgesagt und fängt jetzt wieder damit an? soll das nur marketing getue sein das intel sagt "unsere cpu's können 8 anstelle von 4 treads abarbeiten"?
benchmarks lügen bekanntermaßen nicht so ganz wenn man vergleichswerte hat aber ob ein bm auch praxistauglich ist?
bleibt noch imemr die frage. wozu HT?

gruß
Dark
 
...auch die AMD Athlon 64 X2, Opteron Dual-Core-Prozessoren und Phenom-Prozessoren geben sich als hyper-threading-fähig aus, um von diversen darauf optimierten Programmabläufen zu profitieren.

Quelle: Wikipedia

So ganz blick ich da auch nicht durch, anscheinend unterstützen AMD CPU's Hyper Threading, vllt weiß noch jmd besser bescheid...

Hyper Threading und AMD: Artikel aus 2003
 
Zuletzt bearbeitet:
Hyperthreading wurde von Intel entwickelt und müsste von AMD lizensiert werden. Das hätte aber für Intel zur Folge das die sowieso schon überlegenen Opteron Prozessoren in Servern nochmals deutlich beim Durchsatz zulegen würden.

Also lizensiert Intel Hyperthreading nicht an AMD, solange die in diesem Bereich hinten liegen.

AMD wird die Lizens ab Einführung der Corei Xeons wohl vergeben nehme ich an.

Intel hat auf der Ebene noch nie sehr fair gespielt.

Gibt weitere Beispiele
 
Hyperthreading war zu Zeiten vom P4 interessant, da er dem Betriebssystem 2 CPUs bei einem existierenden vorgaugelte und die auf Hyperthreading optimierten Programme davon profitierten. AMD hätte Lizenzgebühren bezahlen müssen für eine Technologie, die nicht von jeder Software unterstützt wird.
Nben dem finanziellen Aspekt war wohl AMD klar, daß sie zuerst die 64-Bit-Prozessoren und die Dualcoreprozessoren auf den Desktopmarkt bringen werden, also zahlten sie nicht. Daß jetzt wieder Hyperthreating kommt wundert mich, da nicht mal alle Programme auf Dualcore optimiert sind. Und für den normalen Enduser wäre die Anithyperthreatingtechnologie interessanten, daß aus zwei Kernen für die Anwendung 1 Kern wird, davon würden viel mehr Programme/Spiele profitieren. Leider scheint das nicht möglich zu sein.
mfg
norbert
 
Es geht beim Hyperthreading auch mehr um die Servergeschichten als um den Privatmann zu Hause.
 
hmm das wär doch was: anti-HT
dann hätte ich ja nen 1kerner mit 12ghz *spekulier*
aber sicher nicht machbar. aber eine tolle idee
 
Hyperthreading war dazu gedacht, die elendig lange Pipeline (bis zu 31 Stufen) des Pentium 4 besser auszunutzen. Also wurden einige Teile des Prozessors redundant gebaut, so dass zwei logische Prozessoren möglich waren, die sich eine Pipeline teilen.
Für AMD-Prozessoren war Hyperthreading nie relevant, da man schon immer Prozessoren mit relativ kurzen Pipelines gebaut hat, die eine hohe Pro-Takt-Leistung hatten.
Im Core i7 hat Intel das Feature sicherlich implementiert, um die Ausrichtung von Software auf Mehrkernanwendungen zu forcieren. Man bietet hier schließlich acht logische Prozessoren; Software, die davon profitiert, findet sich im Heimanwenderbereich aber eher selten.
 
DarkInterceptor schrieb:
mir kam heut beim arbeiten die frage warum amd nie auf den hyperthreading zug aufgesprungen ist.
Allgemein nennt sich die Technik SMT - Simultaneous Multithreading. Hyperthreading ist/war lediglich Intels Name dafür. Lizenzieren muss AMD da also nichts, weil man für die eigene Mikroarchitektur sowieso eine eigene SMT Implementierung bräuchte.

Warum AMD dies bisher nicht nutzt? Nun, das kann mehrere Gründe haben.
Ich würde davon ausgehen, dass SMT in Zukunft in CPUs vermutlich keine allzu grosse Rolle mehr spielt. SMT dient ja dazu, einen höheren Rechendurchsatz zu erreichen, indem die Rechenwerke besser ausgelastet werden. Das sind jedoch Peanuts, wenn man dagegen das Potenzial bezüglich Rechenleistung von GPUs betrachtet, worauf AMD setzt. Siehe Fusion bzw allgemein GPGPU. Ich denke, dass Intel SMT wieder nutzt, ist eher eine Notlösung, bis Larrabee fertig ist. Denn gegen ATI und nVidia sehen sie erstmal kein Land in diesem Bereich.
Hinzu kommt, was nicht ganz so ausschlaggebend ist, sich aber dennoch nachteilig auswirkt, dass durch die Implementation mehr Logik benötigt wird, was den Chip teurer macht und eine höhere Leistungsaufnahme zur Folge hat, selbst wenn SMT nicht zum Tragen kommt. Etwas, was man im Consumer- bzw Massenmarkt nicht gebrauchen kann.
Ein weiterer Punkt ist, je kleiner die Strukturen werden und je mehr Kerne auf dem Die untergebracht, umso weniger bringt SMT etwas. Stell dir vor, du hast einen Prozessor mit 100 Kernen. Mit SMT Logik kannst du dort zB 20% mehr Performance rausholen. Statt dieser Logik könntest du aber auch 20 weitere Kerne aufs Die platzieren, was im Endeffekt auf das Gleiche hinausläuft. Eine ähnliche Situation gibt es ja dann zwischen Nehalem Xeon mit 4 Kernen + SMT und Opteron Istanbul mit 6 Kernen ohne SMT.
Ausserdem wird durch SMT der Verwaltungsaufwand des Betriebssystems grösser, weil zwischen physischen und logischen Kernen unterschieden werden muss.

Insgesamt hat SMT heutzutage für den Consumer Bereich eigentlich mehr Nachteile als Vorteile. Und es wird auch nicht besser, eher schlechter. Ich denke, deshalb wird AMD auch in Zukunft nicht auf diesen Zug aufspringen. Zumal SMT eigentlich ein suboptimales Konzept ist. Viel besser wäre ein Konzept, was vor geraumer Zeit als "Anti-Hyperthreading" diskutiert wurde. Das würde die Probleme lösen, die SMT nicht lösen kann. Und die Vorteile von SMT gäbe es obendrein automatisch dazu. Und nein, im Gegensatz zu den Meinungen oben, eine solches Feature ist definitiv machbar. Es würde nur einen grundsätzlich anderen Designansatz erfordern. Dafür sind die Chiphersteller aber vermutlich zu träge.
 
Zuletzt bearbeitet:
Aber wie will man soetwas realisieren?
(extrem) Einfach ausgedrückt müsste man für Hyperthreading einfach die Register vergrößern.
Aber wie ist das dann bei Anti Hyperthreading, die Register halbieren?^^

Edit.

gruffi schrieb:
Ausserdem wird durch SMT der Verwaltungsaufwand des Betriebssystems grösser, weil zwischen physischen und logischen Kernen unterschieden werden muss.
Das stimmt nicht, das OS kann nicht zwischen den Kernen unterscheiden, man setzt darauf, dass es die richtigen Kerne trifft, doch garantieren kann man das nicht.
 
Zuletzt bearbeitet:
@gruffi:
Woher holst du deine 20%-Argumentation?
SMT/Hyperthreading bringt sehr wohl auch mehr Leistung, wenn das CPU-Design dafür ausgelegt ist. Für den Pentium 4 war es auf jeden Fall sehr sinnvoll. Dem Betriebssystem ist es außerdem egal, ob es von logischen oder physikalischen Kernen betrieben wird, der Verwaltungsaufwand wächst nicht.
Bei aktuellen CPUs mag es weniger sinnvoll erscheinen, aber es ist ein Ansatz, seine Prozessoren bei optimierten Anwendungen besser auslasten zu können, und das auf eine sehr elegante Art und Weise.
Und auf die GPUs als Allheilmittel für alle Leistungsprobleme würde ich nicht vertrauen, denn auch GPUs sind begrenzt in ihrer Anwendungsbreite und lange nicht für alle Aufgaben brauchbar.
 
@Vladez

Du musst die Register für SMT nicht vergrössern. Du brauchst einfach eine weitere Pipeline und ein weiteres Register Set. Eventuell musst du einige Puffer vergrössern. Das hängt aber dann von der Mikroarchitektur ab.
Wie gesagt, "Anti-Hyperthreading" würde einen anderen Designansatz erfordern. Mit dem bisherigen Multicore Ansatz kommst du da nicht weit. Eine Möglichkeit wäre zB, man geht wieder zu einem Ein-Kern-Design zurück und implementiert das "Multi" eben nicht auf Kernebene, sondern eine Ebene darunter. Also wo die Rechenwerke, dedizierten Caches, usw zu finden sind. Drumherum bräuchte man dann sowas wie einen Hardware Thread Multiplexer.

Übrigens, das Betriebssystem kann sehr wohl zwischen physischen und logischen Kernen unterscheiden. Bisher wurde das zumindest beim Windows Thread Scheduler nicht vollends berücksichtigt (afaik), was sich durchaus negativ auswirken konnte. Dies soll sich aber bei zukünftigen Versionen des Betriebssystems ändern.

@Iapetos

Die 20% waren lediglich ein Beispiel. IIRC gab es von Intel mal eine Übersicht, wo die Gewinne durch SMT zwischen 10 und 30% lagen. Dass es je nach Mikroarchitektur anders auschauen kann, sollte klar sein. Und wie ich oben schon schrieb, der Verwaltungsaufwand wächst definitiv. Wenn du zB 2 Lastthreads hast, muss das Betriebssystem dafür sorgen, dass diese auch auf zwei separate physische Kerne verteilt werden. Das gibt es nicht kostenlos.
Btw, lies dir nochmal durch, was ich geschrieben habe. Dass GPUs für alle Aufgaben brauchbar sind, habe ich gar nicht behauptet. Aber ihre Stärken überdecken SMT praktisch vollkommen.
 
Zuletzt bearbeitet:
Zurück
Oben