Core i7、はえぇぇよ!Core i7!

先輩がCore i7 940を購入されたので、フレネルキルヒホッフ回折積分(1000x5000回)を走らせてもらってみた。計算に影響するのは、FPU性能とキャッシュの性能(レイテンシ・転送効率とか??)、かなぁ。

計算結果

単純な性能比較用に、計算した処理時間をまとめたのが下の図。グラフは短いほど高速。濃い紫↑が8threadで*1、淡い紫↓が1threadで計算したときの処理時間。一番下の結果がCore i7Core 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コア強分の性能低下なのでまぁ構わないといえば構わないか。

結論

Core i7素敵過ぎ。CPU - Chipset間の帯域(QPI)も大幅に改善されてるし、メインメモリのレイテンシも改善されてるしで、ピーク性能・通常性能ともにすげぇんじゃねぇのって思った。*4

*1:1,2コアの場合も8threadで。1,2threadでの計算に対して優位な速度低下が生じないことは確認済み。

*2:処理時間の逆数/クロック数[GHz]x1000

*3:てかi7のCore部分って、Core2からの流用じゃなかったのか!?

*4:って言っても、既存のプログラムを走らせるような用途だとアーキテクチャ違いすぎて速度でない気もする