月別アーカイブ: 2015年12月

ARM Cortex-A53 の浮動小数点演算速度とコンパイル時間の比較

Qualcomm の DragonBoard 410c を入手したので vfpbench を走らせてみました。

Snapdargon 410 Cortex-A53 1.2GHz quad core
OS arch SP-ST DP-ST SP-MT DP-MT
Android 5.1 AArch64 9.377 4.737 30.817 15.063
Android 5.1 AArch32 9.442 2.558 29.290 7.753

・ 単位は GFLOPS, 値が大きい方が高速
・ SP=single fp, DP=double fp, ST=single thread, MT=multi thread

Cortex-A53 は big.LITTE の LITTLE に使われる core で Cortex-A7 同様 in-order の pipeline を持っています。ところが浮動小数点演算のピーク速度は予想以上に高い結果となっています。

上の結果が本当なら Cortex-A7 比で VFP で 2倍、NEON single だと最大 4倍速いことになります。また同一クロックかつピークのみに限定すれば big core にも並びます。ただし in-order かつ動作クロックも低いため、実際のコードでは big core とはかなり差が生じると思われます。倍精度演算の並列性も劣っているようです。

CPU core arch SP-ST DP-ST SP-MT DP-MT SoC clock
Cortex-A7 armv7a 2.374 1.165 9.474 4.653 MT8125 1.2GHz x4
Cortex-A53 arm64 9.377 4.737 30.817 15.063 APQ8016 1.2GHz x4
Cortex-A53 armv7a 9.442 2.558 29.290 7.753 APQ8016 1.2GHz x4
Cortex-A72 arm64 15.864 7.934 31.771 15.885 MT8173C 2.0GHz x2
Cortex-A72 armv7a 15.875 7.946 31.756 15.882 MT8173C 2.0GHz x2
Cyclone 2 arm64 23.568 11.751 68.591 33.968 AppleA8X 1.5GHz x3
Denver arm64 17.906 8.762 34.888 17.601 TegraK1 2.3GHz x2

Linux 上でコンパイル速度も測定してみました。RAM が少ないとはいえ十分速度が出ています。クロック差を考えても Desktop CPU との違いが少なくなってきてることがよくわかります。

CPU core clock C/T Compiler RAM sec
Core i7-4790K Haswell 4.0GHz 4C8T Clang-3.6 16GB 15
Celeron J1900 Silvermont 2.0GHz 4C4T Clang-3.4 8GB 79
Athlon 5350 Jaguar 2.0GHz 4C4T Clang-3.6 8GB 88
Celeron 2955U Haswell 1.4GHz 2C2T Clang-3.4 4GB 93
Celeron N3150 Airmont 1.6GHz 4C4T Clang-3.6 16GB 108
DragonBoard 410c Cortex-A53 1.2GHz 4C4T Clang-3.5 1GB 186
Raspberry Pi 2 Cortex-A7 0.9GHz 4C4T Clang-3.5 1GB 402
Atom Z540 Bonnell 1.8GHz 1C2T Clang-3.4 2GB 426
Raspberry Pi ARM1176 0.7GHz 1C1T Clang-3.5 0.5GB 1893
Netwalker Cortex-A8 0.8GHz 1C1T GCC-4.7 0.5GB 1902

* sec = コンパイル時間(秒)、値が小さい方が速い
* Dragonboard 401c = Debian 8.0

RAM が少ないデバイスはストレージ速度の影響が大きい点に注意してください。特に Raspberry Pi 系は SD カードに依存するため参考程度にお願いします。

下記のページを更新しました

VFP Benchmark Log 計測結果まとめ
CPU の浮動小数点演算能力の詳細

関連エントリ
2955U vs N3150/J1900/Athlon5350 (コンパイル時間の比較)
Apple TV の浮動小数点演算速度。Fire TV/Android TV との比較など
ARM Cortex-A72 の浮動小数点演算速度 (Amazon Fire TV)
Raspberry Pi 2 で速くなったコンパイル時間の比較
BayTrail vs Kabini (Celeron J1900 vs Athlon 5350)
コンパイル時間の比較 BayTrail

Tool 座標系の違いのメモ

D3D 系 3D L/R UpV 3D Type
Direct3D Left-Hand Y-Up LY
Unity Left-Hand Y-Up LY
Snowdrop Left-Hand Y-Up LY
GL 系 3D L/R UpV 3D Type
OpenGL Right-Hand Y-Up RY
Maya Right-Hand Y-Up RY
Houdini Right-Hand Y-Up RY
SI3D/XSI Right-Hand Y-Up RY
CAD 系 3D L/R UpV 3D Type
3ds Max Right-Hand Z-Up RZ
Blender Right-Hand Z-Up RZ
CryEngine Right-Hand Z-Up RZ
その他 3D L/R UpV 3D Type
Unreal Engine Left-Hand Z-Up LZ

・GameEngine はツールの画面写真から判定。間違っている可能性があります。

下記のページを追加しました

Tool 座標系まとめ