web-dev-qa-db-ja.com

Ubuntuがハイパースレッディングをアクティブにしたかどうかをテストするにはどうすればよいですか?

私のパソコンではハイパースレッディングが有効になっていないと感じています。 /proc/cpuinfoを調べたところ、兄弟はCPUコアと同じ数であると説明されています。これは、ハイパースレッディングがアクティブ化されていないことを意味します。どのようにアクティベートできますか?

/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
13
grenzfrequence

/ sys/bus/cpu/devices/cpu */topology/thread_siblings_listは、コアとハイパースレッドのレイアウトを示します。視覚化を簡単にするために、lstopoコマンドを使用してインストールすることをお勧めします。

Sudo apt-get install hwloc

そして実行:

lstopo

私のivybridgeデスクトップには4つのCPUがあります。それぞれにハイパースレッドがあるため、Cores P#0..3を含む図が表示され、それぞれに2つのPUがあります(これらの1つはハイパースレッドです)。

enter image description here

この出力のテキストバージョンだけが必要な場合は、次を使用します。

lstopo -
15
Colin Ian King

ターミナルでtopを実行し、キーボードの1を押して、ヘッダーのCPUごとの負荷を表示します。そこには何CPUが記述されていますか?

CPUの実際のコアの2倍であれば、ハイパースレッディングは正常に機能しています。

9
Bruno Pereira

ハイパースレッディング(別名Intelハイパースレッディングテクノロジー)を使用しているかどうかを検出するには、dmidecodeを使用できます。

ターミナル内:

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

Populated、Enabled(* ... *の間に以下に表示)のStatus値を探します。つまり、「Enabled」はハイパースレッディングがアクティブであることを意味します

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

ハイパースレッド論理CPUでは、ステータス値unpopulatedが表示されます(以下に* ... *の間に表示):

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

ソース

6
fossfreedom

dmidecodeの結果では、次のようなものを得ることができます

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

ハイパースレッドがオンに設定されているサーバー上

または

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

オフに設定されているもの

2
user56344

ネタバレ:CPU ハイパースレッディングをサポートしていません

CPUベンダーのデータベースに問い合わせる代わりに、/proc/cpuinfohtフラグを確認することもできます。

$ 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

もちろん、以前にcatforceoff|notsupported|notimplementedのいずれかを出力していた場合、これは機能しません。

通常、ハイパースレッディングはデフォルトで有効になっています。そして、それが無効になっている場合、BIOSで一般的に行われます。 BIOSで無効になっている場合、その擬似ファイルにはforceoffが含まれている可能性が高く、BIOSの設定を変更する必要があります。

0
maxschlepzig