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

Android Wear Sony SmartWatch 3 SWR50는 빠르다

(원문 : Android Wear Sony SmartWatch 3 SWR50 は速い)

Sony SmartWatch3의 vfpbench 스코어를 보내주신 분이 계십니다. LG G Watch (LG-W100)보다 빠르며, 실제로 1.2GHz로 작동하는 것으로 판단됩니다. 아직 제대로 확인하지는 않았습니다만 2 core가 살아있을 가능성도 있습니다.

// SmartWatch 3 SWR50
// MSM8226 Cortex-A7 1.2GHz x4 (1.2GHz x2?)

ARCH: ARMv7A
CPU core: 4
VFP: VFPv4-D32 NEON
FMA: Yes
NEON: Yes
Result
  SingleT SP max:  2.257 GFLOPS
  SingleT DP max:  1.144 GFLOPS
  MultiT  SP max:  4.946 GFLOPS
  MultiT  DP max:  2.278 GFLOPS

Motorola Moto 360이외에는 전부 같은 Snapdragon 400 (MSM8226)의 나열이었습니다만, 예상외로 차이가 있는 것 같습니다.

device                SoC             CPU       SoC의 spec  실질
----------------------------------------------------------------------
LG G Watch   LG-W100  Snapdragon 400  Cortex-A7 1.2GHz x4   0.8GHz x1
LG G Watch R LG-W110  Snapdragon 400  Cortex-A7 1.2GHz x4   ?
Galaxy Gear Live      Snapdragon 400  Cortex-A7 1.2GHz x4   ?
ASUS ZenWatch WI500Q  Snapdragon 400  Cortex-A7 1.2GHz x4   ?
SmartWatch 3 SWR50    Snapdragon 400  Cortex-A7 1.2GHz x4   1.2GHz x2?
Motolora Moto 360     TI OMAP3630     Cortex-A8 1.0GHz x1   1.0GHz x1

마찬가지로 Motorola Moto 360의 결과도 받았기에 아래에 정리합니다. 스코어로 보아 이쪽은 Cortex-A8의 1.0GHz로 움직이는 물건이라 보여집니다.

device (4.4W.2)       SP-ST   DP-ST   SP-MT   DP-MT
-----------------------------------------------------------
LG G Watch LG-W100    1.419   0.742   1.367   0.676  GFLOPS
SmartWatch 3 SWR50    2.257   1.144   4.946   2.278  GFLOPS
Motolora Moto 360     3.739   0.126   3.376   0.125  GFLOPS

  * SP=단정밀도, DP=배정밀도, ST=SingleThread, MT=MultiThread

언뜻 Moto 360가 가장 빠른 것처럼 보일지도 모릅니다. 최대값이 돌출되어있는 것은 Cortex-A8가 64bit 폭의 NEON ALU를 갖고 있기 때문입니다. (Cortex-A7는 32bit폭)

실제로는 세대가 오래된 SoC를 채용하고 있으며 Moto360의 CPU Core도 몇세대 전의 물건입니다. 배정밀도(DP)의 결과를 보면 알 수 있듯, VFP 연산에서는 다른 CPU의 1/5 이하의 속도입니다. 부동소수점 연산을 많이 사용하는 일반적인 애플리케이션(NEON 미사용)에서는 아마 Moto 360 쪽이 느릴겁니다. 이에 관한 것은 VFP Bencmark에서 명령별 수치를 비교해보면 잘 알 수 있습니다.

자세한 로그를 다음 페이지에 추가했습니다.

만약 다른 장치의 로그를 갖고 있는 분이 계시다면 꼭 보내주시기 바랍니다.

관련 글

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

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