Так что же такое логические ядра процессора (в отличие от физических ядер процессора)?


49

Я гуглял о том, как я могу найти количество процессоров в машине, и я нашел несколько сообщений, но я смущен, поскольку некоторые упоминали, что вы получаете логические ядра против физических ядер и т. Д.
Так в чем же разница между логическими и физическими ядрами и есть ли способ получить только физические ядра? Или имеет смысл включать в наш подсчет логические ядра?

Ответы:


63

Физические ядра - это просто физические ядра в процессоре. Логические ядра - это способности одного ядра выполнять 2 или более действия одновременно. Это выросло из ранней способности процессоров Pentium 4 выполнять то, что называлось Hyper Threading (HTT) .

Это была небольшая игра, в которую играли, когда подкомпоненты ядра не использовались для определенных типов инструкций, в то время как, возможно, выполнялась другая длительная инструкция. Таким образом, процессор может фактически работать на 2 вещи одновременно.

Более новые ядра - это более полноценные процессоры, поэтому они работают над несколькими процессами одновременно, но они не являются настоящими процессорами, как физические ядра. Вы можете узнать больше об ограничениях функциональности гиперпоточности и физических возможностей ядра здесь на tomshardware в этой статье под названием: Intel Core i5 и Core i7: основной процессор Intel Magnum Opus .

Вы можете увидеть разбивку вашего ящика, используя lscpuкоманду:

$ 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

В вышеупомянутом моем ноутбуке Intel i5 всего 4 "CPU"

ЦП: 4

из которых есть 2 физических ядра

Core (s) на сокет: 2

из которых каждый может работать до 2 потоков

Резьба (ы) на ядро: 2

в то же время. Эти потоки являются логическими возможностями ядра.


У меня нет. lscpuЕсть ли альтернативный инструмент?
Джим

1
Сырая информация , которая lscpuиспользует подвергается здесь: cat /proc/cpuinfo. Какая у тебя ОС?
slm

1
@ThomasWeller - смотрите мой другой A'er здесь - unix.stackexchange.com/questions/113544/… .
SLM

1
Core(s) per socketраз Thread(s) per core: 2= CPU(s): 4? Верный?
user3019105

1
@ user3019105 - правильно
slm

13

Физические ядра - это количество физических ядер, реальных аппаратных компонентов.

Логические ядра - это количество физических ядер, умноженное на количество потоков, которые могут работать на каждом ядре с помощью гиперпоточности.

например, мой 4-ядерный процессор работает с двумя потоками на ядро, поэтому у меня 8 логических процессоров.


Значит, это число имеет смысл только при использовании процессора, поддерживающего гиперпоточность? И что это значит? Тем не менее, один поток будет занимать каждый процессор за раз, верно? Так, что означает это число?
Джим

Так какой номер я должен стремиться получить?
Джим

необязательно, например , одновременная многопоточность позволяет одновременно запускать два потока на одном ядре. Есть и ряд других преимуществ.
пепел

Я смотрю на количество физических ядер.
пепел

1

Технология гиперпоточности позволяет одному физическому ядру процессора вести себя как два логических процессора.

Таким образом, одно ядро ​​процессора может выполнять два независимых потока одновременно .

Intel называет физический процессор сокетом.

Гиперпоточность заставляет физический процессор вести себя так, как будто он имеет два физических процессора, которые называются логическими процессорами. Почему?

Хотя гиперпоточность не удваивает производительность системы, она может повысить производительность за счет лучшего использования незанятых ресурсов, что приводит к большей пропускной способности для некоторых важных типов рабочей нагрузки. Приложение, работающее на одном логическом процессоре занятого ядра, может ожидать чуть более половины пропускной способности, которую оно получает, работая в одиночку на процессоре без гиперпотока.


Резюме


Физический процессор - это то, что мы можем видеть и падать.

Логический процессор вроде бы, Phsical ядро действует как два физических Ядра


Разрушенная ссылка на vmware doc.
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

Две розетки. Каждый сокет имеет 14 физических ядер. Каждое ядро ​​имеет два потока (28/14). Общее количество логических «процессоров» или логических процессоров составляет 56 (это то, что «top» и некоторые другие команды показывают как число «процессоров»).


Меня сбивает с толку то, что на моем i3-3220 с вашим подходом я получаю количество ядер 2 и количество потоков 2 (= 4), но lscpu shows CPUs 4 and threads per 2 (=8) but lshw -C cpu` показывает 16 логических процессоров с номерами 0 - 15
Elder Geek

dmidecode интерпретирует, что находится в BIOS .. точно не знаю, что не так в вашем случае, например, у вас может быть отключена гиперпоточность в BIOS или что-то в этом роде. lscpu и lshw - команды ОС, поэтому показывают, что распознало ядро ​​ОС. Спецификации Intel для вашего процессора показывают 2 ядра 4 потока.
Тагар

Не приведет ли отключение гиперпоточности к меньшему количеству логических ядер, чем к большему?
Старейшина Гик

Я понял, что вы получили 2 ядра, 2 потока, о которых сообщает dmidecode, вместо 2 ядер, 4 потока, реальное количество потоков / ядер, которые есть у i3-3220. Так оно и меньше. И это было только предположение, я не знаю, действительно ли у вас отключена гиперпоточность в BIOS или нет.
Тагар

Кажется, я неверно истолковал lscpuвывод, и он на самом деле всего 4 потока, но "lshw -C cpu` показывает 16 логических процессоров", я не уверен, что с этим делать.
Старейшина Гик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.