※ 이 글은 오가사와라 히로유키(小笠原博之) 씨가 블로그에 적은 글을 번역한 것입니다. 사정에 따라 예고없이 삭제될 수 있으므로 양해부탁드립니다.

Android Qualcomm Snapdragon 800 MSM8974 Krait 400의 속도

(원문 : Android Qualcomm Snapdragon 800 MSM8974 Krait 400 の速度)

CPU 벤치에 Snapdragon 800 MSM8974 Krait 400의 결과를 추가했습니다.

부동소수점 연산명령별 실행속도

                (1)      (2)      (3)      (4)       (5)      (6)      (7)
               Nexus7   iPad4    HTL21   Nexus10  iPhone5s iPhone5s KindleHDX7
              Cortex-A9 Swift    Krait  Cortex-A15 Cyclone  Cyclone   Krait4
               Tegra3    A6X    APQ8064  Exynos5D   A7 32    A7 64   MSM8974
               1.2GHz   1.4GHz   1.5GHz   1.7GHz    1.3GHz   1.3GHz   2.2GHz
------------------------------------------------------------------------------
a:m44 vmla_AQ  3.959    1.204    1.337    0.619     0.700    -----    0.661
b:m44 vmla_BQ  2.002    1.266    0.931    0.569     0.670    -----    0.542
c:m44 vmla_AD  3.980    1.554    1.889    0.557     0.649    -----    0.888
d:m44 vmla_BD  2.003    1.238    1.532    0.568     0.745    -----    0.768
A:m44 vfma_AQ  -----    1.519    1.882    0.746     0.707    0.692    1.178
B:m44 vfma_BQ  -----    1.484    0.695    0.840     0.699    0.696    0.463
e:fadds     A  3.343    2.878    2.774    2.383     3.551    1.043    1.864
f:fmuls     A  3.337    2.953    2.747    2.369     3.475    1.548    1.867
g:fmacs     A  3.337    5.757    5.574    2.956     3.480    -----    2.052
h:vfma.f32  A  -----    5.756    2.747    2.957     3.480    3.185    1.864
i:vadd.f32 DA  3.426    2.877    2.762    1.183     1.031    1.031    1.866
j:vmul.f32 DA  3.421    2.950    2.746    1.478     1.545    1.545    1.864
k:vmla.f32 DA  3.792    2.951    5.604    1.480     1.567    -----    2.051
o:vfma.f32 DA  -----    2.494    2.833    1.479     1.574    1.753    1.871
l:vadd.f32 QA  6.688    2.878    2.801    2.365     1.031    1.039    1.872
m:vmul.f32 QA  6.681    2.952    2.761    2.364     1.548    1.548    1.879
n:vmla.f32 QA  6.681    2.950    5.606    2.367     1.574    -----    2.059
N:vfma.f32 QA  -----    -----    -----    -----     -----    1.696    -----
p:fadds     B  3.347    5.756    3.467    2.956     6.953    3.663    -----
q:fmuls     B  4.195    5.756    3.556    3.558     6.652    3.296    -----
r:fmacs     B  6.688   11.514    6.298    5.912     9.867    -----    -----
s:vfma.f32  B  -----   11.513    3.430    5.910     9.859    3.292    -----
t:vadd.f32 DB  3.421    2.881    3.529    2.958     3.663    3.643    1.865
u:vmul.f32 DB  3.422    2.949    3.447    2.364     3.114    3.289    2.339
v:vmla.f32 DB  7.561    5.755    6.293    4.728     6.185    -----    3.773
z:vfma.f32 DB  -----    5.755    3.437    4.730     6.188    6.237    2.340
w:vadd.f32 QB  6.705    2.879    3.457    2.961     3.659    3.641    1.875
x:vmul.f32 QB  6.683    2.950    3.428    2.363     3.101    3.276    2.340
y:vmla.f32 QB  7.532    5.759    6.372    4.729     6.199    -----    3.746
Y:vfma.f32 QB  -----    -----    -----    -----     -----    6.226    -----

・↑수치는 실행시간(초). 수치가 작을수록 고속. single thread
・모두 단정밀도 32bit float 연산입니다.

Krait 400은 동작 clock이 높은 것도 있고 해서 상당히 빠릅니다. 위 결과에서는 같은 ARMv7A VFPv4 세대인 Cortex-A15에 필적하며, 실행효율의 차를 동작 클럭이 충분히 보충해주고 있음을 알 수 있습니다.

또 여기서 Quad core는 Cortex-A9, Krait, Krait 400 뿐이므로, 종합적인 퍼포먼스로는 고클럭이자 Quad core인 Krait 400이 가장 점수가 높으리란 것을 예상할 수 있습니다.

NEON 명령은 64bit와 128bit의 차이가 없으며, Cortex-A15과 달리 128bit 단위입니다.

vfma (FMA)보다도 vmla가 2배 느렸던 그냥 Krait (3)과 비교하여, Krait 400 (7)에서는 vmla도 vfma에 가까운 속도를 내고 있습니다. 같은 Krait라도 다른 경향을 보여주며, 여러가지로 개량된 듯 합니다.

동시에 A7 Cyclone의 core 1개의 성능이 굉장히 높다는 것을 새삼 느끼게 됩니다. A7 Cyclone의 결과는 2개 있는데, (5)는 ARMv8 AArch32 (armv7) 32bit 모드의 결과고, (6)는 ARMv8 AArch64 (arm64) 64bit 모드에서의 결과입니다.

이하는 테스트 단말에 대한 자세한 사양입니다.

device                     OS   SoC      CPU core     clock  Arch        VFP
----------------------------------------------------------------------------
(1)ASUS Nexus 7 (2012)     A4.2 Tegra 3  Cortex-A9 x4 1.2GHz ARMv7A 32bit v3
(2)Apple iPad 4            i6.1 A6X      Swift     x2 1.4GHz ARMv7A 32bit v4
(3)HTC J butterfly HTL21   A4.1 APQ8064  Krait     x4 1.5GHz ARMv7A 32bit v4
(4)Samsung Nexus 10        A4.2 Exynos5D Cortex-A15x2 1.7GHz ARMv7A 32bit v4
(5)Apple iPhone 5s         i7.0 A7       Cyclone   x2 1.3GHz ARMv8A 32bit v4
(6)Apple iPhone 5s         i7.0 A7       Cyclone   x2 1.3GHz ARMv8A 64bit Ad
(7)Amazon Kindle Fire HDX7 A4.2 MSM8974  Krait 400 x4 2.2GHz ARMv7A 32bit v4

아래는 또 하나의 CPU 벤치 결과입니다.

  SoC CPU              clock  compiler  arch   time  MB/s   MBS/GHz
-------------------------------------------------------------------
1.A7 Cyclone + AES     1.3GHz clang 5.0 arm64  0.129 837.54  644.26
2.A7 Cyclone           1.3GHz clang 5.0 arm64  1.04  104.27   80.21
3.A7 Cyclone           1.3GHz clang 5.0 armv7  1.16   93.04   71.57
4.MSM8974 Krait 400    2.2GHz gcc 4.8   armv7  1.41   76.67   34.85
5.Exynos 5D Cortex-A15 1.7GHz gcc 4.6   armv7  1.49   72.61   42.71
6.A6X Swift            1.4GHz clang 4.2 armv7  1.75   61.82   44.16
7.APQ8064 Krait        1.5GHz gcc 4.6   armv7  2.28   47.64   31.82
8.Tegra3 Cortex-A9     1.3GHz gcc 4.4.3 armv7  3.00   36.15   25.82

・time 단위는 초
・MB/s 가 클수록 고속
・MBS/GHz = 1GHz당 처리속도

전용명령을 사용하는 1.이 자릿수가 하나 높을 정도로 빠른 것은 당연합니다만, 64bit 아키텍터의 A7도 충분히 빠릅니다. 신 core + 클럭수가 가장 빠른 Krait 400은 그 뒤를 잇습니다. 상세한 테스트 내용은 이쪽을 참조하시길.

테스트에 사용한 Kindle Fire HDX 7의 데이터는 아래에도 추가했습니다.

관련 글

+ Recent posts