※ 이 글은 오가사와라 히로유키(小笠原博之) 씨가 블로그에 적은 글을 번역한 것입니다. 사정에 따라 예고없이 삭제될 수 있으므로 양해부탁드립니다.
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 (신) 631.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.5GHz2.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 정정:
- Celeron J1900의 TB Clock 실수를 정정했습니다. 2.5GHz → 2.41GHz
- 배정밀도 연산에서 구 Atom의 2배는 잘못된 것이었습니다. 구 Atom과 동등한 성능이라고 생각됩니다. 실례했습니다.