Як я можу перевірити, якщо ubuntu активовано гіперточення?


13

У мене таке відчуття, що гіперточків не активується на моєму ПК. Я поглянув /proc/cpuinfoі там описано, що у братів і сестер стільки ж, скільки у процесорних ядер. Це означає, що гіперточення не активоване. Як я можу його активувати?

Частина записів /proc/cpuinfo:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
stepping    : 6
cpu MHz     : 2997.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes

Відповіді:


15

/ sys / bus / cpu / devices / cpu * / topology / thread_siblings_list показує компонування ядер та гіпертоків. Щоб полегшити візуалізацію, рекомендую скористатися командою lstopo, встановіть за допомогою:

sudo apt-get install hwloc

і бігти з:

lstopo

Мій робочий стіл ivybridge має 4 процесора; у кожного є гіперточка, тому ми отримуємо діаграму з ядрами P # 0..3, і в кожного є два ПУ (одна з них - це гіперточка):

введіть тут опис зображення

Якщо ви хочете просто текстову версію цього виводу, використовуйте:

lstopo -

Не впевнений, чому цього ще ніхто не підтримав ... Це справді приємна утиліта.
Гек Беннетт

це супер круто. ви бачите загальний кеш, сердечники, гіпертоки все в 1 зображенні
Silver Moon

9

Запустіть topу терміналі, натисніть номер 1на клавіатурі, щоб у заголовку відобразити навантаження на процесор, скільки там написано процесорів?

Якщо вони подвійні від фактичних ядер у вашому процесорі, гіперточення працює як слід.


7

Щоб виявити, чи використовуєте ви гіперточення (він же Intel Hyperthreading Technology), ви можете використовувати dmidecode .

У терміналі:

sudo dmidecode > /tmp/dmidecode.txt
gksudo gedit /tmp/dmidecode.txt

Шукайте значення статусу заселених, увімкнених (показано нижче між * ... *), тобто "Увімкнено" означає, що активація гіперточення

Physical CPU
Handle 0x000C, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 1 CPU 1
Type: Central Processor
Family: Xeon
Manufacturer: GenuineIntel
ID: 43 0F 00 00 01 03 00 00
Signature: Type 0, Family 15, Model 4, Stepping 3
Flags:
FPU (Floating-point unit on-chip)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
Version: Intel Xeon
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Populated, Enabled*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0004
L2 Cache Handle: 0x0005
L3 Cache Handle: Not Provided

У логічному процесорі Hyperthreaded ви побачите значення статусу незаселеного (показане нижче між * ... *):

Handle 0x000D, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 2 CPU 2
Type: Unknown
Family: Unknown
Manufacturer: Not Specified
ID: 00 00 00 00 00 00 00 00
Version: Not Specified
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Unpopulated*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0006
L2 Cache Handle: 0x0007
L3 Cache Handle: Not Provided

джерело


Ядро Linux визначає кількість процесорів та братів та сестер з процесора (використовуючи перерахування топології CPUID), а не використовуючи налаштовані в BIOS дані DMI. Я підозрюю, що дані DMI налаштовані під час завантаження з тих же даних CPUID, які використовує ядро, однак, ймовірно, найкраще довіряти тому, що ядро ​​Linux визначилось, а не даних DMI. Як це буває, в більшості випадків BIOS, ймовірно, справляється правильно.
Колін Іен Кінг

Вихід з дмікоди не змінюється, якщо гіперточення вимкнено - це просто вказує, чи підтримує процесор гіперточення. Наприклад, на процесорній системі i7-6600U з відключеною гіперточкою dmidecode | grep -i populaтакож друкується Status: Populated, Enabled. Дивіться також мою відповідь .
maxschlepzig

2

в результаті dmidecode ви можете отримати щось подібне

    Core Count: 6
    Core Enabled: 6
    Thread Count: 12

на серверах із гіперпотоком, встановленим на ВКЛ

або

    Core Count: 6
    Core Enabled: 6
    Thread Count: 6

для тих, які встановлені на OFF


Це не працює. Thread CountЧи не зміниться , якщо гіперпотоковое відключено, наприклад , в системі i7-6600U з технологією HyperThreading інвалідів dmidecode | grep '\(Core\|Thread\).*:'гравюр Core Count: 2 Core Enabled: 2 Thread Count: 4.
maxschlepzig

0

Спойлер: ваш процесор не підтримує гіпертодування .

Альтернативою консультації з базою даних постачальника процесора є перевірка /proc/cpuinfoнаявності htпрапора:

$ grep -o '\<ht\>' /proc/cpuinfo

Навіть якщо в BIOS вимкнено гіперточення, прапор повинен бути включений до цього виводу.

Щоб перевірити, чи ввімкнено гіперточення, ви можете отримати інший псевдофайл :

$ cat /sys/devices/system/cpu/smt/control

Можливі значення: on|off|forceoff|notsupported|notimplemented

Ви можете увімкнути / вимкнути гіпертодування, записавши on/ offдо цього псевдофайлу, наприклад:

# echo off > /sys/devices/system/cpu/smt/control

Звичайно, це не працює, якщо catраніше було надруковано forceoff|notsupported|notimplemented.

Зазвичай, за замовчуванням увімкнено гіперточування. А якщо він відключений, це зазвичай робиться в BIOS. Якщо він відключений у BIOS, цей псевдофайл, ймовірно, містить, forceoffі вам доведеться змінити налаштування в BIOS.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.