Core i7、はえぇぇよ!Core i7!
先輩がCore i7 940を購入されたので、フレネルキルヒホッフ回折積分(1000x5000回)を走らせてもらってみた。計算に影響するのは、FPU性能とキャッシュの性能(レイテンシ・転送効率とか??)、かなぁ。
計算結果
単純な性能比較用に、計算した処理時間をまとめたのが下の図。グラフは短いほど高速。濃い紫↑が8threadで*1、淡い紫↓が1threadで計算したときの処理時間。一番下の結果がCore i7。Core i7の動作クロックは、定格(2.93GHz)固定モードで使用した。
Corei7やばいくらい速い。8thread回したときに爆速になるのは当然として、1thread(=1Core)での計算もCore2に対してアドバンテージが見られた。計算時間で見て、今まで最速だったCore2Duo(Wolfdale) 3GHzの4倍近い結果。コア数が倍増していることに加えて、HT+単体コアの性能向上の相乗効果がいい感じに利いている、のかな。
マルチスレッド使用時の実行効率を見るため、各CPUに対して1threadでの計算に対して、8threadでの速度向上割合をまとめたのが下の図。
前回の改良で、2Coreの場合にきっちり2倍の速度が出るようになったのはさておき、i7の場合に5.7倍になった。4コアの効果(x4)に、一般に言われているHTによる性能向上効果(x1.4程度)がかかってる、と考えればうまく一致。ほとんど最大効率で計算できてるんじゃないかなぁと。
アーキテクチャごとの性能比較用に、各CPUに対してクロックあたりの性能*2を比べたのが下の図。
Core2Quadだと、自分の計算プログラムでは理論上Core2Duoの2倍にしかならないことを考えると、やっぱi7頭1つ抜けてる。単体コアの性能が高い&コア数が多いと、HTによる僅かな性能向上もかなり利いてくるなぁと。
どうでもいい考察
Core i7の単体コアのFPU性能がCore2に比べてどの程度高いのかはいまいちはっきりしないのですが、
- 完全版!! 「Core i7」極限検証 - 総合性能プレビュー編
- 3 テスト結果 - Sandra 2009 Engineer Edition
http://journal.mycom.co.jp/special/2008/nehalem01/002.html
を見ると、20%程度向上してる"可能性はある"っぽいので、今回の結果を見た感じでもそうなのかなぁとか。性能向上要因としてはL2のレイテンシの向上もあるけど、以前データを取った限りでは自分のプログラムでは、L2レイテンシの異なるK8アーキテクチャ(BrisbaneとManchester)で優位な差がなかったことを考えると、・・・レイテンシ差はそんなにないからよくわかんない。ま、Core i7のFPUはえぇえ!!*3
スレッド間でデータを共有するプログラム(古いVer.の計算)を8threadで走らせたら、1threadに対し5倍を切る性能だった。コア間で共有のL3があるとはいえ、各コアのL2キャッシュに同じデータが入ってしまってるはずで、4コアもあるとキャッシュコヒーレンシ維持のための通信が結構ネックになるんだなぁとか思った。いや、0.5コア強分の性能低下なのでまぁ構わないといえば構わないか。