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

Atom Bay Trail의 부동소수점 연산능력

(원문 : Atom Bay Trail の浮動小数点演算能力)

최근의 Windows Tablet 등에 쓰이는 Bay Trail은 새로운 세대의 Atom CPU core(Silvermont)를 탑재했습니다. HT 없는 2/4 core의 Out-of-Order로, 구 Atom과 비교하여 실행성능이 크게 향상되었습니다.

Bay Trail의 부동소수점 연산능력을 조사해보았습니다. 테스트 환경은 Bay Trail-D (Celeron J1900)으므로 엄밀히 말하자면 Celeron입니다.

그 결과, 단정밀도의 부동소수점 연산능력은 구 Atom과 다르지 않고, 1 core당 6 fop(add 4 + mul 2) / clock이라는 것을 알 수 있었습니다. 구 Atom과 마찬가지로 add, mul의 비대칭적인 interleave에서 좋은 결과가 나왔습니다. 그 대신 배정밀도 연산이 강화되어, 구 Atom의 2배에 상당하는 값이 나왔습니다.

VFP Benchmark의 결과를 통해 구한 cycle 당 연산 (1core 당)

                       Single FP   Double FP
---------------------------------------------------------
Atom Bonnell (구Atom)     6          1.5
Atom Silvermont (신)      6            3 1.5     (Bay Trail)
Core 2 Duo                8            4
Core i7 Sandy Bridge     16            8
Core i7 Ivy Bridge       16            8
Core i7 Haswell          32           16     (미계측, 예상치)

Cortex-A9                 4            1
Cortex-A15                8          1.4
Krait                     8            2     (Snapdragon 800)
Swift                     8            1     (iPhone 5)
Cyclone ARM64            16            8     (iPhone 5s)

연산내용의 내역은 다음과 같습니다.

                       Single FP         Double FP
SIMD(Vector)           mul  add  mad     mul  add  mad
-------------------------------------------------------
Atom Bonnell (구Atom)   2    4   (6)     0.4  0.5    ?
Atom Silvermont (신)    2    4   (6)       1    2   (3)  0.5  1.0  (1.5)
Core 2 Duo              4    4   (8)       2    2  (3?)
Core i7 Sandy Bridge    8    8  (16)       4    4   (8)
Core i7 Ivy Bridge      8    8  (16)       4    4   (8)

Cortex-A9               2    2    4       --   --   --
Cortex-A15              4    4    8       --   --   --
Krait                   4    4    8       --   --   --
Swift                   4    4    8       --   --   --
Cyclone ARM64           8   12   16        4    6    8

Scalar일 때의 결과 등, 보다 자세하게 정리한 표를 아래에 올려놓았습니다.

아래는 실제 J1900의 VFP Benchmark 결과입니다. 연산명령단위 등 보다 자세한 결과를 보시고 싶은 분은 이쪽에서 보시길 바랍니다. 각종 CPU의 로그를 올려놓았습니다.

Bay Traild-D Celeron J1900 2.0GHz (TB:2.5GHz 2.41GHz)

ARCH: x64
FPU: SSSE3 SSE4.1 SSE4.2
SingleT SP max: 14.477 GFLOPS
SingleT DP max:  3.619 GFLOPS
MultiT  SP max: 57.902 GFLOPS
MultiT  DP max: 14.471 GFLOPS
CPU core: 4
SSE: yes
AVX: no
FMA: no
~

이론치는 2GHz 4core로 48 GFLOPS인데, 계측결과 그보다 높은 수치가 나왔습니다. Turbo Boost가 작동하고 있는 것이 원인으로, 57.902 / 24 = 2.41이므로 Multi Thread 시에 대충 2.4GHz로 동작한다는 것을 알 수 있습니다.

다른 CPU와의 비교

VFP Benchmark 실측값        clock core    Single FP     Double FP
-------------------------------------------------------------------
Bay Trail-D  J1900           2.0GHz x4    57.9 GFLOPS   14.5 GFLOPS
Menlow       Atom Z540       1.9GHz x1    10.9 GFLOPS    1.9 GFLOPS
Core 2 Duo   P7350           2.0GHz x2    31.7 GFLOPS   12.7 GFLOPS
Ivy Birdge   Core i5-3210M   2.5GHz x2    90.2 GFLOPS   45.2 GFLOPS
Sandy Bridge Core i7-2720QM  2.2GHz x4   162.3 GFLOPS   74.0 GFLOPS

Kindle HDX 7 Krait 400       2.2GHz x4    67.5 GFLOPS   16.9 GFLOPS
Tegra Note 7 Cortex-A15      1.8GHz x4    51.3 GFLOPS    9.8 GFLOPS
iPhone 5s    Cyclone         1.3GHz x2    40.9 GFLOPS   20.5 GFLOPS

・최대값 비교. GFLOPS가 높을수록 빠름

↑ Multi Thread 시의 비교이므로, Core수가 많고 Clock이 높은 쪽이 결과가 좋습니다.

현저한 Mobile용 CPU의 성능향상으로, 구 Atom(Bonnell/Saltwell)으로는 하이엔드 Quad core ARM과 맞상대를 할 수가 없었습니다만, 새 Atom Silvermont는 충분한 성능을 갖고 있습니다. 다만 부동소수점 연산은 그렇게 뛰어나지 않은 듯 합니다. 아마 AVX에도 대응되는 Jaguar 쪽이 더 위일 겁니다.

또한 Tablet용 Bay Trail-T는 동작 클럭이 내려가므로, 위의 표보다도 성능이 낮아질 거라 생각됩니다.

또, 어디까지나 부동소수점 연산에 특화된 수치이므로, 실제 애플리케이션의 동작속도와는 차이가 있다는 점에 주의하시기 바랍니다. 당 blog가 부동소수점 연산성능의 데이터를 모으는 것은 게임을 개발할 때의 최적화가 목적입니다.

2014/05/15 정정:

+ Recent posts