◆RMMT 1.1(グラフ106~107)

Sandraの前にRMMTの結果を。今回は3D V-Cache搭載のRyzen 7 7800X3Dが混じっている関係で、テストサイズは80MB(81920KB)にした。これでも1 ThreadだとL3に収まってしまうのだが、これ以上大きくするとRMMTの方が異常動作をするケースがあるので、まぁ仕方がない。

  • グラフ106

そんな訳でまずRead(グラフ106)だが、3 Thread辺りまではRyzen 9000シリーズの帯域は少し高めに推移している。4 Threadあたりでメモリコントローラ側がボトルネックになるのかほぼRyzen 5 7600Xと同じ辺りに収束するのはまぁ仕方ないことだろう(この辺はIODのUpdateが無いから当然ではある)。

  • グラフ107

一方のWrite、こちらはむしろRyzen 9000シリーズがRyzen 5 7600Xよりも低めに推移するというちょっと良く判らない状況だが、Ryzen 5 9600X/Ryzen 7 9700Xの両方がほぼ同じスコアを出しているところを見る限り、これがZen 5コアの特性ということなのだろう。あるいはWriteよりもReadを優先するアルゴリズムを入れた、ということなのかもしれない。

◆Sandra 20/21 31.139(ダイジェスト)(グラフ108~135)

Sandra 20/21 31.139
SiSoftware
https://www.sisoftware.co.uk/

なんか最近Updateが全くないSandra。トップページの最後の話題も2023年10月30日だし、今回利用した31.139もリリース日は2023年12月30日と結構古い。今回もいくつかのテストは動かないとか、結果がおかしい(DirectX 10でのVideo Memory Benchmarkが明らかに結果がでたらめになっている)のに修正がなされていないなど、ちょっと色々不都合も出て来ている。他にSandraの代替になるようなMicrobenchmarkが無いだけに、もう少し何とかしてもらいたいところである。

  • グラフ109

  • グラフ110

さて、今回はダイジェスト版ということで、主にCPUコアの性能とMemory Bandwidth周りだけに絞って結果をお届けしたい。まずグラフ109/110がDhrystoneで、意外にもMC+MT(Multi Core+Multi Thread)ではRyzen 9000シリーズの性能が伸びないが、1Tの方だと明確な伸びを示している。これはどういうことか?というと後で消費電力の所で数字を比較すると明白なのだが、Ryzen 9000シリーズはそもそも消費電力枠を低く抑えている。もう一度スペックを示すと

Base MaxBoost Default TDP
Ryzen 5 7600X 4.7GHz 5.3GHz 105W
Ryzen 5 9600X 3.9GHz 5.4GHz 88W
Ryzen 7 7800X3D 4.2GHz 5.0GHz 120W
Ryzen 7 9700X 3.8GHz 5.5GHz 88W

となっている。

つまりRyzen 5 9600Xは88W枠で105WのRyzen 5 7600Xと同じ性能だし、Ryzen 7 9700Xは88W枠で120WのRyzen 7 7800X3Dと同等の性能を出している、というのがグラフ109の結果な訳だ。一方グラフ110の方は1Threadでの動作だから、当然TDP枠を全部使い切る事は出来ない。恐らくMax Boostに近い数値での動作ではあり、そうなるとMax Bootの動作周波数の比+IPCの比、というのが結果に反映される訳だ。こう考えると、グラフ109/110の数字は納得できる。

  • グラフ111

  • グラフ112

これはWhetstone(グラフ111・112)も同じで、なぜかMT+MCでも.NETを使うとRyzen 9000シリーズの性能が伸びるのが今一つ判らないが、概ねDhrystoneと同傾向である。ただDhrystoneでは.NETでもRyzen 9000シリーズの伸びはそんなに大きくないのに、Whetstoneだけ伸びるというのはどういう仕組みなのかちょっと不思議である。

  • グラフ113

  • グラフ114

  • グラフ115

  • グラフ116

グラフ113~116はCryptographic Testであるが、AESのEncode/DecodeのMT+MC(グラフ113)がまぁどのケースでも同じなのは、もうAVXのAES命令を多用している以上性能はメモリ帯域と動作周波数で決まり、そうなるとTDPが低めのRyzen 9000シリーズが不利なのは当然である。逆に1Tで、しかも処理の重いAES256だとRyzen 9000シリーズがトップ性能というのも理解できる。強いて言えばAES128で今一つ(Ryzen 5 7600XやRyzen 7 7800X3Dに負ける)あたりが不思議ではあるが、AES128/256で性能が変わらないというあたりは実装の違いと見做すこともできる。で、AES命令が効果の無いHashingに関しては、MT+MC(グラフ115)と1T(グラフ116)どちらもRyzen 9000シリーズの性能が高いのは、これは純粋にIPCの向上の効果の一部と見做して良いかと思う。

  • グラフ117

  • グラフ118

  • グラフ119

グラフ117~119はFinancial Analysisの結果であるが、これもDhrystoneと同じでMT+MCに関しては動作周波数を上げられる(=TDPの大きい)方が有利という事で、Black-Scholes/Binomial/Monte Carloの何れの方法でもRyzen 9000シリーズはRyzen 7000シリーズよりやや低めの数字である。ところが1Tになるとこれは話が別で、Binomialを除くと全てRyzen 7000シリーズより性能が出ている。勿論ピーク性能が欲しい、というのであればこれは物足りないのかもしれないが、それであればそもそもRyzen 9を選ぶべきなのであって、Ryzen 5/7向けとしてはむしろ消費電力を控えめにする方がユーザーニーズに合っている、とAMDとしては判断したのかもしれない。

  • グラフ120

  • グラフ121

  • グラフ122

グラフ120~122がScientific Analysisである。こちらではAVXユニットの数が倍増した関係だろうか、1TだけでなくMT+MCでもRyzen 9000シリーズの性能の伸びは大きい。それでもGEMMに関して言えば、やはり3D V-Cacheの効果でRyzen 7 7800X3DがMT+MCでは最高速であるが、SGEMMの1TだとRyzen 7 7900Xの半分でしかないあたり、FPUの強化が非常に大きく影響しているのが見て取れる。これはFFTとかN-Bodyも同じである。特にFFTなどオンメモリの処理が多くなるから本来ならRyzen 7 7800X3Dが最高速でも不思議ではないのに、実際はRyzen 9000シリーズがどちらもRyzen 7 7800X3Dを上回る結果を出しているあたり、本当にFPU周りの性能が大きく向上している事が伺える。

  • グラフ123

  • グラフ124

  • グラフ125

  • グラフ126

グラフ123~126がImage Processingである。グラフ123・124がMT+MC及び1Tでの生の結果であるが、テスト毎に性能が大きく違うのでちょっと判断しづらい。そこでRyzen 5 7600Xの結果を100%とした相対性能を示したのがグラフ125・126である。MT+MCであってもRyzen 9000シリーズは10~30%程度の性能の伸びを示しているのが判るが、1Tだと更に極端で、1TのBlurだと実に4倍近い性能の伸びで、他も40%前後の伸びを示しているのが見て取れる。Image Processingといっても内部はフィルタ処理であり、例えばBlurなら3×3のConvolutionだし、同様にSharpenなら5×5、Motion Blurなら7×7のConvolutionである。DiffusinならRandomiseだし、他にSobel/Median/Quantise/Perlin 2D Noiseなどの処理を行う訳でガリガリの計算処理であるのだが、こうした用途でRyzen 9000シリーズは高い性能の伸びを示すことが確認できたのは大きいと思う。

  • グラフ127

  • グラフ128

  • グラフ129

  • グラフ130

グラフ127~130がInter-Thread Efficiencyのダイジェストである。まずグラフ127・128がInter-Thread LatencyのBest/Worstであるが、結果を見てみるとInter-Thread、つまり同一コア内のThread同士でのデータ交換のLatencyは3ns程大きくなっており、逆にInter-Core、つまり同一CCD内の異なるコア間のデータ交換は4~5ns程少なくなっている。これはなかなか興味深い話である。あるいはDecoderが大幅に拡張され、2つのThreadで別々のDecode/Queueを持つようになったのがこのInter-Thread Latencyの増加に繋がっているのかもしれない。

一方のInter-Thread BandwidthのBest/Worst(グラフ129・130)であるが、Bestの方を見ると特にL2~L3にかけてのBandwidthが大幅に伸びており、これはL2/L3の周りの改良が影響しているものと思われる。これはWorstの方も同じであるが、ことL3に関してはRyzen 5 7600Xが一番帯域が大きいというのは、余分な事をしていない分Worstケースで性能が落ちにくいということなのだろうか? ちょっと不思議ではある。

  • グラフ131

  • グラフ132

グラフ131・132がMemory Bandwidthである。これはStreamと、次に出てくるCache&Memory Bandwidthの256MB~4GBの平均値をまとめた物だ。MT+MC(グラフ131)でCore i5-14600Kが飛び抜けているのは、RMMTの結果を見ればまぁ納得である。それはともかくとして、Ryzen 9000系はRyzen 7000系よりもやや低めになっているが。これは恐らく動作周波数の問題であろう。実際1T(グラフ132)だとRyzen 9000系はRyzen 7000系より僅かながら性能が向上しているのが見て取れる。最終的にメモリコントローラは共通なので、ここで大きな性能差が出て来るとは考えにくいが、多少なりともLoad/Storeユニットの改良がこうした結果に繋がったものと思われる。

  • グラフ133

  • グラフ134

で、Cacheエリアまで広げて帯域を確認したのがこちらのCache&Memory Bandwidth(グラフ133・134)。MT+MC(グラフ133)より1T(グラフ134)の方が判りやすいと思うが。L1及びL2の帯域が大幅に向上しているのが判る。L1に関しては、AVX512を同時2命令実行できる様にLoad/Storeユニットが大幅に強化されたのがこの結果に繋がっているものと思われる。また16MBあたりまでも帯域がRyzen 7 7800X3Dより上というあたり、L3に関しても帯域強化が行われたのはほぼ確実である。ただ全Threadでこれを行うと、恐らく消費電力のリミットが先に来るのだろう。MT+MCでL2 Accessになった途端に帯域が跳ね上がるのは、全コアがL1をフルにぶん回すと消費電力がリミットになり、動作周波数が引き下げられたためであると考えられる。このあたり、Ryzen 9だとTDPがもっと大きいので、また違った傾向になりそうである。

  • グラフ135

最後にVideo Memory Bandwidth(グラフ135)。要するにPCI Expressの帯域確認であるが、これについてはそもそもPCIeのI/FのあるIoDが共通だから、当然性能に差はみられない。まぁ性能差が無いのが確認できた、というのが正確な言い方だろう(それにしてもCore i5-14900Kが妙に低いのはどうしたものか? ちなみにCore i9-14900Kだと、CPU to GPUはCore i5-14600Kと大差ないが、GPU to CPUは23.9GB/secでほぼRyzenと違いが無い。