Was bringt die Hyperthreading Technik?

4 Antworten

Hyperthreading ist eigentlich nur der Weg einen künstlichen CPU Kern zu simulieren. Mehr Leistung erhält man dadurch nicht, aber weniger Leistungsverlust unter bestimmten Bedingungen (das erklär ich dir gleich).

Heutige, echte Mehrkern-CPUs besitzen dennoch Hyperthreading, um den Vorteil weiter zu nutzen. Also ein 8-Kern CPU kann mit Hyperthreading bspw. 16 logische CPU Kerne haben.

Bild zum Beitrag

Meistens laufen im Hintergrund etliche Dienste (Processes) mit multiplen Rechenoperationen (Threads). Die CPU versucht dann die Threads auf ihre logischen Prozessoren aufzuteilen, so effektiv wie möglich. Das funktioniert je nach Anwendung etwas besser oder schlechter.

Ein Prozessor mit 2 pyhischen Kernen kann wirklich 2 Rechenoperationen parallel durchführen. Ein Prozessor mit 1 phyischen Kern, kann dies nicht. Alle Prozesse laufen scheinbar parallel, aber in Wirklichkeit berechnet die CPU für Anwendung A ein Fragment, pausiert Anwendung A, berechnet dann für Anwendung B etwas, pausiert dann Anwendung B, und macht wieder bei A weiter. Das geht so irre schnell, dass du gefühlt parallel laufende Anwendungen hast.

Jedes Threading, also jeder Sprung/Wechsel von Anwendungsprozess zum nächsten, kostet die CPU wertvolle Resourcen/Zeit für das interne CPU Management. Daher ist es von Vorteil, wenn die CPU sich bereits von vornherein mehr auf Multithreading einstellt. Dann verliert sie weniger Leistung beim internen Management und kann damit mehr leisten bei gleichem Takt. Und genau hier wirkt Hyperthreading. Durch die künstliche Schaffung von 2 logischen Prozessor aus 1 physischen Kern wird dieser Kern effektiver gegenüber einem Kern der kein Hyperthreading nutzt/beherrscht. Aber der Haken: das kommt darauf an wieviel Multithreading abverlangt wird von der CPU, und wie gut sie die Threads verteilt. Laut Intel war der "Gewinn" so bei 10-30% angesetzt, als die ersten Hyperthreading Prozessoren auf den Markt kamen (hatte einen Intel Pentium 4 3000Mhz, Single-Kern, konnte aber bereits Hyperthreading).

Wenn also ein Softwarehersteller sein Programm nicht gut multikern-fähig ausgelegt programmiert, ist der Effekt durch Hyperthreading eher mau. Dennoch hat es sich bei heutigen echten Multikern-Prozessoren weiterhin durchgesetzt. Unterm Strich nutzt man die vorhandene Leistung der CPU effektiver.

 - (Computer, Technik, Technologie)

Multithreading bedeutet eigentlich nur das es pro Kern 2 Steuerwerke gibt. Wenn du pro Kern nur ein Steuerwerk hast kann es sein das zwischen zwei Aufgaben eine kurze Pause passiert weil das Steuerwerk auf die neue Aufgabe wartet. Wenn du aber zwei Steuerwerke hast können beide gleichzeitig den Rechenkern nutzen wodurch der Kern weniger Zeit für warten auf neue Aufgaben verbringt und so die Leistung erhöht.

Kannst es dir vorstellen wie ein Wasserschlauch wo du auf der einen Seite einen Trichter hast. Der Trichter wäre das Steuerwerk. Wenn du jetzt ein Y-Stück nimmst und auf jeder Seite des Y-Stücks ein Trichter machst wird dein Schlauch nicht größer, aber du kannst ein bisschen mehr Wasser durch den Schlauch drücken.

So ähnlich funktioniert hyperthreading/multithreading.

Bringt meistens ca 20-30% mehr Leistung.


flauski  07.05.2022, 15:19

Also ich denke, dass Dein Text einer kleinen Korrektur bedarf. Was Du beschreibst ist simultanes Multithreading(SMT).Und Hyperthreading ist Intels Marketingname für 2way SMT. Und SMT ist auch nicht auf 2 Threads pro Kern, also 2way SMT, beschränkt. Bei Intel Phi z.B. gabs auch 4way SMT.

0
ILM321  07.05.2022, 15:29
@flauski

Ja das stimmt. Aber in keiner consumer CPU hat man 4way SMT deshalb habe ich den Text Mal auf 2way SMT beschränkt

0
flauski  07.05.2022, 15:38
@ILM321

Hättest Du geschrieben, dass Hyperthreading eine From von SMT ist, wäre alles gut gewesen.

Aber Du hast nun einmal Multithreading und nicht Hyperthreading geschrieben. Hyperthreading ist halt nur eine proprietäre Umsetzung von Intel für 2way SMT und ist damit nicht mit Multithreading gleichzusetzen.

Multithreading ist halt auch Interleaved-Multithreading, Temporal-Multithreading und was weiß ich, was es noch gibt.

1

Mehr Leistung.

Woher ich das weiß:Hobby – Hardwarelounge HW-Experte, baue seit 6 Jahren PCs

Hyperthreading sorgt dafür dass ein Kern einer CPU Künstlich verdoppelt wird, sodass aus einem physischen 8 Kerner ein 16 Kerner wird.

Also könnte man sagen weniger Auslastung, als wenn man die CPU ohne die Technik hat.