Hyperthreading vs. Dualcore

lordofazeroth

Account gelöscht
Thread Starter
Mitglied seit
15.11.2005
Beiträge
146
Um wieviel schneller ist eine Dualcore Cpu als eine Hyperthreading CPU?
Ht emuliert ja nur die 2te CPU, es sind also nur die wichtigsten Komponenten eines Prozessors doppelt vorhanden.

Gibt es Anwendungen die von HT profitieren, aber nicht von Dual Core?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
lordofazeroth schrieb:
Um wieviel schneller ist eine Dualcore Cpu als eine Hyperthreading CPU?
Ht emuliert ja nur die 2te CPU, es sind also nur die wichtigsten Komponenten eines Prozessors doppelt vorhanden.

Gibt es Anwendungen die von HT profitieren, aber nicht von Dual Core?

Vom Feeling her kommt die HT Technologie sicherlich an DualCore ran, die Leistung ist aber nicht vergleichbar. Hyperthreading kann durch die bessere Auslastung der Recheneinheiten ca. 10-20% (bei Crunching Anwendungen auch mal 30%-40%) Mehrleistung bringen.

Dualcore verdoppelt die theoretische Leistung. Performancegewinn um die 80% möglich!

Grundsätzlich sollten Programme auf HTT genauso reagieren wie auf Dualcore, bloß nicht in dem Ausmaß.

Wenn garkeine Multithreading-Unterstützung implementiert ist, bringt beides nichts ;)
 
Vorallem bringt HT nur was bei einer langen Pipeline... deswegen haben die AMD Cpus auch kein HT, weil es nichts bringen würde.

Die neuen Intel werden auch kein HT mehr haben.

mfg
 
nils918634968 schrieb:
Vorallem bringt HT nur was bei einer langen Pipeline... deswegen haben die AMD Cpus auch kein HT, weil es nichts bringen würde.

Die neuen Intel werden auch kein HT mehr haben.

mfg

Das ist so nicht richtig. Es bringt generell was, wenn ein Thread die Ausführungseinheiten nicht auslasten kann. Beim P4 bietet es sich zusätzlich an, da im Falle einer Missprediction die Daten eines Threads aus dem Sheduler gelöscht werden und das Backend dann für lange Zeit (viele vorhergehende Pipelinestufen) vollständig dem anderen Thread zur Verfügung steht.

Das würde beim Core danke des breiten Backends sicher auch ganz gut funktionieren...
 
Ok, ich weiß, dass ist Leichenschändung (und ne ziemlich krasse dazu...). Aber mir ist das ganze (auch nach Lesen von vielen vielen Seiten) immer noch nicht so wirklich klar geworden.
Ich weiß (u.a. dank Wikipedia), was HT und echtes MT sind. Und ich weiß, wie sie gegeneinander abschneiden, wenn HT Singlecore gegen MT Manycore gegeneinander antreten.
Jetzt aber das, was ich nicht verstehe: Warum haben aktuelle Manycores immer noch HT-Funktionen? Kann dadurch überhaupt noch eine reelle Leistungsteigerung erreicht werden?
Beispiel: eine Anwendung, deren Code 100% MT ermöglicht - wird mir hier ein Core i7 mit 4 Kernen=4 Threads oder 4 Kernen=8Threads mehr bringen? Bei Anwendungen, die nicht 100% MT-fähig sind, meine ich mich an Benchmarks zu erinnern, bei denen der Core i7 mehr Rechenoperationen/Zeiteinheit leistete, wenn HT ausgeschaltet war (also 4 Kerne=4 Threads).

Gruß und schonmal Danke für die Antwort,
Los
 
Zuletzt bearbeitet:
ich wollt grad sagen xD
 
Ups, man sollte halt doch ab und zu mal auf das Daum gucken. :haha:
 
jo trotzdem is seine frage aktuell: so wie ich es verstanden habe, wurde HT eingeführt um die pipelines besser auslasten zu können. ein P4 z.b. hatte 7 integer pipelines (ein 486 hat nur eine.. sind "quasi schon 7 cpus" in einer!) nur der p4 musste sich selbst die aufgaben auf diese 7 pipelines aufteilen, damit diese parallell genutzt werden können. das klappt nur sehr selten (alle 7 zu nutzen), irgendwann haben die intel entwickler sich gedacht, lass uns HT machen, eine virtuelle cpu mit 3 pipelines. (die dazugehörige "echte" hat dann nurnoch 4)

also im endeffekt: HT an für anwendungen die viele threads machen können, und ht aus für welche die es nicht können.

klug wäre natürlich, wenn beim core i HT bei nichtverwendung der HT units (windows7 benutzt die ja nur wenn die richtigen voll ausgelastet sind) die pipelines dynamisch den richtigen units zugeordnet werden würden, ich weiss nicht inwiefern das geht.
 
Zuletzt bearbeitet:
jo trotzdem is seine frage aktuell: so wie ich es verstanden habe, wurde HT eingeführt um die pipelines besser auslasten zu können. ein P4 z.b. hatte 7 integer pipelines (ein 486 hat nur eine.. sind "quasi schon 7 cpus" in einer!) nur der p4 musste sich selbst die aufgaben auf diese 7 pipelines aufteilen, damit diese parallell genutzt werden können. das klappt nur sehr selten (alle 7 zu nutzen), irgendwann haben die intel entwickler sich gedacht, lass uns HT machen, eine virtuelle cpu mit 3 pipelines. (die dazugehörige "echte" hat dann nurnoch 4)

Das ist mir nicht ganz schlüssig, dass der echte Kern dadurch Ausführungseinheiten verliert. Intel hat SMT immer mit dem "Tetris-Prinzip" dargestellt: der virtuelle Kern füllt einfach Lücken aus, in denen einige Pipes nicht voll ausgelastet sind. Dem realen Kern gehen dadurch keine Pipes verloren. Es kann vielleicht sein dass er einen zusätzlichen Takt auf eine Pipe warten muss, weil der virtuelle Kern kurz vorher dort was eingefüllt hatte, was länger als einen Taktzyklus braucht... aber auch das tritt nur auf, wenn der virtuelle Kern tatsächlich Arbeit hat, was also unterm Strich einen Performancegewinn darstellt.

Allerdings kann es trotzdem sein, dass aktives SMT eine CPU in single-threaded Applikationen verlangsamt, da durch das sortieren der Ausführungseinheiten ein Verwaltungsoverhead entsteht. Und zusätzlich kann es sein, dass die Applikation selbst nicht gut funktioniert, wenn ihr zuviele Cores zur Verfügung stehen...

Siehe ArmA 2: läuft schnell mit 4 Kernen, jeder zusätzliche Kern (real oder virtuell) verlangsamt das Spiel, und wenn mehr als 8 Kerne existieren startet das Spiel erst gar nicht. Keine Ahnung ob sie's mittlerweile gepatcht haben, aber der Effekt ist zum Beispiel ganz massiv beim testen des 6core, 12thread i7 980X aufgefallen.

Ein weiteres Beispiel dafür, dass die Vorteile von SMT stark von der Anzahl Kerne abhängt, die eine Applikation erwartet: bei den 4core, 8thread Lynnfields waren die Zuwächse in Spielen oft nur minimal bis negativ, während gleichgetaktete 2core, 4thread Clarkdales durchweg große Performancegewinne vorzeigen konnten. Und das, obwohl sie als Dualcore eigentlich deutlich weniger brachliegende Pipes wie ein Quadcore hat, die sich SMT unter den Nagel reißen kann... schließlich ist nicht nur die Zahl der realen Kerne (und damit die Zahl der Pipes) halbiert, sondern diese zwei realen Kerne müssen auch noch dieselbe Arbeit erledigen, die beim Lynnfield auf vier verteilt werden konnten.
 
Zuletzt bearbeitet:
jo trotzdem is seine frage aktuell: so wie ich es verstanden habe, wurde HT eingeführt um die pipelines besser auslasten zu können. ein P4 z.b. hatte 7 integer pipelines (ein 486 hat nur eine.. sind "quasi schon 7 cpus" in einer!) nur der p4 musste sich selbst die aufgaben auf diese 7 pipelines aufteilen, damit diese parallell genutzt werden können. das klappt nur sehr selten (alle 7 zu nutzen), irgendwann haben die intel entwickler sich gedacht, lass uns HT machen, eine virtuelle cpu mit 3 pipelines. (die dazugehörige "echte" hat dann nurnoch 4)

Die Pipeline vom P4 war 3fach ausgelegt. i7 ist 4fach skalar. Ausführungseinheiten hat man mehr aber das nützt nichts wenn das Frontend nicht mehr liefern kann.

Es geht auch weniger darum zusätzliche Parallelität bei gleichzeitigem Ausführen in den Ausführungseinheiten herzustellen. Vielmehr sollen durch HT Latenzen versteckt werden. Wenn beispielsweise Daten aus dem L2 Cache geholt werden müssen, dauert das günstigstenfalls etwa 10 Takte beim i7. In dieser Zeit kann ein anderer Thread die Ausführungseinheiten nutzen.

also im endeffekt: HT an für anwendungen die viele threads machen können, und ht aus für welche die es nicht können.

klug wäre natürlich, wenn beim core i HT bei nichtverwendung der HT units (windows7 benutzt die ja nur wenn die richtigen voll ausgelastet sind) die pipelines dynamisch den richtigen units zugeordnet werden würden, ich weiss nicht inwiefern das geht.

Man muss nichts an und aus schalten und die Pipelines werden auch nicht aufgeteilt. Fast alle Ressourcen werden dynamisch vergeben und es entsteht beim Durchsatz kein Nachteil. Schlimmstenfalls ist HT On genauso schnell wie Off (wenn der Betriebssystemscheduler nicht dazwischenfunkt - was er mit Win7 nicht mehr tut). *

---

Wichtig wenn man HT verstehen will ist, zu verstehen, dass da keine Pipelines aufgeteilt werden. Vielmehr füllt man mehr unabhängige Instruktionen in die Pipeline ein, damit man die brachliegenden Ressourcen nutzen kann, wenn ein Programmfluss stoppt.


* Ja, es gibt Extremfälle wo HT mal bremst, allerdings nur bei low-level-Anwendungen die für normale User nicht von Relevanz sind.
 
jo trotzdem is seine frage aktuell: so wie ich es verstanden habe, wurde HT eingeführt um die pipelines besser auslasten zu können.
Genau genommen sind es die Ausführungseinheiten (ALU/FPU), welche besser ausgelastet werden sollen.

Man muss nichts an und aus schalten und die Pipelines werden auch nicht aufgeteilt. Fast alle Ressourcen werden dynamisch vergeben und es entsteht beim Durchsatz kein Nachteil. Schlimmstenfalls ist HT On genauso schnell wie Off
Nicht ganz. Schlimmstenfalls ist SMT on sogar langsamer als SMT off, zB hohe Auslastung + Cache Trashing.
 
Interessant ist es jedoch schon, wie unterschiedlich sich die Programme verhalten.

Während manche Spiele wie Anno 1404 aus HT/SMT kaum nutzen ziehen, hingegen aber von merkbar von zusätzlichen CPU-Kernen profitieren, gibt es andere Spiele wie Resident Evil 5, wo die CPU mit SMT bis zu 40-70% schneller ist!

Test: Intel Core i3-530/540 und Core i5-661 (Seite 29) - 04.01.2010 - ComputerBase

Leider gibt es zu wenig solcher Tests, wo die Auswirkungen von HT/SMT gezielt getestet werden.
 
Wo sich HT noch lohnt ist eine In-Order-CPU: Atom, Sun T1.
Beim Atom sind 50% Mehrleistung drin beim reinen Crunchen (Winrar).
 
WinRar hat allerdings wenig mit Crunchen zu tun. Klar werden dort auch jede Menge Berechnungen durchgeführt, der Schwerpunkt liegt aber bei I/O. Auch Spiele haben keine sonderlich hohe CPU Last, weshalb SMT, je nach Anzahl der Threads, für Gewinne sorgen kann. Die allerdings mit der Anzahl der Kerne abnehmen.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh