본문 바로가기
성능비교 그래프/부동소수점 연산 (VFP)

ARM 기반 아키텍처별 부동소수점 연산성능.

by gamma0burst 2013. 6. 5.

올라온지 좀 된 자료인데 린팩보다 훨씬 더 정확한 것 같아서 올립니다.
(
http://wlog.flatlib.jp/item/1620)
원본의 내용을 다수 참고하고 있으며 일부 저의 해석이 들어갔습니다.



테스트 원본입니다.

(물론 테스트 자료 여러 개 취합해서 정리한건 저...)
결과 단위는 초(sec) 입니다.
값이 작을수록 빠릅니다.



각 제품마다 클럭이 다르기때문에 1.0GHz 기준으로 정규화한 결과입니다.
이래야 제대로 된 비교가 되겠지요.

- 공통내용
m44 : NEON을 사용한 4 x 4 매트릭스 연산.
A : 파이프라인 최적화 없음, 인/아웃이 완전히 다른 레지스터.
B : 4명령마다 인터리브(Interleave, 동시참조), 레이턴시가 커질 경우 A보다 스톨(stall)이 발생할 가능성 높음.
아무표시 없는 것(A, B만 있는 것) : VFP 스칼라. 32bit (Single precision)
D : NEON, 64bit (Double precision) 명령.
Q : NEON, 128bit (Quadruple precision) 명령.
단일 코어 간 성능비교임.



(ADD : 더하기)
뒤에 나올 다른 명령어도 그렇지만 같은 아키텍처끼리는 결과가 동일합니다. (A9, Swift)
당연한 결과.

A9 : 64bit까지는 1사이클에 가능하지만 128bit부터는 2사이클 이상이기때문에 Q에서 시간이 두 배로 늘어납니다.
스콜피온 : 128bit 지원이기때문에 D, Q 간에 시간차이가 없습니다.
Swift : 128bit 지원이기때문에 D, Q 간에 시간차이가 없습니다.
크레이트 : 특성은 스콜피온과 비슷하지만 약간 느려졌습니다. 스콜피온에 비해 A와 B의 차이가 줄었습니다.
A15 : D,Q 사이에 차이가 있는 것으로 보아 A15는 64bit x2 구조로 보입니다.(i,l)


(MUL : 곱하기)
대부분 ADD 특성과 비슷.


(MLA : 곱하기 덧셈.)

A9 : ADD 특성과 유사.
스콜피온 : ADD 특성과 유사. B 방식에서 효율이 매우 좋지 않음.
Swift : ADD 특성과 유사. B 방식에서 효율이 매우 좋지 않음.
크레이트 : 스콜피온보다 느립니다.
A15 : ADD 특성과 유사.


(FMAC : 곱하기 덧셈.)

A9 : ADD 특성과 유사.
스콜피온 : MLA 특성과 유사.
Swift : A9보다 느립니다.
크레이트 : A9, 스콜피온보다 느립니다.
A15 : 크레이트, Swift 보다는 낫지만, A9, 스콜피온보다는 느립니다.


(FMA : Fused Multiply Add)
FMA는 VFPv4에서 추가된 명령어이기때문에 VFPv3인 A9, 스콜피온은 지원하지 않습니다.

Swift : FMAC 특성과 유사. 스칼라 연산에서 약세.
크레이트 : 최적화에 따라 결과가 크게 향상됩니다.(A,B) 그 조건에서 다른 아키텍처는 결과가 오히려 안 좋습니다.
A15 : 평균적으로 가장 우수합니다.


- 정리.

성능순위.
A15 (100%) - Swift (74%) - Krait (69%) - Scorpion (66%) - A9 (57%)

(1) Cortex-A15
테스트 결과로 보아 64bit x2 구조.
스칼라 연산에 취약한 모습을 보이는데 Swift나 크레이트도 그런 것으로 보아 VFPv4의 특성인듯.
그 외에는 전반적으로 매우 빠른 편.

(2) Swift
전반적으로 A15와 크레이트의 중간 정도를 보이나, 스칼라 연산에서 매우 취약한 모습을 보임.
구조적인 원인이 있는 것으로 추측됨.
(스칼라 유닛을 축소하거나 배제하는 커스텀이 이루어졌다든가...)
FMA, FMAC에서 A15 보다 40% 가까이 낮은 성능을 보임.
하드웨어에서 네이티브로 지원하지 않는듯. (커스텀의 결과겠지요.)


(3) Krait
스콜피온에 비해 개선되었으나 크게 달라진 점은 없음.
MLA 연산이 크게 떨어지는데 하드웨어는 FMA만 지원하고 MLA은 Mul + Add의 2명령으로 처리했을 가능성이 있음. (호환성때문?)


(4) Scorpion
128bit 폭의 VFP/NEON 덕에 A9 대비 우수한 성능을 보이나, 큰 차이를 보이지 못 함.
최적화의 영향을 많이 받음.
A9와 성능 차이가 크지 않은건 파이프라인 스테이지가 깊어 레이턴시가 증가하였고, Out-of-Order가 부분적으로 적용되어 효율이 떨어졌기때문인 것으로 보임.



댓글6