ハイパースレッディングが無効になっていても、CPUがハイパースレッディングをサポートしているかどうかをLinuxでどのように確認できますか?

ハイパースレッディングが無効になっていても、CPUがハイパースレッディングをサポートしているかどうかをLinuxでどのように確認できますか?

以下は、プロセッサがHTをサポートしているかどうか、それを有効にするかどうかを確認するために使用する方法です。

# dmidecode -t processor | grep "Hardware Thread" | wc -l

結果がゼロの場合、プロセッサはHTをサポートしていません。結果> 0の場合、結果は0です。

しかし、私はこれが一般的に信頼できるかどうかはわかりません。少なくともUbuntu 16.04、18.04、SLES 12、一部のサーバー(Xeon)、および他のIntelプロセッサを使用するノートブック(Core i5など)でこれを確認したところ、正常に動作します。しかし、「ハードウェアスレッド」という正確なテキストがリストされていることを確認すると、dmidecodeすべてのプロセッサ(AMD、たぶんARMまで)とすべてのディストリビューションで確実に動作しますか?より安全な方法はありますか?

私が知る限り、HTフラグは確かにリストされています。lscpuHTをサポートしていないCore i5プロセッサにもリストされているので、まったく実行可能なアプローチではありません。

PS。次の投稿はこのトピックを中心に説明していますが、ハイパースレッディングが有効になっているかどうかは別の問題です。 ハイパースレッディングが有効になっていることを確認してください。Ubuntuでハイパースレッディングが有効になっているかどうかをテストする方法は?

ベストアンサー1

推測できるように、htフラグは信頼できる標識ではありません。ハイパースレッディングのサポートを示していません。「物理パッケージは、Intelハイパースレッディング技術および/またはマルチコアをサポートできます」と表示されます。

「ハードウェアスレッド」は、dmidecodeプロセッサ特性値の特定のフラグに対応する。SMBIOS(セクション7.5.9参​​照)はいハードウェアサポートを確実に表示する必要があります。、すべての形式の単一パッケージのマルチプロセッシングではありません。したがって、SMBIOSを使用するプラットフォームでは、

dmidecode -t processor | grep -q "Hardware Thread"

基本的なSMBIOS情報と同じくらい信頼できる指標です。

ところで、以下を使用する必要はありませんwc

if dmidecode -t processor | grep -q "Hardware Thread"; then echo HT supported; fi

おすすめ記事