D3D Shader/OpenGL」カテゴリーアーカイブ

AMD CPU Ryzen とコンパイル時間の比較

比較的安価ながら多コアの 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 等並列化されていないタスクがあるので、並列度が上がれば上がるほど全体のビルド時間にシングルタスク部分の割合が増えていくことになります。(アムダールの法則) シングルタスクの割合が小さければもっと差が開いていたものと思われます。

Smartwatch Android Wear の CPU/GPU まとめ, x86 搭載スマートウオッチ

現時点で 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 が登場したことで、汎用 API のカバー範囲が広がっています。Xbox One の Direct3D 12 はもちろんですが、Khronos のサイトでは Vulkan の Conformant Products に新しいゲーム機の名前が載っているようです。

Khronos: Conformant Products

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

Apple Watch S2 の CPU と浮動小数点演算

Apple Watch Series 2 で vfpbenchmark を走らせてみました。
結果から Apple Watch S1 と同じ Cortex-A7 の 0.5GHz と思われます。

Watch SoC CPU ST-SP ST-DP MT-SP MT-DP
初代 Apple S1 Cortex-A7 0.5GHz x1 0.850 0.416 0.849 0.416
Series 2 Apple S2 Cortex-A7 0.5GHz x2 0.986 0.483 1.807 0.879

 ・単位は GFLOPS, 値が大きい方が高速。

初代 Apple Watch の S1 と違い、新型 Apple Watch の S1P/S2 は Dual Core です。詳細は下記よりどうぞ。結果を追加しています。

VFP Benchmark Log 計測結果まとめ

GPU については未調査です。SpriteKit 経由ですが、Watch OS 3.0 から OpenGL ES 2.0 相当の Shader (GLSL) が使えるようになっています。

関連エントリ
Android 端末のアップデート (1) Android Wear バージョン一覧と新しいアーキテクチャ
Apple Watch の CPU の種類と浮動小数点演算速度

vulkaninfo 結果の比較表 その2 (Desktop GPU/Mobile GPU)

GPU 毎の Extension の結果も追加しました。

Vulkan Device Features (GPU毎の比較表)

上のページで一番下の表は Instance/Device それぞれの対応 Extension の取得結果です。初期化時に参考になるかと思います。

関連エントリ
vulkaninfo 結果の比較表 (Desktop GPU/Mobile GPU)
Android の Vulkaninfo 結果
Android で Vulkan Sample を走らせるまでの手順
Linux で Vulkan を使う (GeForce, RADEON, Intel)
低レベル API 対応 GPU まとめ (D3D12,Vulkan,Metal)