他の CPU の結果も追加してみました。

CPU Clock Core/Thread RAM Storage 1回目 2回目
(1) Ryzen 7 1800X (Zen) 3.6GHz 8 / 16 32GB SSD 20分 19分
(2) Core i7-6700K (Skylake) 4.0GHz 4 / 8 32GB SSD 27分 26分
(3) Core i7-4790K (Haswell) 4.0GHz 4 / 8 16GB HDD 39分 32分
(4) A10-7870K (Steamroller) 3.9GHz 4 / 4 16GB SSD 74分 82分
(5) Core i5-3210M (IvyBridge) 2.5GHz 2 / 4 16GB SSD 86分 85分
(6) Athlon 5350 (Jaguar) 2.0GHz 4 / 4 16GB HDD 204分 168分
(7) Celeron N3150 (Airmont) 1.6GHz 4 / 4 16GB HDD 236分 184分

すべて Windows 10 x64。GitHub 版 UE4 4.15.2 のビルド時間の比較です。Development Editor 指定で Unity Build が有効な状態です。二回とも Clean 後に Build しています。2回目はある程度キャッシュに乗った状態を想定しています。1回目、2回目とも数値が小さい方が高速です。

HDD では 1回目と 2回目の差が大きく開いており、(7) では 52分もの差があります。SSD は 1回目と 2回目の差がほぼありません。初回から RAM 上にキャッシュされた状態とほぼ同等のパフォーマンスが出ていることになります。


関連エントリ
AMD CPU Ryzen とコンパイル時間の比較



HTC Vive の Vive Tracker 購入しました。

null

Controller は HMD と Bluetooth で通信しますが、認識出来るのは最大 2個までです。3個目以上は有線で接続する必要がありました。

Vive Tracker には USB ドングルが付属しており、PC と直接無線でも通信できるようになっています。ペアリング操作は Vive Controller と全く一緒です。そのせいか、先に Controller の電源が入っていないと HMD 側にペアリングされてしまうことがあります。

・先に Vive Controller の電源を 2個とも入れておく (Tracker が付属のドングルと対応付けられるように)
・複数の Tracker をペアリングする時は、他の Tracker の USB ドングルを外しておく

Controller と違い形状が安定しており固定しやすくなっています。Base Station でよく使う三脚ネジがそのまま使えます。置いたときに軸が水平になるのも Controller との違いで、位置を合わせやすくなりました。とりあえずクロマキー合成の時の位置検出に活用しています。


関連エントリ
VR 対応 GPU の値段と Vive Controller 置き場
HTC Vive (VR ヘッドマウントディスプレイ) の接続
HTC Vive のセットアップと PC スペック、遅い PC で動くかどうか


比較的安価ながら多コアの CPU、AMD Ryzen はコンパイルの長い長い待ち時間を減らしてくれるかもしれません。Ryzen PC を手に入れたので実際に比較してみました。Skylake Core i7-6700K で 27分かかる UE4 のビルドが Ryzen 1800X ではおよそ 20分まで短縮しています。

CPU Clock Core/Thread RAM Storage 1回目 2回目
(1) Core i7-4790K (Haswell) 4.0GHz 4 / 8 16GB HDD 39分 32分
(2) Core i7-6700K (Skylake) 4.0GHz 4 / 8 32GB SSD 27分 26分
(3) Ryzen 7 1800X 3.6GHz 8 / 16 32GB SSD 20分 19分

上の表は UE4 4.16.0 4.15.2 GitHub 版のビルド時間の比較です。Config は Development Editor。ビルドは Clean しながら 2回連続で行いました。1回目、2回目は実際にかかったコンパイル時間を意味しています。


(1) の Haswell は RAM 容量が半分かつ HDD なのでかなりハンデがあります。純粋な CPU の能力ではなく環境で差が生じているので、比較は参考程度にお願いします。2回目はある程度キャッシュに乗った状態なので差が縮まっていることがわかるかと思います。

(3) Ryzen はクロックが低いものの (2) Skylake 比で 7分ほど短縮できました。多 core 化の恩恵はプログラマにとっても非常に大きいようです。よりパワフルな CPU が入手しやすくなったのはとても喜ばしいことです。

CPU core 数が倍になっていますがビルド時間は必ずしも半分にはなっていません。UnrealBuildSystem はスレッド化されていますが完全な同期型となっています。並列実行可能なソースコンパイルがすべて完了してからシングルスレッドでリンクを行っているようです。

他にも UnrealHeaderTool 等並列化されていないタスクがあるので、並列度が上がれば上がるほど全体のビルド時間にシングルタスク部分の割合が増えていくことになります。(アムダールの法則) シングルタスクの割合が小さければもっと差が開いていたものと思われます。


現時点で Android Wear に使われている SoC 一覧です。

SoC CPU core GPU GL Dev
TI OMAP 3630 Cortex-A8 1.0GHz 1 PowerVR SGX530 ES 2.0 x1
MediaTek MT2601 Cortex-A7 1.2GHz 2 Mali-400 ES 2.0 x1
Snapdragon 400 Cortex-A7 1.2GHz 1-4 Adreno 305 ES 3.0
Snapdragon Wear 2100 Cortex-A7 1.2GHz 1-4 Adreno 304 ES 3.0
Intel Atom T1000 Silvermont 1.0GHz 2 PowerVR G6400 ES 3.1 x2

・Dev = 採用機種の数 (2016/12/29現在)

スマートウオッチの場合、記載されているスペックが必ずしも実際のパフォーマンスと一致していないので注意が必要です。例えば Snarpdragon 400 は Cortex-A7 の Quad core 搭載ですが、Android Wear の場合はそのうち 1~2 core しかアクティブになっていないようです。パフォーマンス面でも実質 1 ~ 2 core CPU と同等になります。

同じように動作クロックでも、仕様には 1.2GHz と表記されていても実際は 0.8GHz で頭打ちになっているものがありました。同じ SoC でも機種によってかなり性能にばらつきがあります。

下記は分かる範囲で実質スペックをまとめたものです。

SoC CPU core Device
TI OMAP 3630 Cortex-A8 1.0GHz 1 Moto 360 Gen1
Snapdragon 400 Cortex-A7 0.8GHz 1 LG G Watch W100
Snapdragon 400 Cortex-A7 1.2GHz 2 SmartWatch SWR50
Intel Atom T1000 Silvermont 0.5GHz 2 Fossil Q Founder

採用されている SoC の種類としては、Snapdragon 400/Wear 2100 が最も多くそれ以外は少数派となっています。Snapdragon が実質リファレンス相当であり反応速度も良好です。


TI OMAP 3630 は Android 2.x 時代の非常に古い SoC です。今となっていは描画も遅く性能面では見劣りしてしまいます。ですが採用している Moto 360 Gen1 は非常に人気があったので、アプリの互換性を考える場合は無視することができません。

Moto 360 の後継機は Snapdraogn 400 になりました。Snapdragon 400 はつい最近まで低価格帯の Smartphone に使われていたもので、OMAP 3630 と比べると性能差にはだいぶ開きがあります。


MT2601 を採用しているのは今のところ POLAR M600 だけです。こちらは新しい SoC なので今後採用例が増えてくるものと思われます。


Intel Atom を搭載しているのは TAG Heuer Connected と Fossil Q 初期型 Founder の 2機種になります。Fossil Q の後継機である Wander, Marshal は Snapdragon Wear 2100 になりました。

Intel はアーキテクチャが異なります。Smartphone や Tablet の場合 Atom 搭載機種には ARMv7A を x86 に変換する Binary Translator が乗っており、armeabi-v7a のバイナリがそのまま動くようになっています。Android Wear では、搭載メモリが少ないせいか Binary Translator が乗っていない可能性があります。対応 abi が x86 だけなので、NDK を使う場合は x86 の binary がおそらく必須となるでしょう。

なお TAG Heuer Connected は RAM が 1GB と倍増しており、かつ CPU も 1.6GHz と高性能がものが使われているので、こちらは Binary Translator に対応しているかもしれません。

Atom 機種の Smartwatch は SoC の詳細が伏せられていますが、GPU が PowerVR G6400 であることからおそらく Z34xx 相当の低クロック版に相当するものと思われます。性能が抑えてあるとは言え、PC 相当の x86 プロセッサが腕時計の中に収まる時代になっています。

下記ページも更新しています。

Smart Watch Spec 一覧


関連エントリ
Apple Watch S2 の CPU と浮動小数点演算
Android Wear Sony SmartWatch 3 SWR50 は速い
Android x86 Binary Translator を試してみる
Android Wear LG G Watch (LG-W100) の速度(実測)


ゲーム専用機は互換性があまり重要ではなかったので、独自の API が比較的多く用いられています。ハードウエアが単一であることと、限界まで性能を引き出す方が重要だったからです。

低レベル API が登場したことで、汎用 API のカバー範囲が広がっています。Xbox One の Direct3D 12 はもちろんですが、Khronos のサイトでは Vulkan の Conformant Products に新しいゲーム機の名前が載っているようです。

Khronos: Conformant Products

Platform に制約のある D3D12 や Metal と違い、枠を超えて Vulkan が使われるようになってくるのかもしれません。


| 次のページ(日付が古い方向)>>