Single-Threaded-Qaud-Core vs. Hyper-Threading-Dual-Core

22295
David

Nehmen wir an, wir haben zwei CPUs, eine ist Quad Core 3,2 GHz mit 4 Kernen, und wir haben einen Dual Core 3,2 GHz mit 2 Kernen mit 2 Threads in jedem Kern (Hyper-Threading). Meine Vermutung als Programmierer ist, dass die 4 Kerne 4 Threads schneller als 2 Kerne 4 Threads arbeiten sollten, da die zweite CPU zwischen den Threads wechseln muss, um 4 Kerne zu emulieren, während der erste keine solche Umschaltung durchführen muss Kern kann unabhängig und individuell arbeiten.

Ich möchte bestätigen, dass meine Annahme richtig ist. Wenn nicht, erklären Sie bitte, warum einer besser ist als der andere.

9
Downvote, weil eine kurze Google-Suche (Wikipedia) die Antwort gegeben hätte. Werner Henze vor 10 Jahren 3
@WernerHenze Während das, was Sie sagen, wahr ist, möchten wir, dass die Leute SuperUser-Ergebnisse sehen, wenn sie solche Sachen bei Google veröffentlichen :) Shekhar vor 10 Jahren 3

3 Antworten auf die Frage

9
Journeyman Geek

Ich glaube, das stimmt - da beim Hyper-Threading einige Elemente gemeinsam sind - insbesondere bei den Hauptausführungsressourcen, können Sie 4 vollständige Threads gleichzeitig ausführen, anstatt auf die Freigabe dieser Ressourcen zu warten.

Der Punkt von HT ist es, mit einer geringeren Ausnutzung der Chipfläche eine bessere Leistung zu erzielen - Ihr Quad-Core wäre in der Regel ein größerer Chip - etwa fast doppelt so groß wie ein Nicht-HT-Dual-Core-Chip, während ein HT-Dual-Core-Chip ungefähr wäre 5% größer Der Quad-Core konnte unter der richtigen Arbeitsbelastung die doppelte Geschwindigkeit erreichen (obwohl dies unwahrscheinlich ist, da Sie in den meisten Fällen wahrscheinlich nicht 4 Threads mit voller Kapazität ausführen), während der Dual-Core-HT-Prozessor 15 bis 30% besser wäre Leistung ( laut Wikipedia ) als ein Dual-Core-Prozessor ohne HT.

Mehr tatsächliche Kerne sind normalerweise besser.

HT-Prozessor würde 15-30% sehen ... Sie hier eingeben. HT ist kein Ersatz für einen echten zweiten Kern (oder 2 oder 4 usw.). Austin T French vor 10 Jahren 1
Noch mehr CPUs, mit mehr Kernen, mit Hyper-Threading wären noch besser ...: D Keltari vor 10 Jahren 1
Es ist wichtig zu wissen, dass der Hauptgrund für die Leistungsverbesserung mit HT darin liegt, dass die CPU selten voll ausgelastet ist. Das heißt, dass ein einzelner Thread selten mit jedem CPU-Zyklus Daten verarbeitet. HT ermöglicht der CPU, während dieser ansonsten nicht verwendeten Zyklen einen zweiten Thread einzuplanen. Das Wechseln zwischen Facebook und E-Mail kann sehr effektiv sein. Je mehr CPU-Threads jedoch erforderlich sind, desto geringer ist die Leistungsverbesserung. Thomas vor 7 Jahren 0
1
Werner Henze

Von Wikipedia :

Hyper-Threading funktioniert, indem bestimmte Abschnitte des Prozessors - die den Architekturzustand speichern - dupliziert werden, die Hauptausführungsressourcen jedoch nicht. Auf diese Weise kann ein Hyper-Threading-Prozessor als normaler "physischer" Prozessor und als zusätzlicher "logischer" Prozessor für das Host-Betriebssystem (HTT-unbewusste Betriebssysteme siehe zwei "physische" Prozessoren) angezeigt werden, wodurch das Betriebssystem zwei Threads planen kann oder verarbeitet gleichzeitig und angemessen. Wenn von der aktuellen Task keine Ausführungsressourcen in einem Prozessor ohne Hyper-Threading verwendet werden, und insbesondere, wenn der Prozessor angehalten ist, kann ein mit Hyper-Threading ausgestatteter Prozessor diese Ausführungsressourcen verwenden, um eine andere geplante Task auszuführen. (Der Prozessor kann aufgrund eines Cache-Fehlschlags, einer Zweigfehlvorhersage,

Wenn Sie ein Quad-Core-System haben, können 4 Threads jeweils auf einem vollständigen Kern ausgeführt werden. Wenn Sie über ein Dual-Core-Hyperthreading-System verfügen, können 2 Threads jeweils auf einem vollständigen Core ausgeführt werden. Bei 4 Threads teilen sich Threads 1 und 2 jedoch einen Core und Threads 3 und 4 den anderen Core. Durch Hyperthreading können zwei Threads (nur) parallel ausgeführt werden, wenn sie nicht die gleichen Prozessorressourcen verwenden. Im Idealfall erhalten Sie also einen hohen Grad an Parallelisierung, aber wie Wikipedia sagt, ist der Leistungsgewinn nicht 100%, sondern nur 15 bis 30%.

1
Siva

Beim Hyper-Threading die Leerlaufzeit des Kerns für taskA (der Kern könnte eine Anfrage nach Daten an die Platte gesendet haben, darauf warten, dass die Platte den Bereich der Platten sucht, die Daten lesen und an den Kern zurücksenden ) wird zum Ausführen einer anderen TaskB ausgenutzt. Wenn also taskB vom so genannten Thread 2 bedient wird und die Datenabrufanforderung von taskA abgeschlossen ist, muss taskA noch warten, bis der Kern Thread 2 beendet hat. Beide Threads können nicht gleichzeitig in einem Kern ausgeführt werden. Auch hier nutzt HT die Geschwindigkeitsunterschiede zwischen dem Core / Prozessor und den verschiedenen Subsystemen Ihres Computers. HT nutzt Ihre Kerne zur vollen Kapazität ... es ist wie eine volle Kapazitätsauslastung. Wenn Sie also vier Registerkarten in Ihrem Browser öffnen, hat jede Registerkarte einen Kern in einem 4-Kern-System und zwei Registerkarten müssen sich einen Kern in einem 2-Kern-System teilen.