日別アーカイブ: 2014年5月8日

コンパイル時間の比較 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倍。
よって Coe 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 として携帯しつつ、コンパイル時間が
ノート PC の数倍の範囲に収まるなら十分使えそうだと感じました。
ただし実際の Tablet では動作クロックも搭載 RAM 容量も大きく減るので
その点は検証が必要かと思います。

関連エントリ
Atom Bay Trail の浮動小数点演算能力