Quindi quali sono i core logici della CPU (al contrario dei core fisici della CPU)?


49

Stavo cercando su google come trovare il numero di CPU in una macchina e ho trovato alcuni post ma sono confuso come alcuni hanno detto che ottieni i core logici rispetto ai core fisici ecc.
Quindi qual è la differenza tra core logici e fisici ed è esiste un modo per ottenere solo i nuclei fisici? O ha senso includere i core logici nel nostro conteggio?

Risposte:


63

I core fisici sono proprio questo, i core fisici all'interno della CPU. I core logici sono le capacità di un singolo core di fare 2 o più cose contemporaneamente. Ciò è nato dalla prima capacità delle CPU Pentium 4 di fare quello che era chiamato Hyper Threading (HTT) .

Era un po 'un gioco che veniva giocato in cui i sottocomponenti del core non venivano usati per certi tipi di istruzioni mentre sarebbe stata eseguita un'altra istruzione di lunga durata. Quindi la CPU potrebbe effettivamente funzionare su 2 cose contemporaneamente.

I core più recenti sono CPU a tutti gli effetti quindi funzionano contemporaneamente su più cose, ma non sono CPU reali come i core fisici. Puoi leggere ulteriori informazioni sui limiti della funzionalità hyperthreading rispetto alle capacità fisiche del core qui su tomshardware in questo articolo intitolato: Intel Core i5 e Core i7: Intel Mainstream Magnum Opus .

Puoi vedere la suddivisione del riquadro usando il lscpucomando:

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Stepping:              5
CPU MHz:               2667.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

In quanto sopra il mio laptop Intel i5 ha 4 "CPU" in totale

CPU: 4

di cui ci sono 2 nuclei fisici

Core (s) per socket: 2

di cui ognuno può eseguire fino a 2 thread

Discussione / i per nucleo: 2

allo stesso tempo. Questi thread sono le capacità logiche del core.


Non ho. lscpuEsiste uno strumento alternativo?
Jim

1
Le informazioni grezzo che lscpuutilizza è esposto qui: cat /proc/cpuinfo. Qual è il tuo sistema operativo?
slm

1
@ThomasWeller - vedi il mio altro A'er qui - unix.stackexchange.com/questions/113544/… .
slm

1
Core(s) per socketvolte Thread(s) per core: 2= CPU(s): 4? Corretta?
user3019105

1
@ user3019105 - corretto
slm

13

I nuclei fisici sono il numero di nuclei fisici, i componenti hardware effettivi.

I core logici sono il numero di core fisici moltiplicato per il numero di thread che possono essere eseguiti su ciascun core mediante l'uso dell'hyperthreading.

ad esempio, il mio processore a 4 core esegue due thread per core, quindi ho 8 processori logici.


Quindi questo numero ha senso solo se si utilizza un processore che supporta l'hyperthreading? E cosa significa? Ancora un thread occuperà ogni CPU alla volta, giusto? Quindi cosa significa questo numero?
Jim,

Quindi quale numero dovrei puntare a ottenere?
Jim,

non necessariamente, il multithreading simultaneo , ad esempio, consente di eseguire due thread contemporaneamente su un singolo core. Ci sono anche molti altri vantaggi.
ash

Guardo il numero di core fisici.
ash

1

La tecnologia di hyperthreading consente a un singolo core di processore fisico di comportarsi come due processori logici.

Quindi un singolo core del processore può eseguire due thread indipendenti contemporaneamente .

Intel si riferisce a un processore fisico come a un socket.

L'hyperthreading fa in modo che un processore fisico si comporti come se avesse due processori fisici, che sono chiamati processore logico. perché?

Mentre l'hyperthreading non raddoppia le prestazioni di un sistema, può aumentare le prestazioni utilizzando meglio le risorse inattive portando a una maggiore velocità effettiva per alcuni importanti tipi di carichi di lavoro. Un'applicazione in esecuzione su un processore logico di un core occupato può aspettarsi poco più della metà del throughput che ottiene durante l'esecuzione da sola su un processore non hyperthreaded.


Sommario


I processori fisici sono che possiamo vedere e cadere.

Il Processore logico è come un nucleo fisico che agisce come due nuclei fisici


Collegamento interrotto al documento vmware.
slm

0
$ sudo dmidecode |egrep "Socket Designation: Proc|((Thread|Core) Count)"
Socket Designation: Proc 1
        Core Count: 14
        Thread Count: 28
Socket Designation: Proc 2
        Core Count: 14
        Thread Count: 28

Due prese. Ogni socket ha 14 core fisici. Ogni core ha due thread (28/14). Il numero totale di "cpus" logici o unità di elaborazione logica è 56 (questo è ciò che "top" e alcuni altri comandi ti mostrerebbero come numero di "cpus").


Ciò che mi sconcerta è che sul mio i3-3220 con il tuo approccio ottengo il numero di core 2 e il numero di thread 2 (= 4) ma lscpu shows CPUs 4 and threads per 2 (=8) but lshw -C cpu` mostra 16 logiche della CPU numerate 0-15
Elder Geek

dmidecode interpreta ciò che è nel BIOS .. non sono sicuro di cosa ci sia di sbagliato nel tuo caso, ad esempio potresti avere l'hyperthreading disabilitato nel BIOS o qualcosa del genere. lscpu e lshw sono comandi del sistema operativo, quindi mostra cosa ha riconosciuto il kernel del sistema operativo. Le specifiche Intel per il tuo processore mostrano 2 core e 4 thread.
Tagar,

Disattivare l'hyperthreading non comporterebbe meno core logici anziché più?
Elder Geek,

Ho capito che hai ottenuto 2 core 2 thread segnalati da dmidecode invece di 2 core 4 thread numero reale di thread / core che i3-3220 ha. Quindi è più piccolo. E questa era solo una supposizione, non so se in realtà l'hyperthreading sia disabilitato nel BIOS o no.
Tagar,

Sembra che abbia frainteso l' lscpuoutput ed è in realtà un totale di 4 thread ma "lshw -C cpu` mostra 16 CPU logiche" Non sono sicuro di cosa farne.
Anziano Geek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.