본문 바로가기
스마트폰/애플 APPLE

APPLE A7 분석 (2) CPU 성능. (2013.10.27 update)

by gamma0burst 2013. 9. 30.
반응형

A7의 CPU 성능을 알아보겠습니다.



A7의 CPU 코어는 전작 A6의 Swift에서 한단계 발전한 Cyclone 코어로 알려져 있습니다.
ARMv8 명령어 기반으로 64비트를 지원합니다.
CPU 사이즈는 전체의 17%. 17mm2 정도입니다.
32nm A6 CPU 사이즈가 16mm2 정도이니 규모로보면 Swift코어 대비 40% 이상 증가했습니다.
L1 캐시는 코어당 128KB (명령어 64KB/데이터 64KB)
L2 캐시는 1MB







A6 대비 2배의 성능을 주장하는데 확인해보겠습니다.
우선 긱벤치3 입니다.

A7 64bit : http://browser.primatelabs.com/geekbench3/110399
A7 32bit : http://browser.primatelabs.com/geekbench3/73299
A6 :
http://browser.primatelabs.com/geekbench3/60593
A6, A7 모두 같은 듀얼코어 1.3GHz이기때문에 비교하기 편하네요.
긱벤치3 결과를 보면 다음과 같습니다.


일단 종합 스코어를 보면 A7은 A6 대비 2배에 가까운 결과입니다.
(iOS 32비트에서 이루어진 테스트입니다.)

 

왼쪽은 32비트 결과, 오른쪽은 64비트 결과입니다.






A6대비,
32비트에서 정수연산은 1.42배, 부동소수점연산은 1.68배입니다.
64비트에서는
정수연산이 1.96배, 부동소수점연산은 2.27배입니다.



각 항목의 성능비를 평균내보면 위와 같이 나옵니다.
총점의 비율과 다르지요.
각 총점에 대한 세부 테스트 항목의 반영비율이 다르기때문으로 보입니다.
세부항목에서 극단적으로 높은 결과가 나오는 항목이 몇 개 있습니다.
대부분 1~2배 정도 수준입니다만 일부에서는 최대 15배까지 높은 항목이 있습니다.


- 정수연산
대부분 1~2배 수준입니다만 아래 두 항목은 성능차이가 매우 큽니다.
AES : 15배
SHA1 : 4배
ARMv8에 명령어가 추가되었기때문으로 보입니다.
저 두 결과를 제외하더라도 A6 대비 155%의 성능을 보입니다. (1.55배)
성능 향상이 있다고 말할만하지요.
32비트 기준 : A6 대비 1.42배.
64비트 기준 : A6 대비 1.96배.
어쨌든 총점에서 싱글코어, 듀얼코어 모두 A6 대비 2배의 성능을 보입니다.


- 부동소수점
대부분 1~2배 수준입니다만 아래 항목은 성능차이가 매우 큽니다.
DREMM : 4배
SFFT : 2.8배
N-Body : 3배
Ray Trace : 3배

32비트 기준 : A6 대비 1.68배.
64비트 기준 : A6 대비 2.27배.

긱벤치3 총점만 보면 Swift의 2.3배 수준의 성능입니다.

이전 포스팅에서 했던 식으로 비교해보겠습니다.
(ARM 기반 아키텍처별 부동소수점 연산성능.)
테스트 출처는 다음과 같습니다.
(
http://wlog.flatlib.jp/item/1645 , http://wlog.flatlib.jp/item/1647)


ADD
대체적으로 Cortex-A15와 비슷합니다.
인/아웃 레지스터가 다를 경우(A)는 Swift보다 빠르지만, 4명령마다 인터리브할 경우(B) Swift보다 늦습니다.
64비트를 위해 레지스터가 확장된 영향이 아닌가 추측.
64비트에서는 스칼라 연산 속도가 2배입니다.


MUL
ADD 특성과 비슷합니디만 ADD에서와 달리 QA가 DA보다 빠릅니다.


MLA
Cortex-A15 보다 약간 빠른 수준.


FMAC
ADD 특성과 비슷합니다.


FMA
Cortex-A15와 비슷한 수준.

테스트 결과를 보면 알 수 있듯이 64비트가 모든 부분에서 32비트보다 앞서는 것은 아닙니다.

평균성능 순위를 보면,
Cyclone 64bit (130%) - Cyclone 32bit (105%) - Cortex-A15 (100%) - Swift (74%)
- Krait (69%) - Cortex-A9 (57%)



- 정리
1. 정수연산.
Swift 대비 코어당 성능, 듀얼코어 성능 모두,
32비트 기준 : A6 대비 1.42배.
64비트 기준 : A6 대비
1.96배.

2. 부동소수점연산.
Swift 대비 코어당 성능, 듀얼코어 성능 모두,
32비트 기준 : A6 대비 1.68배.
64비트 기준 : A6 대비 2.27배.


3. 64bit vs 32bit
긱벤치3 결과에서 32비트와 64비트 성능을 비교해보면 (당연하지만) 64비트 쪽이 높습니다.
정수연산 : +38%
부동소수점연산 : +35%


 

긱벤치3의 세부 테스트 항목을 보면 64비트에서 특별히 높게 나오는 테스트 항목이 보입니다.
모든 항목에서 64비트 결과가 높은건 아니고 32비트보다 낮은 항목도 있습니다.

멀티코어 기준으로 평균을 내보면 64비트는 32비트 대비,
정수연산 (포함) : +89%
정수연산 (미포함) : +8%
부동소수점연산 (포함) : +45%
부동소수점연산 (미포함) : +17%
높게 나오는 일부 항목을 제외하면 32비트 대비 8%, 17% 향상.
A7의 극적인 성능향상을 64비트로 인한걸로 보기에 애매합니다.
애초에 64비트 아키텍처와 ARMv8 명령어를 완전히 떼어놓고 생각할 수 없다는 점이 가장 애매하지만요.

(
http://wlog.flatlib.jp/item/1651)
테스트 결과에서 알 수 있듯이 64bit는 ARMv8에 새로 추가된 명령어, 확장된 레지스터, Advanced SIMD의 효과를 볼 수 있는 일부 테스트에서 성능향상을 보였을뿐, 그 외의 경우는 32bit와 큰 차이를 보이지 않습니다.
(덕분에 벤치마크에서는 종합적인 성능이 12~24% 향상되는 모습을 보입니다만......)
A7의 성능이 A6보다 크게 향상된건 64비트 덕이라기보다는 애초에 사양과 성능이 높은 것이지요.
애시당초 데스크탑에서 소프트웨어와 하드웨어가 64비트로 전환될 때를 생각하면 단순히 64비트 지원이라고 성능이 높아질 것이라는 생각이 틀렸다는건 쉽게 알 수 있습니다.



반응형

댓글