Sandra Platinum Version 24.22(グラフ49~74)

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

さて、ここからSandraを利用しての内部分析を試みる。ちなみに最新版はSP2(Version 24.41)になっており、ThreadRipperのNUMAモードで性能改善とか、Core-XでProcessor MultimediaやScientific Benchmark(GEMM/FFT/N-Body)でもAVX512をサポートとなっているが、今回はこれらに未対応のVersion 24.22である。

まずはいつも通りDhrystone(グラフ49と50)とWhetstone(グラフ51と52)から。Javaは一部のPlatformでうまく動作しなかったので、結果が歯抜けなのは御用者いただきたい。

性能を見ると、MT(全スレッド動作)の場合はDhrystone/Whetstoneともにほぼセオリー通り。また1T(1スレッド動作のみ)の場合は、ほぼ動作周波数に比例という感じで、これもまたセオリー通りとなった。冒頭に書いたようにAVX512がまだ使われていないから、これを勘案すれば納得できる結果だと思う。

Processor Multimedia(グラフ53~56)も、ほぼセオリー通りという気がする。

面白いのは、Native Singleの値を比較すると

Integer MT 1T 倍率
i7-7700K 566.10 107.66 5.3
i9-9700X 1640.00 140.51 11.7
R7 1800X 564.19 52.27 10.8
TR 1920X 767.63 58.69 13.1
TR 1920N 771.36 58.24 13.2
TR 1950X 974.31 58.49 16.7
TR 1950N 1000.00 57.63 17.4
Float MT 1T 倍率
i7-7700K 506.33 91.58 5.5
i9-9700X 651.00 183.151 3.6
R7 1800X 545.42 58.40 9.3
TR 1920X 821.92 61.67 13.3
TR 1920N 807.77 61.46 13.1
TR 1950X 1000.00 56.86 17.6
TR 1950N 1000.00 60.18 16.6

ということで、ThreadRipperだとThread数だけ(場合によってはThread数以上に)性能が引きあがっているのに、i9-9700XではIntegerはともかくFloatで極端に低迷することだ。Core Xのレビューでも書いたが、どうもCore i9-9700XというかCore-X系はFPUを使うと極端に消費電力が増え、Thermal Throttlingが動きだすように思われる。実運用をする場合には、このあたりが難しいところになるだろう。

また、以前も書いたが、AVX512利用時は相当動作周波数を下げないと消費電力が一定にならないという結果がここでも見えた気がする。

ちなみにIntelが示したXeon Scalable Processor FamilyにおけるAVX実行時の消費電力(http://news.mynavi.jp/photo/articles/2017/07/25/xeon/images/005l.jpg)を信じるなら、LINPACKの場合には

拡張命令 性能/動作周波数
(GFLOPS/GHz)
動作周波数
(GHz)
性能
(GFLOPS)
SSE 4.2 1.0 3.1 3.1
AVX 1.95 2.8 5.5
AVX2 3.77 2.5 9.4
AVX512 7.19 2.1 15.1

となるわけで、AVX2→AVX512で60%ほど性能アップが期待できることになる。今回、グラフ55でCore i9-7900XのSingle Native(AVX2)が651.00GFlopsだから、AVX512が利用できると1041.60GFlopsになる計算で、なんとかThreadRipperと肩を並べられる性能になるわけだが、このあたりは次回試す機会を楽しみにしたいところだ。ちなみにここまでのテスト結果では、UMA/NUMAの大きな性能差は感じられない。

次にCryptography(グラフ57~60)。Encryption/Decryption(グラフ57と58)では、メモリ帯域そのものがボトルネックになるためか、ThreadRipperで26~27GB/sec、Core i9-7900Xで24GB/secで頭打ちになっているようだ。ただ本来のメモリ帯域の上限よりやや低めなのが気になる。ちなみに1TだとRyzen 7 1800Xが最高速というのはちょっと面白い。

逆にHasing(グラフ59と60)はMTだと40GB/sec近い帯域を記録しており、こちらの方が実際のメモリ帯域に近い。ここから考えると、AESのEncryption/Decryptionも、やはり処理がボトルネックということだろうか? こちらではCore i9-7900X最速ではあるが、ThreadRipperも随分健闘している。ただ1Tの結果を見るとやはりAMD系はややHasingが苦手なのは間違いない。

なおUMA/NUMAで言うと、ここではNUMAにすると著しく性能が落ちる(特にMT)。ただ1Tだとそれほど差がないところを見ると、MTの際のデータ共有の方法がNUMAでは辛いということなのだろうか? 冒頭で書いたが、Version 24.41ではNUMAに対応とかあるので、このあたりまた変わってきそうではある。

Financial Analysis(グラフ61~66)だが、MTだとThreadRipper有利、1TだとCore i7-7700K最速、という構図は3つのテストで共通している。これらのテストでは素直にThread数がそのまま性能に反映されている感じである。

上のProcessor Multimediaのところで言及したAVX512の対応があると、Core i9-7900Xの性能がもう少し伸びてThreadRipper 1950Xと肩を並べる感じになるのかもしれないが。こちらではNUMAにすると、MTの際の性能が僅かながら伸びるあたりは、やはりUMA/NUMAの損得はソフトの書き方次第ということだろうか。

Scientific Analysis(グラフ67~72)では、MTだとThreadRipperもかなり健闘するが、1TではIntel系有利という構図は基本的に共通である。GEMM/FFTに関しては、MTにするとNUMAで性能が半減するが、N-Bodyでは差が無い(というか、ThreadRipper 1950XではむしろNUMAの性能が上がっている)あたりで、アプリケーションによる差が大きいのがわかる。

Image Processing(グラフ73と74)は処理によって得手不得手がはっきりしており、結構AMD系がIntel系を凌駕しているものも少なくないのだが、AMDが有利なテストはそもそもResultの桁が小さく、一方Intelが有利なもの(特にDiffusion)は桁が大きいため、一見するとIntelが全体的に有利に見えてしまうので注意されたい。(というか、対数軸にしたほうが良かったかも)。UMA/NUMAについては、Diffusion以外はおおむね同等として良いかと思う。