システム1: ノートブック
インストールされているCPUを検出します。
$ cat /proc/cpuinfo | grep "model name" | head -1
model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
- コア数 2
- スレッド数 4
コアとスレッドを検出:
$ sudo dmidecode -t processor | grep -E '(Core Count|Thread Count)'
Core Count: 2
Thread Count: 4
結論: コア数とスレッド数フィットデータシート付き。
システム2: デスクトップPC
インストールされているCPUを検出します。
$ cat /proc/cpuinfo | grep "model name" | head -1
model name : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
- コア数 4
- スレッド数 8
コアとスレッドを検出:
$ sudo dmidecode -t processor | grep -E '(Core Count|Thread Count)'
Core Count: 4
Thread Count: 2
結論: コア数とスレッド数ではないデータシートに適合します。
質問
- Intel のデータシートと出力の読み方を教えてください
dmidecode
。 - コアはいくつありますか?
- 各コアにはいくつのスレッドがありますか?
- システム全体にはいくつのスレッドがありますか?
[編集] アップデート 1
デスクトップPC
$ lscpu | grep -i -E "^CPU\(s\):|core|socket"
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
下から上に読んでいきます:
- 4 つのコアを持つソケットが 1 つあり、それぞれに 2 つのスレッドがあります => 合計で 8 つのスレッド (CPU)
結論: コア数とスレッド数フィットデータシート付き。
ノート
$lscpu | grep -i -E "^CPU\(s\):|core|socket"
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
下から上に読んでいきます:
- 1 つのソケットに 2 つのコアがあり、それぞれに 2 つのスレッドがあります => 合計 4 つのスレッド (CPU)
結論: コア数とスレッド数フィットデータシート付き。
[編集] アップデート 2
$ sudo dmidecode -t processor
# dmidecode 2.12
SMBIOS 2.7 present.
Handle 0x0041, DMI type 4, 42 bytes
Processor Information
Socket Designation: SOCKET 0
Type: Central Processor
Family: Core i7
Manufacturer: Intel
ID: C3 06 03 00 FF FB EB BF
Signature: Type 0, Family 6, Model 60, Stepping 3
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Voltage: 1.1 V
External Clock: 100 MHz
Max Speed: 7000 MHz
Current Speed: 3700 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: 0x0004
L2 Cache Handle: 0x0005
L3 Cache Handle: 0x0006
Serial Number: Not Specified
Asset Tag: Fill By OEM
Part Number: Fill By OEM
Core Count: 4
Core Enabled: 1
Thread Count: 2
Characteristics:
64-bit capable
答え1
- 必ずデータシートを参照してください
- 私も同じ CPU (K バージョン、空き時間に CPU をオーバークロックすることもあります) を使用していましたが、コアが 4 つ、スレッドが 8 つあり、100% 保証されています。
- 通常、各コアには 2 つのスレッドがあります。
- 今日までdmidecodeを知りませんでした:/
これは、あなたの質問の下にコメントとして書いたものです。また、リンクも共有しましたので、そのページの指示に従って解決できたことを嬉しく思います。
リンクはこちらです: http://fibrevillage.com/sysadmin/155-how-to-tell-if-cpu-hyperthreading-enabled-on-linux
私はそれを読んだ
注意: 古いマシンでは、dmidecode はコア数、スレッド数などの CPU の詳細情報を提供しない場合があります。
しかし、4770 はそれほど古いものではなく、今でも優れた CPU です。
とにかく、他にも解決策はありますし、そのうちの 1 つがうまくいったことを嬉しく思います。
具体的には: lscpu | grep -i -E "^CPU\(s\):|core|socket"
もちろん、これは私の功績ではありません。解けたと思うなら、答えを書いて閉じたほうが良いと思います。
答え2
まず、HTT が有効になっているということは、コアごとに 2 つのスレッドがあることを意味します。
さて、dmidecode
出力に関しては、最初に引用したように 4 つのコア、2 つのスレッドの出力がリストされているので、何かがおかしいです。
しかし、あなたの完全なdmidecode
出力は、できた意味をなす。
Core Count: 4
Core Enabled: 1
Thread Count: 2
さて、なぜ 1 つのコアだけが有効になっていると表示されるのでしょうか? 主なオプションが 2 つあります。
- 1 つのコアのみが有効になっています (最も明白な原因)。
すべてのコアが実際に有効になっていることを確認してください (UEFI/BIOS セットアップ設定)。ただし、他のツールの結果では、コアが有効になっていることが示されています。 - システムのDMIデータに問題があります
dmidecode
ツールの名前が示すように、出力はシステム DMI データの読み取りとデコードに基づいています。したがって、データに誤りがあるのはツール自体ではなく、システムの DMI / SMBIOS テーブルに誤った値が含まれていることが原因である可能性が高くなりますdmidecode
。
データシートに関しては、チップ自体の機能に関しては信頼できますが、それはあなたの環境で利用可能なものとは少し異なる質問に答えている可能性があります (一部の機能を有効/無効にできる構成オプションがあるため)。