日別アーカイブ: 2019年1月5日

Snapdragon 845 の浮動小数点演算速度

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 のまま直接演算できるようになりました。

ARM FPU (VFP/NEON) の種類

例えば 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) の浮動小数点演算能力