Stream(グラフ120~123)

コンポーネントの比較は大体以上で終了だが、最後に幾つか。まずはStreamの結果をちょっと見てみたい。StreamそのものはSandraでも実施したが、この時は全体の平均のみを比較しているので、もう少し細かいデータを。

下の表はSandra 2013 SP3aにおける、Floatを使ったStreamの結果をまとめたものである。

Ivy Bridge Haswell
Assignment 20.55 GB/sec 20.08 GB/sec
Scaling 20.42 GB/sec 20.04 GB/sec
Addition 21.06 GB/sec 20.85 GB/sec
Triad 21.09 GB/sec 20.83 GB/sec

RMMAではCopy/Scale/Add/Triadという表記になっているが、Copy=Assingmentだと理解すれば良い。

さて、グラフ120~123がそれぞれの結果あるが、8MB~20MBの結果の平均値をとると、

Ivy Bridge Haswell
Copy 4.10 Bytes/cycle 4.02 Bytes/cycle
Scale 4.11 Bytes/cycle 4.03 Bytes/cycle
Add 4.34 Bytes/cycle 4.34 Bytes/cycle
Triad 4.36 Bytes/cycle 4.35 Bytes/cycle

となる。このテストはどちらも3.5GHz駆動で、TurboBoostは無効にしているから、換算すると、

Ivy Bridge Haswell
Copy 14.35 GB/sec 14.07 GB/sec
Scale 14.39 GB/sec 14.11 GB/sec
Add 15.19 GB/sec 15.19 GB/sec
Triad 15.26 GB/sec 15.23 GB/sec

という計算になる。Sandraの数値との乖離があるのは、Sandraの方は8Threadが同時に動いている関係で、ボトルネックはMemoryにあるのに対し、RMMAはSingle Threadでの実施なので、CPU側の処理がボトルネックになっていることだ。面白いのは、そうしたボトルネックの違いがあるにも関わらず、トータルとしてHaswellの方がやや遅いという一致した結果が出ている事だ。これがなぜか、という話は次に。

次ページRMMA 3.8 - Checksum/Substring Search