Snapdragon 845 の CPU は Qualcomm の Kryo 385 が使われています。big.LITTLE の 8 core (4+4) 非対称構成なので、ぞれぞれの CPU core 毎に測定してみました。下記はいずれも big.LITTLE 構成の CPU を使った SoC です。
Device | Single thread | Multi thread | |||||
---|---|---|---|---|---|---|---|
SoC | CPU Core | big | little | big | little | Total | |
Snapdragon 845 | Kryo385 | 4+4 | 22.3 | 13.7 | 84.4 | 54.9 | 139.3 GFLOPS |
Exynos 7420 | A57+A53 | 4+4 | 16.8 | 11.8 | 55.5 | 47.1 | 102.6 GFLOPS |
Rockchip RK3399 | A72+A53 | 2+4 | 16.1 | 11.8 | 32.1 | 47.2 | 79.3 GFLOPS |
Snapdragon 808 | A57+A53 | 2+4 | 14.5 | 11.2 | 29.1 | 44.9 | 74.0 GFLOPS |
Snapdragon 821 | Kryo | 2+2 | 18.7 | 12.6 | 37.4 | 25.3 | 62.7 GFLOPS |
・big = big core, little = little core
・Total = Multi thread の合計
vfpbench の単精度の結果のみ抜き出しています。単位は GFLOPS 。数値が大きい方が高速です。
表の CPU は Kryo, Kryo 385 (A75), Cortex-A57 いずれも 64bit x2 pipe なので、ピーク性能の差は純粋に core 数と clock 数で決まっています。
同様に little core の Cortex-A53/A55 も 64bit x2 の FP pipe を持っているので、数値上はほぼクロック差だけの違いとなっています。32bit 時代の little core Cortex-A7 と比べると性能は大きく上がっています。
初代 Kryo は Qualcomm 独自 core ですが、Snapdragon 845 の Kyro 385 は ARM Cortex-A75 + A55 がベースになっているようです。そのため Snapdragon 845 Kryo 385 の特性は初代 Kryo は異なっています。
例えば Kyro と Kyo 385 は積和命令のピーク演算はどちらも同一ながら、加算だけなら Snapdragon 821 の Kryo の方が 2倍速く回っています。
下記の表は 1 cycle に実行できる命令数 (IPC)
Device | 64bit | 128bit | ||
---|---|---|---|---|
CPU Core | mul/fma | add | mul/fma | add |
Kryo (Snapdragon 821) | 2 | 4 | 1 | 2 |
Kryo 385 (A75/A55)/A72/A57/A53 | 2 | 2 | 1 | 1 |
Kryo 385 のもとになった Cortex-A75 は ARM の新しい命令セットに対応しています。
Kryo 385 (A75/A55) | ARMv8.2-A |
Cortex-A72/57/53 | ARMv8.0-A |
以前の fp16 (半精度浮動小数点) 対応は変換命令だけでした。ロードストアは fp16 でも演算は fp32 以上に変換してから行います。v8.2 対応の A75/A55 では Deep Learning 向けに 16bit 命令が強化されています。fp16 のまま直接演算できるようになりました。
例えば NEON (Advanced SIMD) では 128bit 時に 8並列で演算が行われます。単精度 32bit と比べると 2倍の速度が出るはずなので、余裕があったら試してみたいと思います。
テストに使った機種の詳細
Pixel 3 | Snapdragon 845 SDM845 | 4+4 | Kryo 385 (A75/A55) | 2.8GHz | 1.8GHz |
Galaxy S6 | Exynos 7420 | 4+4 | Cortex-A57/A53 | 2.1GHz | 1.5GHz |
C101PA | Rockchip RK3399 | 2+4 | Cortex-A72/A53 | 2.0GHz | 1.5GHz |
ZenfoneAR | Snapdragon 821 MSM8996 | 2+2 | Kryo | 2.3GHz | 2.1GHz |
Nexus 5X | Snapdragon 808 MSM8992 | 2+4 | Cortex-A57/A53 | 1.8GHz | 1.4GHz |
関連エントリ
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
・ARM CPU の浮動小数点演算能力まとめ
・HTC 10 Snapdragon 820 Kyro の浮動小数点演算能力
・HTC 10 Snapdragon 820 Kyro の浮動小数点演算能力
・iPhone SE, Apple A9 の浮動小数点演算速度
・Raspberry Pi 3 の速度比較, Cortex-A53 の速度
・ARM Cortex-A53 の浮動小数点演算速度とコンパイル時間の比較
・iPod touch 6 の浮動小数点演算速度は Core 2 Duo ライン超え
・iPad Air 2 (Apple A8X) の浮動小数点演算能力