CPU Anzahl der Kerne scheint nicht korrekt zu sein

14

Bildbeschreibung hier eingeben

Wie das Bild zeigt, sind es 4 Prozessoren.

Aber Intel i5-4210U hat nur 2 Kerne, wie unten gezeigt. (Intels eigene Spezifikationen.)

Bildbeschreibung hier eingeben

Also, wenn i5-4210U nur 2 Kerne hat, was bedeutet "4" im 1. Bild?

lscpu gibt dieses Ergebnis:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 69
Stepping:              1
CPU MHz:               989.531
BogoMIPS:              4788.74
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3
foxtrot9
quelle
10
Weil es Hyperthreading hat , was bedeutet, dass die CPU dem Betriebssystem vier anstatt nur zwei physische Kerne präsentiert, um die Leistung zu verbessern. (" Anzahl der Threads " aus dem Datenblatt zeigt die CPU-Information in Ubuntu an)
JonasCz - Reinstate Monica
3
Die andere Möglichkeit, dies herauszufinden, besteht darin , und und zu tun lscpuund zu betrachten . CPU(s)Thread(s) per coreCore(s) per socketSocket(s)
Edwinksl
@edwinksl, hinzugefügtes Ergebnis von lscpu.
Foxtrot9
2
Sie haben also 4 "CPUs", also logische Kerne, 2 Threads pro physischem Kern (dies ist der Hyperthreading-Teil), 2 physische Kerne pro Sockel und 1 Sockel. 4 = 2 * 2 * 1.
Edwinksl
Sie haben kein Hyperthreading gehört, das seit Pentium 4 existiert?
Phuclv

Antworten:

31

Ihre CPU verfügt nur über 2 Kerne, unterstützt jedoch 4 Threads gleichzeitig .

Dies wird durch die Hyper-Threading-Technologie von Intel erreicht , mit der zwei separate Threads gleichzeitig auf einem einzigen Kern parallel ausgeführt werden können.

2 Kerne x 2 Threads pro Kern bedeuten also 4 Threads pro CPU.

Byte Commander
quelle
1
Ich weiß ein bisschen über Threads Bescheid und bin gespannt, wie dies auf Hardware-Ebene erreicht werden kann. Ich meine 2 Threads pro CPU?
Foxtrot9
7
Ich kann nicht wirklich anfangen, das ganze Konzept hinter dem Hyper-Threading hier zu erklären, dies würde die Antwort in die Luft sprengen. Stattdessen möchte ich Ihnen vorschlagen, den entsprechenden Wikipedia-Artikel zu lesen oder Ihre Lieblingssuchmaschine mit "Hyperthreading" zu füttern.
Byte Commander
6
Kurz gesagt können wir sagen, dass ein Hyperthreading-fähiger Kern einige Elemente (Architekturstatus, dh die Register usw.) dupliziert hat, während andere (Ausführungs-Engine, Cache) gemeinsam genutzt werden.
Byte Commander
5
@ foxtrot9 Im Grunde genommen verbraucht ein einzelner Ausführungsthread normalerweise nicht annähernd 100% eines CPU-Kerns - die CPU verbringt Zeit damit, auf das Laden von Daten aus dem Speicher zu warten, und ein gegebener Befehl verbraucht nicht alle kleinen Schaltkreise (Ausführung) Einheiten) im Kern, die verschiedene Dinge tun. Mit HT können zwei Ausführungsthreads den Core gemeinsam nutzen, sodass einer ausgeführt werden kann, während der andere wartet, oder beide können ausgeführt werden, wenn getrennte Sätze von Ausführungseinheiten verwendet werden. Da die beiden Threads Ressourcen gemeinsam nutzen müssen, kann es vorkommen, dass einer den anderen am Laufen hindert und somit nicht so schnell ist wie zwei ganze Kerne.
Hobbs
@hobbs Detaillierte aber einfache Erklärung, super! Vielen Dank für diesen informativen Kommentar :)
Byte Commander
3

Wie Sie auf dem von Intel bereitgestellten Image sehen können, beträgt die Anzahl der Threads 4.

Ich würde also sagen, dass Ubuntu die Anzahl der Threads und nicht die der Cores anzeigt

Nico T
quelle
1

Im i5-4210-Prozessor von Intel gibt es zwei physische Kerne, die weiter in zwei logische Kerne aufgeteilt sind. Diese logischen Kerne werden durch die Hyper-Threading-Technologie von Intel erreicht. Somit sind es insgesamt 4 Kerne, wie im Bild gezeigt. Diese Informationen finden Sie auch auf dem anderen Bild.

Moksh
quelle
Ich weiß nicht, warum Leute Ihre Antwort ablehnen, was Sie gesagt haben, ist wahr.
Virtuelle Anomalie
Die Leute sind dumm, das macht mir nichts aus.
Moksh
Um diese Antwort zu belegen, sagt Wikipedia: "Für jeden physisch vorhandenen Prozessorkern adressiert das Betriebssystem zwei virtuelle (logische) Kerne."
Virtuelle Anomalie
Danke @lightswitchr
Moksh
1
Ich denke, die Leute stimmen ab, weil Sie gesagt haben, dass es zwei physische und zwei logische Kerne gibt. Das stimmt nicht, jeder physische Kern ist in zwei logische Kerne aufgeteilt, daher gibt es vier logische Kerne (zwei laufen auf jedem physischen Kern).
Runemoro