Sandra 2014 SP3 Engineer Edition(グラフ1~24)

SiSoftware
http://www.sisoftware.co.uk/

ではまずこちらから。まずグラフ1がDhrystone、グラフ2がWhetstoneである。なお、今回はCore i7-5960K環境におけるJavaのテストがメモリエラーで全滅したので、これは抜いてある(このあたりもL3キャッシュ容量に何かしらの関係があるのかもしれない)。

絶対性能ということではもうご覧の通り、Core i7-5960Kのぶっちぎりである。動作周波数×コア数比率の関係は、定格動作だと

4770K : 4960X : 5960X=3.5×4 : 3.6×6 : 3.0×8≒1:1.54:1.71

最大動作周波数だと

4770K : 4960X : 5960X=3.9×4 : 4.0×6 : 3.5×8≒1:1.54:1.79

ということで、Core i7-4770Kを1とした場合の理論演算性能はCore i7-4960Xが1.54、Corei 7-5960Xが1.7~1.8という範囲に収まることになる。で、実際は? というとCore i7-4960Xはそこまで性能が出ず、1.35~1.63倍程度の性能にとどまるのに対し、Core i7-5960Xは1.74~2.05倍に達している。

特に性能が高いのはWhetstoneの方で、これが対IvyBridge世代であればAVX2命令が効果的に作用したからという説明になるが、対HaswellではどちらもAVX2対応だからこれは通じない。可能性としては、より広帯域なメモリ帯域が効果的に作用した、というあたりだが、これはこの結果だけではちょっと判断しがたい。

取りあえず考察はおいておき、次はProcessor Multi-Mediaだが、Sandra 2014 SP3からテスト方法がちょっと変わり、Int/FloatについてSingle/Long/Quadという3パターンでのテストになった。グラフ3がInt、グラフ4がFloatの結果である。

まずIntのほうを見ると、ダブルスコアとは言わないまでも、Core i7-5960Xは他の製品と比べてかなり明確に性能差があると分かる。Floatでは少し性能差が詰まっているが、これはIntとFloatでボトルネックになっているもの(演算性能とメモリ帯域)が異なっている様だ。ただ、いずれにしてもCore i7-5960Xの、両方での絶対性能の高さはここからも見て取れる。

グラフ5~7はCryptgraphyということでAESの暗号化(グラフ5)と復号化(グラフ6)、それとHasing(グラフ7)の結果である。AESに関してはAES-NIが実装されているので、後は純粋に動作周波数×コア数で差が出るといった感じであるはずなのが、実際にはCore i7-4770Kとそのほかで大きな違いがあるのは面白いところ。

一方のHasingは、特にbit長が増えると結構性能が下がる傾向が著しく、その傾向そのものは今回も示されているが、そうした中でもCore i7-5960Xの性能はかなり高いところにある。

グラフ8~10がFinancial Analysisで、ブラックショールズ(グラフ8)、Binominal(グラフ9)、モンテカルロ(グラフ10)という3種類のオプション分析である。結果の絶対値はともかくとして、傾向はいずれも同じである。特筆すべきはCore i7-4960XとCore i7-5960Xの差が大きいことで、これはCore i7-4960Xが低いというよりは、Core i7-5960Xが高いと考えたほうがよさそうだ。

グラフ11~13はScientific AnalysisでGEMM(グラフ11)、FFT(グラフ12)、N体問題(グラフ13)である。面白いのは、グラフ11でなぜかSGEMM(Single Precision GEMM)のみCore i7-5960Xが振るわないこと。DGEMMのほうは妥当な傾向であり、何かしら引っかかっている要因があるようだが、それがなぜかはここでは判断できない。ほかは妥当な結果に思える。

グラフ14~15はMulti-Core Efficiencyである。グラフ14がOverallで、縦棒が帯域、折れ線がLatencyとなる。コア間のInterconnectが基本的に同じ(二重のRing Bus)なので、素直にコア数に帯域とLatencyが比例する様な形で増えるのは妥当な傾向に思える。

グラフ15が詳細で、L2アクセスにならない4×4KBがピークなのはまぁセオリー通り。L2周り(4×64KB)では多少差が出るが、おおむね同傾向に収まっており、大きな問題は見当たらない。

次にグラフ16がStream、それと次のグラフ17の64MB~1GBの範囲の結果の平均値をまとめたものだ。今回の場合、理論メモリ帯域は

  • Core i7-4770K:DDR3-1866×2=29.87GB/sec
  • Core i7-4960X:DDR3-1600×4=51.20GB/sec
  • Core i7-5960X:DDR4-2133×3=68.26GB/sec

となる。ここから逆算すると、それぞれの理論帯域に対する効率は

  • Core i7-4770K:55~59%
  • Core i7-4960X:68~80%
  • Core i7-5960X:52~69%

といったところで、Core i7-5960Xの数字がそう悪いわけではない(Core i7-4770Kよりもずっと良い)が、Core i7-4960Xはさらに効率が良いために、差があまりないような結果になっている。

グラフ17はサイズ別の帯域をまとめたもので、L1 Hitの時にはついにCore i7-5960Xは1TB/sec超の結果になっているが、これはAVX2命令が利用できるようになったためである。実際この領域ではCore i7-4770Kのほぼ2倍弱という帯域で、コアの数と動作周波数を勘案するとリーズナブルな数字である。

むしろ特徴的なのはL2 Miss/L3 Hit~Memory Accessの領域で、Core i7-4960Xが非常に良いスコアを出しており、これが理由で必ずしもCore i7-5960Xが有利とは言えない状況になっている。

帯域はこんなところにして、次はLatency。グラフ18~20がGlobal Data、つまりデータアクセスである。まずSequential(グラフ18)では、L2までは完全に同一。L3以降で多少ばらつきが見られる。DDR4-2133はCL15ということもあって、やはりLatencyはやや大目である。

面白いのはRandom Access2種(グラフ19~20)で、L2まではやはり完全に同じ。その先では、DDR4が最もLatencyが少なく収まっている。やはりDDR4では8n Prefetch×2という構成で2つの異なるアドレスを同時アクセスできるようにしたことが効果的に作用しているのかもしれない。

グラフ21~23はInstruction/Code Memoryの結果である。グラフ18~20との違いは、プログラムから明示的にアクセスされるか、DecoderというかFetchユニットからアクセスされるかの違いである。

その結果としてSequential(グラフ21)では特にMemory AccessでCore i7-4770KとCore i7-5960XでほぼLatencyが同じということになっている。Haswell同士だから特性が近いと考えればよさそうだ。

一方のRandom Access(グラフ22~23)では相変わらずCore i7-5960XがMemory Accessで低いLatencyを保っており、これはグラフ19~20と同じ理由と思われる。

最後に一応確認のため、PCI Expressレーンのアクセス性能をVideo Memory Bandwidth(グラフ24)で確認してみたが、性能差は誤差の範囲といって差し支えないレベルのもので、ここでの差は無い事が確認できた。