Was ist der Unterschied zwischen CPU und Kern?

10

Die Ausgabe lscpumeines PCs sieht aus wie -

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:               1200.093
BogoMIPS:              3392.08
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

Bedeutet das, dass ich 4 CPU und 2 Kerne habe?

alhelal
quelle
3
Ein Chip (Socket) mit zwei Kernen, der aufgrund von Hyper-Threading insgesamt vier CPUs für das System anzeigt.
Kusalananda
2
@Kusalananda, Das CPU(s)in lscpugibt die Anzahl der logischen Zentraleinheiten (Anzahl cores) in einer physischen CPU an. Ist es nicht?
ss_iwe
@saisasanka Ja. Verwandte Frage: unix.stackexchange.com/questions/88283/…
dr_
1
@saisasanka In diesem Fall befinden sich 4 CPUs und 2 Kerne in einem Sockel. Der Sockel ist physisch, ebenso wie die Kerne darauf. Jeder Kern wird als 2 CPUs angezeigt ("Threads pro Kern").
Kusalananda
CPU (s) = Core (s) pro Socket * Thread (s) pro Core
Amit24x7

Antworten:

9

Von man lscpu:

CPU
Die logische CPU-Nummer einer CPU, wie sie vom Linux-Kernel verwendet wird.

KERN
Die logische Kernnummer. Ein Kern kann mehrere CPUs enthalten.

SOCKET
Die logische Socket-Nummer. Ein Socket kann mehrere Kerne enthalten.

Also ja, Sie haben 4 CPUs, die in physischen 2 Kernen enthalten sind und in einem physischen Sockel enthalten sind.

Sie können die gleichen Informationen von erhalten cat /proc/cpuinfo.

Verwandte Frage: Was sind logische CPU-Kerne (im Gegensatz zu physischen CPU-Kernen)?

DR_
quelle
Bedeutet das, dass ich 4 Anweisungen gleichzeitig ausführen kann?
Alhelal
1
Mehr oder weniger. Dies bedeutet, dass 4 Aufgaben gleichzeitig ausgeführt werden können. Siehe HyperThreading: en.wikipedia.org/wiki/Hyper-threading
dr_
4

Um Verwechslungen zwischen logischen und physischen Prozessoren zu vermeiden,

Intel bezeichnet einen physischen Prozessor als Socket .


Mit der Hyperthreading- Technologie kann ein einzelner Prozessorkern zwei unabhängige Threads gleichzeitig ausführen.

Hyperthreading verdoppelt zwar nicht die Leistung eines Systems, kann jedoch die Leistung steigern, indem nicht genutzte Ressourcen besser genutzt werden, was zu einem höheren Durchsatz für bestimmte wichtige Workload-Typen führt. Eine Anwendung, die auf einem logischen Prozessor eines ausgelasteten Kerns ausgeführt wird, kann etwas mehr als die Hälfte des Durchsatzes erwarten, den sie erzielt, wenn sie alleine auf einem Prozessor ohne Hyperthread ausgeführt wird.

Zusammenfassung

  • Ihr System verfügt über eine physische CPU (Nennen wir es X).
  • Durch Hyperthreading verhält sich CPU X wie zwei CPUs (CPU-X1 und CPU-X2), jedoch physisch nicht.
  • Jedes X1 und X2 kann gleichzeitig zwei Threads gleichzeitig ausführen

Zusammenfassend haben Sie einen physischen Prozessor, der 4 Threads gleichzeitig ausführen kann.

Johnny Blaze
quelle
"Eine Anwendung, die auf einem logischen Prozessor eines ausgelasteten Kerns ausgeführt wird, kann etwas mehr als die Hälfte des Durchsatzes erwarten, den sie erzielt, wenn sie alleine auf einem Prozessor ohne Hyperthread ausgeführt wird." Bedeutet dies, dass durch Hyperthreading ein Kern mit etwas mehr als der Hälfte seiner Kapazität betrieben wird?
Waldir Leoncio