※ 이 글은 오가사와라 히로유키(小笠原博之) 씨가 블로그에 적은 글을 번역한 것입니다. 사정에 따라 예고없이 삭제될 수 있으므로 양해부탁드립니다.
ARM Cortex-A53의 부동소수점 연산속도와 컴파일 시간 비교
(원문 : 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에 사용되는 코어로, Cortex-A7와 마찬가지로 in-order의 파이프라인을 갖고 있습니다. 하지만 부동소수점 연산의 최고속도는 예상 이상으로 높은 결과를 냈습니다.
위 결과가 사실이라면 Cortex-A7 대비 VFP에서 2배, NEON single에서는 최대 4배 빠르다는 것이 됩니다. 또 동일 클럭 및 최대치만으로 한정하면 big 코어에도 견줄 수 있습니다. 그러나 in-order에 동작 클럭도 낮기 때문에 실제 코드에서는 big 코어와는 상당한 차이가 생길 것이라 생각됩니다. 배정밀도 연산의 병렬성도 떨어지는 것 같습니다.
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이 적기는 하지만 충분한 속도가 나옵니다. 클럭 차이를 생각해도 데스크탑 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 카드에 의존하므로 참고만 하시기 바랍니다.
아래 페이지를 갱신했습니다.