zen5」タグアーカイブ

Ryzen Zen5 一般向け CPU で過去最高の浮動小数点能力

AMD Ryzen Zen5 世代の Desktop CPU で vfpbench を走らせてみました。使用したのは Ryzen 7 9700X で TDP はデフォルト (65W) 設定です。

Zen5 は AVX512 の 512bit FMA 積和命令を同時に 2命令実行可能で、この場合 32bit の浮動小数点演算をサイクルあたり 64 回。これまでの CPU の倍の演算能力になります。

以下は 9700X のシングルスレッド単精度からの抜粋です。512bit の AVX512 命令がスカラーや 128bit など他の命令と同じ IPC になっていることがわかります。512bit の FMA (vfmaddps) も同じ IPC で 2命令走っています。

 9700X Zen5                      TIME(s)   MFLOPS      MOPS     FOP   IPC
FMA vfmaddss (32bit x1) n12       0.450    22301.1    11150.5  (  2.0 2.0)   スカラー fma
FMA vfmaddps (32bit x4) n12       0.451    89189.2    11148.6  (  8.0 2.0)   128bit fma
FMA vfmaddps (32bit x8) n12       0.450   178399.7    11150.0  ( 16.0 2.0)   256bit fma
AVX512 vmulps (32bit x16) n12     0.450   178398.1    11149.9  ( 16.0 2.0)   512bit mul
AVX512 vaddps (32bit x16) n12     0.451   178338.0    11146.1  ( 16.0 2.0)   512bit add
AVX512 vfmaddps (32bit x16) n12   0.451   356760.6    11148.8  ( 32.0 2.0)   512bit fma

さらに FMA ではなく乗算命令+加算命令の場合は以下のようになります。

 9700X Zen5                      TIME(s)   MFLOPS      MOPS     FOP   IPC
AVX512 vml+adps (32bit x16) n12   0.225   356510.6    22281.9  ( 16.0 4.0)   512bit mul + add

512bit 加算 x2 と 512bit 乗算 x2 が同時に走っており IPC は 4。ピーク FLOPS 値は FMA x2 と同等で、加算+乗算命令の組み合わせの場合は AVX512 512bit 命令を同時に 4命令実行できることになります。

Zen4 では 512bit AVX512 命令はクロックあたり 1命令相当だったので、Zen5 の浮動小数点演算能力は Zen4 比で 2倍です。以下は Ryzen 7 7840HS (Zen4) の結果からの抜粋です。こちらは Zen5 の結果とは違い、256bit 命令に対して 512bit 命令の IPC が半減していることがわかります。

 7840HS Zen4                     TIME(s)   MFLOPS      MOPS     FOP   IPC
FMA vfmaddps (32bit x8) n12       0.337   162355.4    10147.2  ( 16.0 2.7)   FMA3   256bit fma
AVX512 vfmaddps (32bit x8) n12    0.342   160130.1    10008.1  ( 16.0 2.6)   AVX512 256bit fma
AVX512 vfmaddps (32bit x16) n12   0.680   160984.2     5030.8  ( 32.0 1.3)   AVX512 512bit fma

↑ 7840HS の IPC が割り切れない値 (1.3 や 2.6) になっているのは、数値がベースクロックの 3.8GHz 換算になっているためです。実測時は Boost 5.1GHz で動作していたため 5.1/3.8 = およそ 1.3 となります。

また現在の一般向け Intel CPU は AVX512 に対応しておらず、AVX2 (256bit) までとなります。少々世代が古いですが以下は RaptorLake Core i7-13700 の結果で、P-Core で 256bit fma が 2、E-Core で 1 命令です。

 i7-13700 RaptorLake P-Core      TIME(s)   MFLOPS      MOPS     FOP   IPC
FMA vfmaddps (32bit x8) n12       0.442   165987.5    10374.2  ( 16.0 2.0)   P-Core 256bit fma
FMA vfmaddps (32bit x8) n12       0.902    65432.2     4089.5  ( 16.0 1.0)   E-Core 256bit fma

よって、Zen5 は 一般向けとしてはこれまでで最も浮動小数点演算能力が高い CPU と言えるのではないでしょうか。

256 add256 mul256 fma256 ml+ad512 add512 mul512 fma512 ML+AD
Zen522242224
Zen422241112
RaptorLake P-Core2223
RaptorLake E-Core1111

なお Zen4 (Ryzen 7 7840HS) の結果もこちらに追加しました。

関連エントリ