AI 向け演算能力である TOPS 値は GPU や NPU のスペックとして用いられますが CPU ではあまりデータが載っていません。vfpbench に int8 と bf16 命令の計測機能を追加したので、実際の CPU でもこれらの値を調べてみました。(TOPS 値が大きい方が高速)
| CPU | Arch | Core数 | 命令 | INT8 TOPS |
|---|---|---|---|---|
| Ryzen AI Max+ 395 | Zen5 | 16C 32T | AVX512-VNNI | 20.482 TOPS |
| Ryzen 7 9700X | Zen5 | 8C 16T | AVX512-VNNI | 10.699 TOPS |
| Core i7-13700 | RaptorCove | 16C 24T | AVX-VNNI | 5.456 TOPS |
| Ryzen 7 7840HS | Zen4 | 8C 16T | AVX512-VNNI | 4.713 TOPS |
| Ryzen 7 5700X | Zen3 | 8C 16T | AVX2 | 3.547 TOPS |
| Ryzen 9 3950X | Zen2 | 16C 32T | AVX2 | 3.178 TOPS |
| Ryzen 7 4750G | Zen2 | 8C 16T | AVX2 | 1.629 TOPS |
| Intel N97 | Gracemont | 4C 4T | AVX-VNNI | 0.366 TOPS |
Ryzen AI Max+ 395 (EVO-X2) は CPU だけで 20 TOPS となりました。かなり速く、同じ 16コアの 3950X と比べても 6.4 倍です。もちろんこれはメモリ速度やデータ転送を一切考慮しないピーク値となります。実際のアプリケーションでこの速度が出るわけではありませんので予めご了承ください。また計測は短時間で完了するのでブースト時の結果となります。
Zen5 で特に高い値が出ているのは AVX512-VNNI の vpdpb 命令を同時に 2命令実行できるためです。同じく VNNI 対応の Zen4 や Raptor Lake と比べてもクロックあたり 2倍です。
| CPU Core | 対応命令 | bit幅 | clockあたり | CORE あたりの演算数 |
|---|---|---|---|---|
| Zen5 | AVX512-VNNI | 512bit | x 2 | 256 iop |
| Zen4 | AVX512-VNNI | 512bit | x 1 | 128 iop |
| RaptorLake (RaptorCove) | AVX-VNNI | 256bit | x 2 | 128 iop |
| AlderLake-N (Gracemont) | AVX-VNNI | 256bit | x 0.5 | 32 iop |
AlderLake-N (Gracemont) はいわゆる AlderLake / RapterLake (Inel Core 12000/13000) の E-Core です。N97 を使っていますが CPU の仕様はほぼ N100 と同じです。通常の AVX 命令は 128bit x2 もしくは 256bit x1 なのですが、VNNI 命令はさらに半分のレートとなっているようです。おそらく int8 VNNI 命令を実行できる Pipe が 128bit 1本しかないためと思われます。
VNNI 非対応の Zen2/Zen3 は代わりに AVX2 の vpmaddsbsw を使用しています。3950X は Core 数が 2倍なのに Zen3 の 5700X より速度が出ていません。どうやら Zen2 では vpmaddsbsw は同時に 1命令しか実行できないようです。Zen3 では 2命令走るので、ちょうど Core 数の差を補っている形になります。なお fp32 の fma は Zen2 でも 2命令実行できるため、fp32 の FLOPS 値では Core 数が多い 3950X が逆転します。
Ryzen AI Max+ 395 の公称値との比較
Ryzen AI Max+ 395 の公称値は CPU, GPU, NPU を全部合わせて 126 TOPS となっています。
NPU 単体は 50 TOPS ですが、GPU や CPU の値は上記 AMD の仕様ページでも特に記載されていませんでした。ですがスペック表をよく見ると、各グレードの Core 数の差から CPU の TOPS 値がわかります。
メーカーのページから AI Max+ のスペックを抜き出してまとめると以下の通りです。
| CPU | CPU コア数 | GPU CU数 | GPU Clock | NPU | Overall |
|---|---|---|---|---|---|
| AMD Ryzen AI Max+ 395 | 16 | 40 CU | 2.9 GHz | 50 TOPS | 126 TOPS |
| AMD Ryzen AI Max+ 392 | 12 | 40 CU | 2.9 GHz | 50 TOPS | 122 TOPS |
| AMD Ryzen AI Max+ 388 | 8 | 40 CU | 2.9 GHz | 50 TOPS | 118 TOPS |
AI Max+ 395 と AI Max+ 388 のコア数差が 8 で、OVERALL の TOPS 値の差もちょうど 8 です。AI Max+ 392 を含めても、それぞれ Core 数の差と TOPS 値の差が同一です。公式スペックでは CPU 1 core あたり 1 TOPS の見積もりになっていることがわかります。Ryzen AI Max+ 395 は 16 core あるため、126 TOPS 中 CPU が 16 TOPS です。
これは CPU が 4.0 GHz で動作している計算になります。今回の計測結果では 20.48 TOPS なので、公式のスペックよりもだいぶ高い値となっています。20.48 TOPS から逆算すると 5.0 GHz なので、公式よりも 1 GHz 高いクロックで vfpbench が走っていたことになります。
おそらく短時間のブーストだったことと、CPU 単体での計測が原因と思われます。公称値は NPU, GPU, CPU の全ユニットの合計なので、すべてのユニットが同時にフル稼働する場合は冷却&電力制限から公式の値の通り 4.0GHz に下がるのではないかと考えられます。
CPU が判明したので GPU の分もわかります。Ryzen AI Max+ の GPU (Radeon 8060S) 単体では以下のように 60 TOPS です。
| CPU | CPU最大TOPS | GPU最大TOPS | NPU最大TOPS | 合計 |
|---|---|---|---|---|
| AMD Ryzen AI Max+ 395 | 16 TOPS | 60 TOPS | 50 TOPS | 126 TOPS |
| AMD Ryzen AI Max+ 392 | 12 TOPS | 60 TOPS | 50 TOPS | 122 TOPS |
| AMD Ryzen AI Max+ 388 | 8 TOPS | 60 TOPS | 50 TOPS | 118 TOPS |
計算からも求めてみます。AI Max+ 395 の GPU は RDNA 3.5 の Ryzen 8060S ですが、CU の基本仕様は RDNA 3 と同じです。CU あたり 64 sp x Dual Issue なので、単純に計算すると 40CU、 2.9GHz の Ryzen 8060S は fp32 で 29.7 TFLOPS になります
fp32 64(sp) x 2(dual) x 2(fma) x 40(cu) x 2.9GHz = 29696 GFLOPS
fp16 では少々制限がありますが内積の Dual Issue もしくは WMMA 利用時にこの 2倍です。int8 演算は fp32 FMA のような Dual Issue に対応しておらず、また Matrix 専用命令の WMMA でも以下のページによると演算レートは fp16 と変わらないようです。
| データ形式 | CLockあたりのピーク演算能力 (RDNA3) |
|---|---|
| fp32 | 256 fop / CU |
| fp16 | 512 fop / CU |
| bf16 | 512 fop / CU |
| int8 | 512 iop / CU |
| int4 | 1024 iop / CU |
よって int8 では 2.9GHz 時に
512(iop) x 40(cu) x 2.9GHz = 59.392 TOPS
となり、公称値から求めた 60 TOPS とほぼ同じ結果になりました。また int4 ではなく int8 の値が用いられていることもわかります。
fp32 と int8 演算
AI 用途向けに、CPU にも専用の演算命令が追加されるようになってきました。そのため従来の fp32, fp64 等の基本演算と比べて、AI 向け演算の方が急激に能力が上がってきていることが分かります。
| 世代 | fp32 (fma) | fp32の性能比 | int8 | int8の性能比 | iop/fop |
|---|---|---|---|---|---|
| Zen5 | 64 fop | x 2.0 | 256 iop | x 5.3 | 4.0 |
| Zen4 | 32 fop | x 1.0 | 128 iop | x 2.7 | 4.0 |
| Zen3 | 32 fop | x 1.0 | 96 iop | x 2.0 | 3.0 |
| Zen2 | 32 fop | x 1.0 | 48 iop | x 1.0 | 1.5 |
この傾向は他の CPU でも同じで、ARM では VNNI のような内積だけでなく i8mm といった Matrix の乗算命令も搭載されています。今後も Matrix 命令や fp8 演算対応など、この傾向はさらに強くなっていくものと思われます。
vfpbench では ARM の i8mm にも対応したので、ARM CPU の TOPS 値についても計測しています。こちらは次回以降にまとめてみたいと思います。
実際の計測データ
実際の計測データは以下のリンクから参照できます。
- AMD RYZEN AI MAX+ 395 w/ Radeon 8060S
- AMD Ryzen 7 9700X 8-Core Processor
- 13th Gen Intel Core i7-13700
- AMD Ryzen 7 7840HS / Radeon 780M Graphcis
- AMD Ryzen 7 5700X 8-Core Processor
- AMD Ryzen 9 3950X 16-Core Processor
- AMD Ryzen 7 PRO 4750G with Radeon Graphics
- Intel N97





