2012年9月8日土曜日

ハイパースレッディングの効果の程を「実感」してみる

経緯
Twitterでit(@mrkessi)さんが「ハイパースレッディングってどんだけ効果あるんかね」という趣旨のツイート(https://twitter.com/mrkessi/status/244039908640047104 https://twitter.com/mrkessi/status/244040072863838208)をなさってて、私が「まぁ、理論上、効果ありそうな感じはしますよね」と適当に返したら、「実感は無いです…」との返信(https://twitter.com/mrkessi/status/244084243272171521)を頂いたので、ハイパースレッディング(以下、HT)の効果を「実感」してみることにしました。

検証環境
CPU:Intel Core i3 i3-2120 3.3GHz 3M LGA1155
M/B:ASUS P8H77-M LE
メモリ:Transcend JetRam PC3-12800(DDR3-1600) 8GB KIT(4GB×2)
SSD:Intel SSD 330 Series Maple Crest 60GB MLC
OS:Ubuntu 12.04 LTS

検証方法
Linux-kernel 3.2.0を論理コア数まで並列処理させてビルドし、その時間を計測する

CPUの性能を直に(という表現が適切かどうかはおいといて)測る方法もあるんですが、そうしなかった理由として
  1. CPUの性能をよくわからない数値で出されても「実感」できたとは言えない
  2. 「実感」ってやっぱり、普段使いしてる時に感じるものじゃないのか、というのがあるので、ディスクIOとかメモリとか、PCの総合力を測る上でカーネルビルドは適切じゃないのかというのが持論(根拠なし)
  3. 他の方法を考えるのが面倒だった(最重要←)
検証結果
というわけで、検証方法としてはすごく適当なので、参考程度(それ以下かもしれませんが)で読んでいただければ幸いです。
時間はtimeコマンドで測りました。
では早速、結果を。

HTなし(=BIOSでHTをオフ)
  • real:37m37.800s
  • user:58m16.231s
  • sys:5m4.119s
HTあり(=BIOSでHTをオン)
  • real:31m22.666s
  • user:96m28.106s
  • sys:7m36.621s
「実感」のコマンド実行時間はrealの値だと思うので、今回、対象とすべき時間差としては、6分25秒ほどでしょうか。HTなしの実行時間を100%としたら、HTありの実行時間はおよそ83.4%。
インバースを取るとHTなしに対してHTありが20%の性能増を示しています。
で、IntelさんがHTについてどうおっしゃってるかと言いますと、うーん、公式の資料はざっと探した感じ見つからないんですが、Wikipedia先生曰く、Pen4の頃に「インテルは15%〜30%の性能増の効果があるよ」と言ったとのことです。
今回、「実感」できた性能増が20%ですから、ちゃんと公称下限の15%は超えてるので、Intelは嘘は言ってないことになると思います。
あと、比較的どうでもいいですがHT切った時のほうがsensorsで見た時のCPU温度が低かったです。

一方で、某価格比較サイトでは「性能向上が感じられるのは5割増し以上になってから。それ以下は誤差の範囲」というような言説が見られますが、それと照らし合わせると「誤差」ということになりますが、まぁ、Intel公称の上限も30%なので…あれですね。

(いらんこと書きかけたので検閲の上削除)

そういうのを考えてみると、物理的にHTの有無が分かれるi5とi7とで比べたほうがやや攻撃的な実験になるんですが、手元にそういうのないんで、このへんで。

同日22:45追記
itさんから、温度の件についてコメントを頂いたので、改めて温度だけ測ってみましたが、マザボのなんちゃって温度計では差が出ませんでしたので当該記述を削除させて頂きました。

0 件のコメント:

コメントを投稿