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

컴파일 시간의 비교 BayTrail

(원문 : コンパイル時間の比較 BayTrail)

BayTrail-D Celeron J1900 PC에서 컴파일 시간을 비교해보았습니다.

flatlib3 Linux       clock  core  RAM   OS   arch compiler   time sec
-------------------------------------------------------------------------
Raspberry Pi ARM11   0.7GHz  x1 0.5GB wheezy arm6 gcc-4.7    2276.8 (38m)
Atom Z540            1.9GHz  x1   2GB 14.04  x86  clang-3.5   446.9  (7m)
Atom Z540            1.9GHz  x1   2GB 14.04  x86  gcc-4.8     369.4  (6m)
Tegra3 Cortex-A9     1.2GHz  x4   1GB 13.04  arm7 gcc-4.8     247.4  (4m)
BayTrail-D J1900     2.0GHz  x4   8GB 14.04  x64  gcc-4.8      72.1
BayTrail-D J1900     2.0GHz  x4   8GB 14.04  x64  clang-3.5    53.2
Core i7-2720QM Sandy 2.2GHz  x4  16GB 14.04  x64  gcc-4.8      26.6
Core i7-2720QM Sandy 2.2GHz  x4  16GB 14.04  x64  clang-3.5    20.2

・time이 낮을수록 고속

Linux용 build는 ARM에서도 작동합니다. 4core BayTrail은 1분 남짓. Mobile용 i7에서 20초이니 속도차이는 2.6배 정도. Desktop PC라면 3배 이상 차이가 날 것이라 생각됩니다. i7과 ARM11과의 차이는 100배 이상.

아래는 Android NDK를 사용한 build 시간입니다. armeabi, armeab-v7a, mips, x86의 4종류에다가 OpenGL ES2/ES3의 2종류를 생성하므로 위에 적은 Linux build보다 몇배의 시간이 걸렸습니다.

flatlib3 AndroidNDK  clock  core  RAM  OS           arch   time sec
-------------------------------------------------------------------------
Core 2 Duo P7350     2.0GHz  x2   8GB  MacOSX 10.9   x64   482.1  (8m2s)
BayTrail-D J1900     2.0GHz  x4   8GB  Windows 7     x64   424.1  (7m4s)
BayTrail-D J1900     2.0GHz  x4   8GB  Ubuntu 14.04  x64   277.2  (4m37s)
Core i5-3210M Ivy    2.5GHz  x2   8GB  MacOSX 10.9   x64   219.0  (3m39s)
Core i7-2720QM Sandy 2.2GHz  x4  16GB  Windows 8.1   x64   157.7  (2m37s)
Core i7-3615QM Ivy   2.3GHz  x4  16GB  Windows 8.1   x64   146.5  (2m26s)
Core i7-2720QM Sandy 2.2GHz  x4  16GB  MacOSX 10.9   x64   142.7  (2m22s)
Core i7-3615QM Ivy   2.3GHz  x4  16GB  MacOSX 10.9   x64   114.1  (1m54s)
Core i7-2720QM Sandy 2.2GHz  x4  16GB  Ubuntu 14.04  x64   102.9  (1m42s)

・time이 낮을수록 고속
・Android NDK (r9d) gcc 4.8
・armeabi, armeabi-v7a, mips, x86

↑이쪽은 ARM에서는 돌릴 수 없는 대신 OS에 의존하지 않고 비교할 수 있다는 이점이 있습니다. 다만 OS 환경에 의한 차이가 예상 이상으로 커서 프로세서의 성능을 보려면 동일 OS 끼리 비교하는 것이 좋을 듯 합니다. Cygwin을 경유하지 않고 gcc를 사용하였습니다만, 그래도 Windows에서의 컴파일은 느렸습니다.

아래는 OSX target에서의 비교.

flatlib3 Mac OSX     clock  core  RAM   OS   arch compiler    time sec
-----------------------------------------------------------------------
Core 2 Duo P7350     2.0GHz  x2    8GB  10.9 x64  clang-3.4    69.0
Core i5-3210M Ivy    2.5GHz  x2    8GB  10.9 x64  clang-3.4    38.8
Core i7-2720QM Sandy 2.2GHz  x4   16GB  10.9 x64  clang-3.4    26.1
Core i7-3615QM Ivy   2.3GHz  x4   16GB  10.9 x64  clang-3.4    21.8

・time이 낮을수록 고속
・x86_64 만

i7-2720QM과 Core 2 Duo의 시간차이는 OSX 대상에서 2.64배, OSX에서의 Android build는 3.37배의 차이가 났습니다. Ubuntu에서의 Android build로 비교하면 i7-2720QM과 BayTrail은 2.2배. 따라서 Core 2 Duo보다도 BayTrail 4core가 빠르다고 할 수 있겠습니다.

아래는 Windows target의 비교입니다. Windows 용은 x86/x64 바이너리를 둘 다 생성하는 것도 있고, OS에 따라 코드의 양이 달라지기에 더 많은 시간이 걸립니다.

flatlib3 Windows     clock  core RAM   OS    arch  compiler    time sec
------------------------------------------------------------------------
BayTrail-D J1900     2.0GHz  x4   8GB  Win7   x64  VS2013TCP    402.1
Core i7-2720QM Sandy 2.2GHz  x4  16GB  Win8.1 x64  VS2013TCP    137.3
Core i7-3615QM Ivy   2.3GHz  x4  16GB  Win8.1 x64  VS2013TCP    113.4

・time이 낮을수록 고속
・x86, x64

↑이 데이터를 보면 2.9배의 차이가 났으며, 비율로 보면 Core 2 Duo와의 차이가 적어졌습니다.

마지막으로 데이터로서의 의미는 없지만 만일의 경우를 위한 iOS용 build입니다. 5종류 분의 Fat Binary를 생성하므로 시간이 걸립니다. OSX와 비교하면 거의 5배로 계산대로입니다.

flatlib3 iOS         clock  core  RAM   OS   arch compiler    time sec
---------------------------------------------------------------------------
Core 2 Duo P7350     2.0GHz  x2    8GB  10.9 x64  clang-3.4   350.6  (5m51s)
Core i5-3210M Ivy    2.5GHz  x2    8GB  10.9 x64  clang-3.4   189.1  (3m9s)
Core i7-2720QM Sandy 2.2GHz  x4   16GB  10.9 x64  clang-3.4   128.5  (2m8s)
Core i7-3615QM Ivy   2.3GHz  x4   16GB  10.9 x64  clang-3.4   107.6  (1m48s)

・time이 낮을수록 고속
・armv7, armv7s, arm64, x86, x86_64

Desktop PC로 쓰기에는 아무래도 답답함이 느껴지지지만, CPU core수가 많아서 나름대로 퍼포먼스는 나온다는 인상입니다.

8inch 클래스의 경령 Tablet PC로 휴대하면서, 컴파일 시간이 노트북의 몇배 범위내라면 충분히 쓸만하다고 느꼈습니다. 다만 실제 Tablet에서는 동작 클럭도 탑재 RAM 용량도 크게 줄었으므로 그 점을 검증할 필요가 있을 것 같습니다.

관련글

+ Recent posts