既に性能評価をお届けしているHaswellであるが、性能面ではなぜか今一歩といった結果になった。特にバックエンドは大幅な強化を行なっているのにも関わらず性能がぱっとしないのはどのあたりに要因があるのか、をRMMAを使いながらもう少し確認してみたいと思う。

前回の記事はこちら
【特集】「Haswell」完全攻略!! 「Core i7-4770K」検証で見る第4世代Coreの真実
http://news.mynavi.jp/special/2013/haswell/

ちなみに今回のテストは、前回と同じタイミングで実施しており、なのでテスト機材テスト環境などは全く同じである。強いて違いを挙げると、RMMA実行時に関してはBIOS SetupでTurbo Boosを無効化の設定としている。またグラフィックに関してはRadeon HD 7970を利用している。これは内蔵グラフィックを使うと、多少なりともメモリアクセスに影響がでると思われたからで、こちらの検証はRMMTで行なっている。ということで、早速結果を見てみよう。

なお、本文ではLLC(Last Level Cache)ではなくL3 Cacheとしているが、これはHaswellの場合、GT3のSKUの一部にeDRAMを搭載したものがあり、このeDRAMもCacheとして動くので、Intelの定義によればこのSKUの場合LLCはeDRAMになってしまう。ということで判りにくいので、明示的にL3 Cacheと記載することにした。

RightMark Multi-Thread Memory Test 1.1(グラフ1~2)

cpu.rightmark.org
http://cpu.rightmark.org/

さて、本編のRMMAに入る前に、まずRMMTの結果を。こちらはTurbo Boost:有効の環境だが、評価はMemory Access性能なのでTurboがあまり関係ない(ボトルネックはMemory Bandwidth)のであまり問題はないと思っている。

さて、結果を見ると何というか非常に面白い。まずグラフ1がReadである。こちらではGPUがDiscreteとIntegrateの場合の両方を測定しており、実線がDiscrete、破線がIntegrateである。つまるところ実線と破線の差が、GPUをIntegrateにすることによるオーバーヘッドになるわけだ。その差であるが、大体8Threadあたりの数字を見ると落ち着いてきているが、Ivy Bridge/Haswell共に5~600MB/sec程度食われている事が判る。画面リフレッシュのためにDRAMから読み出される頻度は、1920×1080pixel@60Hzで大体356MB/sec、2560×1440pixel@60Hzで633MB/secといったところで、おおむね数字としては合っている計算だ。

それはそれとして、Bandwidthの傾向を見てみると、3ThreadくらいまではIvy Bridgeの方がむしろBandwidthは広く、4Thread以降でHaswellが上回り始めるという構図だ。これはDiscrete/Integrateともに変わらない。ちなみに絶対的なピーク性能で言うと、

Ivy Bridge Discrete 24339.3MB/sec(3Thread時)
Haswell Discrete 24472.1MB/sec(4Thread時)
Ivy Bridge Integrate 23968.6MB/sec(3Thread時)
Haswell Integrate 24098.5MB/sec(4Thread時)

ということで、微妙にHaswellが上回っているのだが、逆に1Thread時の性能は、

Ivy Bridge Discrete 19996.4MB/sec
Haswell Discrete 19158.1MB/sec
Ivy Bridge Integrate 20058.5MB/sec
Haswell Integrate 18329.5MB/sec

と、Ivy Bridgeの方が全般的にやや高めの傾向を見せている。ただ、Load/Storeユニットの能力云々を議論できるほど大きな差になっていない、という程度の微妙な差であるし、またMemory ControllerのピークのThread数が違うあたりは、これはコアそのもののLoad/Store能力よりも、Uncore部に属するMemory Controllerの内部のインプリメントの変更に起因するものではないかと想像される。トータル性能で言えば僅かながらHaswellの方が上になっているわけで、ピークの傾向も異なるあたり、これはインプリメントが何かしら変更されたように見える。その変更によって、1 Thread時の性能が微妙に下がったとしても、これは許容範囲であろう。

ではWriteは? というと、これはもうご覧の通り。Thread数が増えると次第に遅くなってゆくのは、Write Bufferが飽和しているためだと思われる。テストがそもそもThreadあたり20MBの書き込みを行なうというものだから、基本的に追いつかないのは当然で、勿論L3も間に合わない(というか、L3でも飽和するように20MBにわざと設定している)からThread数が増えるとWrite Bufferの取り合いが激しくなるのは当然で、その分オーバーヘッドが出るのは理にかなっている。それはともかく。こちらではHaswellがIvy Bridgeを明確に上回る性能になっているのが判る。とはいえ、その差はDiscrete/Integrateのどちらのケースでも300MB/sec程度なので、これもLoad/Storeユニットの性能云々よりも、やはりMemory Controllerのインプリメント変更で若干ながらスループットを改善したように思われる。

ということでRMMTを使う限りにおいて、コアそのもののLoad/Store性能に大きな差は見られず、ただしMemory Controller周りで若干の改善が行なわれた事が伺える結果となった。Load/Storeユニットに関しては、このあとRMMA側でもう少しみてみることにしたい。

次ページRMMA 3.8 - Instruction Decode