Core i7 940 マシンでのベンチマーク編、今回はチューニングめいた話で、「Hyper-Threading (ハイパースレッディング) を off にする」ということについて考えてみます。 Windows 7 や Windows Vista をインストールすると、タスク マネージャに 8個のグラフが表示されますが、コアが本当に 8個あるわけではないんですよねぇ。

ASUSTek P6T BIOS の Intel HT Technology オプション

Core i7 は 4コアなのに 8CPU に見える

インテルの最上位 CPU ラインナップ Core i7 は、4つのコアを搭載しているという点では先代の Core 2 Quad と同じです。しかし、Windows 7 / Vista / XP のタスクマネージャから見ると、8CPU 分のグラフがきちんと表示されます。((BIOS のデフォルト設定で HT:on になっている場合。HT:off にするとグラフは 4本になる))

Windows 7: タスクマネージャ

Pentium 4 もそうですが、Hyper Threading と呼ばれる技術が利用されていて、物理的には 1個のマイクロプロセッサを、2つに見せかけて同時処理できます。Core i7 では 4 x 2 = 8CPU (見かけ上) というわけです。CPU-Z というツールで検証してみると、確かに Cores: 4, Threads: 4 になっていることが確認できます。

CPU-Z: Core i7 940: 4cores, 8threads

ところが、Core i7 に関しては、実はこの Hyper Threading を切った方が速いという、信じがたい噂があります。Hyper Threading を切るというと、世代によっては、

ハードウェア的にジャンパ線を飛ばしたりパターンを切ったりするんですね。そうですか、分かりました。

と思ってしまいますが、BIOS で1カ所変えるだけだったりします。 🙂 以下は ASUSTek P6T Deluxe での例ですが、Intel(R) HT Technology という設定項目があり、工場出荷時は Enabled (on) になっていて、これを Disabled (off) にして、Save & 再起動するだけです。

ASUSTek P6T BIOS の Intel HT Technology オプション

そもそも動画のエンコードなど、見るからに「重い」アプリケーションが 8CPU フルに使うように最適化されていなければ、CPU が沢山あって受け入れ体制が整っていても、その能力をフルに生かせません。もしも、「無理やり 8個」で使うより、4CPU の状態に落として少しでも速くなるなら、その方が良いのでは? という理屈が成り立つかもしれません。

次回は論より証拠、例によってベンチマークソフトを使って、同じ OS 環境で Hyper Threading (以下 HT) をオンオフしてスコアの違いを比較してみます。