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

ということで続いてはSandraである。Dhrystone(グラフ36・37)の結果から示す。グラフ36がAll Thread、グラフ37がSingle Threadとなる。All Threadだと8コアの威力は大きく、Ryzen 7 27000XはもとよりRyzen 7 1800XでもCore i7-8700Kを上回るスコアになっている。Single ThreadだとやはりCore iが有利となる。ただRyzen 2になって確実に性能の底上げがあるため、性能差はずっと少なくなっている。

  • グラフ36:Sandra Platinum Dhrystone MT

  • グラフ37:Sandra Platinum Dhrystone 1T

この結果は.NETの場合も同じで、.NETが×1相当なのに対し、NativeだとAVX2命令を使って×8相当で処理している関係で性能の絶対値は異なるが、傾向はおおむね同じことが分かる。またRyzen 7 1800X比でRyzen 7 2700Xは確かに性能を1割弱底上げしており、こちらも妥当な数字と思われる。

次にWhetstone(グラフ38・39)で、こちらも傾向としてはグラフ36・37と全く同じである。ことAVX512命令を引っ張り出してくるとまた様相は変わるだろうが、AVX/AVX2命令の範囲では、1スレッドあたりの性能はCore i系が若干上、全スレッドでの性能はRyzen系が若干上ということになる。その意味では、6コアのCoffee Lakeに8コアのPinnacle Ridgeを当てたAMDの判断は間違っていないというべきだろう。

  • グラフ38:Sandra Platinum Whetstone MT

  • グラフ39:Sandra Platinum Whetstone 1T

Processor Multi-Media(マンデルブロ図形の生成)はどうか? というのがグラフ39~42である。テスト項目によって結果が2桁違うので、横軸を対数軸にしたので注意してほしい。

グラフ40・41がInteger、42・43がFloatである。Integer/Long Nativeや、Single/Double FloatではMulti ThreadでもCore i系の方が高いスコアだが、Quad Int/Floatや.NETではMulti Threadだと素直にRyzen系が有利とはなっているものの、おおむね同じ傾向だ。ただ.NETだとSingle Threadでの結果もCore i系とRyzen系でそう差が無いのは、.NETそのもののオーバーヘッドがボトルネックになっていると思われる。

  • グラフ40:Sandra Platinum Processor Mult-Media Int MT

  • グラフ41:Sandra Platinum Processor Mult-Media Int 1T

  • グラフ42:Sandra Platinum Processor Mult-Media Float MT

  • グラフ43:Sandra Platinum Processor Mult-Media Float 1T

グラフ44~47はCryptography系ベンチマークである。まずAESのEncryption/Decryption(グラフ44・45)だが、これはRyzen 7 1800Xの時からと同じで、Multi Threadだと同程度、Single ThreadだとRyzen系有利である。

  • グラフ44:Sandra Platinum Cryptography Encryption/Decryption MT

  • グラフ45:Sandra Platinum Cryptography Encryption/Decryption 1T

Multi Threadでは、AESくらいだとEncryption/Decryptionの処理そのものというよりは、メモリ帯域がボトルネックになるものと思われる。一方でSingle Threadだとコアの性能そのものが出るという感じだが、面白いのはRyzen 7 1800XとRyzen 2を比較するとSingle Threadの場合の性能が大幅に伸びていることだ。やはりキャッシュ/メモリ帯域周りがその原因だろうか。

対照的なのがHasingで、Multi ThreadだとAES-512を除くとRyzen系が有利、Single ThreadだとSHA2-256を除いてCore i系が有利という図になっている。AES2-256で横並びなのは、x86のSHA Extentionを使っているためだと思われる。

  • グラフ46:Sandra Platinum Cryptography Hasing MT

  • グラフ47:Sandra Platinum Cryptography Hasing 1T

ただ本来AES ExtentionはSHA1も高速化できるはずで、こちらでCore i系がRyzen系の2倍近いスループットを実現しているのは、SHA1に関してはSHA Extentionを使っていないためだろう。

Ryzen 7 1800X vs Ryzen 7 2700Xという図式で言えば、AES Ecnryption/Decryptionではそれなりの性能差があるのに、SHAに関しては横並び、というのもちょっと興味深いところだ(とは言え動作周波数の差もあるから、若干の違いは出ているが)。

Financial Analysis(グラフ48~51)は、結果の桁に合わせて2つにグラフを分けた。まずBlack-Scholes(グラフ48・49)だが、これはDhrystoneとかWhetstoneを見ているような結果に落ち着いている。

  • グラフ48:Sandra Platinum Financial Analysis Black-Scholes MT

  • グラフ49:Sandra Platinum Financial Analysis Black-Scholes 1T

対して、Binomial/Monte Carlo(グラフ50・51)ではちょっと様子が異なる。Binomialでは、DoubleだとCore i系とRyzenがほぼ同等なのに、SingleだとRyzenが倍のスコアになっている。これはちょっと不思議な傾向である。というのは、どちらもAVX命令を使って処理しているからで、Core iの側はSingle Precisionだとボトルネックになる部分があるということだろうか?

  • グラフ50:Sandra Platinum Financial Analysis Binomial/Monte Carlo MT

  • グラフ51:Sandra Platinum Financial Analysis Binomial/Monte Carlo 1T

一方Monte Carloに関して言えば、SHA2-256のHasingに近い結果である。特にSingle Threadだと性能はどのケースでも変わっておらず、Multi Threadはコア(というかThread)数がそのまま効いてきている。これに関してはRyzen系が健闘しているとして良いだろう。

これと逆の結果になったのが、Scientific Analysis(グラフ52・53)だ。Multi Thread(グラフ52)を見ると、SGEMMとSingleのN-BodyでCore i系がRyzen系を圧倒している。

DGEMMやDoubleのN-Bodyだと同等レベルになるから、Financial AnalysisのBinomialの逆パターンである。FFTは、Singleだと多少差が出るが、Doubleだと同じくらいになるのは、メモリあたりの帯域がボトルネックになっている可能性が高い。

  • グラフ52:Sandra Platinum Scientific Analysis MT

Single Thread(グラフ53)でも傾向は同じである。SGEMMだとRyzen系に比べて50%以上高速、というのはSandraが内部で利用しているGEMM用のライブラリがIntel系に最適化されているということだろうか?

  • グラフ53:Sandra Platinum Scientific Analysis 1T

ただDGEMMだとだいぶバラけるあたりは、ちょっと不可解ではある。FFTはMulti Threadの場合と同じく。N-BodyもGEMMとよく似たパターンになっている。

プロセッサ性能の最後はImage Processing(グラフ54・55)である。このグラフも結果が2桁異なるので、横軸は対数表示とさせていただいた。さて、Multi Thread(グラフ54)だと処理によって度合いは異なるものの、Core i系が有利である。

  • グラフ54:Sandra Platinum Image Processing MT

Ryzen 7 2700XがCore i7-8700Kを超えているのは、Noise Reduction(5×5のMedian Filter)のみで、後はどれも結構な差になっている。

ただSingle Thread(グラフ55)を見ると、逆にすべてのテストでRyzen系が圧倒している。問題はCPUのパイプラインではなく、キャッシュあるいはメモリコントローラのランダムアクセス性能の差ではないか? という気がする。

  • グラフ55:Sandra Platinum Image Processing 1T

これはRyzen 7 1800XとRyzen 7 2700Xの結果からも言える。Ryzen 7 1800Xの性能はCore iと変わらないのに、Ryzen 2はどちらも大幅に性能を上げており、これはキャッシュかメモリコントローラのランダムアクセスがボトルネックで、Single Threadだと(豊富なL3キャッシュをフルに生かして)Ryzen 2が有利なものの、Multi ThreadだとL3すら飽和してしまってメモリアクセスを多用するようになり、Ryzen 2の性能も沈むという感じだろうと推測する。