日別アーカイブ: 2015年10月30日

ARM Cortex-A72 の浮動小数点演算速度 (Amazon Fire TV)

Amazon Fire TV (2015) で vfpbench を走らせてみました。下記表の MT8173C (上 2つ) が Fire TV です。

SoC CPU clock AArch fop SP DP SP-MT DP-MT
MT8173C Cortex-A72 2.0GHz x2 64 16 15.875 7.946 31.756 15.882
MT8173C Cortex-A72 2.0GHz x2 32 16 15.864 7.934 31.771 15.885
Tegra4 Cortex-A15 1.8GHz x4 32 32 13.371 2.655 51.345 9.860
AppleA7 Cyclone 1.3GHz x2 64 32 20.621 10.313 40.871 20.480
AppleA7 Cyclone 1.3GHz x2 32 32 20.608 4.038 40.924 8.021
TegraK1 Denver 2.3GHz x2 64 24 17.906 8.762 34.888 17.601
TegraK1 Denver 2.3GHz x2 32 24 18.043 4.297 34.177 8.702

(SP/DP/SP-MT/DP-MT の単位は MFLOPS GFLOPS,数値が大きい方が高速)

詳細な結果は下記に追加しています。(big core のみ計測しています)

VFP Benchmark Log

Cortex-A72 はピーク性能に突出したところはなく core あたり 8 fop (単精度 SIMD4 FMA) と標準的。SIMD2 の結果から Cortex-A15 同様 64bit 2pipe の構成であることもわかります。

ただしスカラー命令にはかなり違いがあるようです。Cortex-A72 では NEON だけでなくスカラー命令も 2 pipe 並列に実行できるらしく、加算で Cortex-A15 のおよそ 2倍。これは AArch32 mode でも有効なので、ARMv7A でビルドしたバイナリでも 64bit CPU の方が高速に演算できることになります。

倍精度でも少々面白い結果になっています。AArch64 には倍精度浮動小数点演算の NEON 命令があるものの SIMD でも 2並列です。Cortex-A72 は 64bit x 2pipe なので、ピーク性能において NEON とスカラーの差がなくなっています。

AArch32 でも同じなので、倍精度 NEON 命令が使えない ARMv7A もピーク速度が落ちておらず AArch64 の NEON 相当の速度を維持しています。

下記は倍精度のみの抜粋です。AppleA7/TegraK1 は AArch32 と AArch64 で差が開いていますが Cortex-A72 はスコア差がありません。A7/K1 比でピーク速度で負けているものの AArch32 では逆転していることがわかります。

SoC CPU clock AArch DP DP-MT
MT8173C Cortex-A72 2.0GHz x2 AArch64 7.946 15.882
MT8173C Cortex-A72 2.0GHz x2 AArch32 7.934 15.885
SoC CPU clock AArch DP DP-MT
AppleA7 Cyclone 1.3GHz x2 AArch64 10.313 20.480
AppleA7 Cyclone 1.3GHz x2 AArch32 4.038 8.021
SoC CPU clock AArch DP DP-MT
TegraK1 Denver 2.3GHz x2 AArch64 8.762 17.601
TegraK1 Denver 2.3GHz x2 AArch32 4.297 8.702

CPU の浮動小数点演算能力の詳細

関連エントリ
iPod touch 6 の浮動小数点演算速度は Core 2 Duo ライン超え
iPad Air 2 (Apple A8X) の浮動小数点演算能力
Android x86 Binary Translator を試してみる
iPhone 5s A7 CPU の浮動小数点演算速度 (2) (arm64/AArch64/64bit)
VFP Benchmark 関連