Archives

November 2015 の記事

Celeron 2955U は低価格帯 PC に使われていた CPU (Haswell 世代) です。2955U を搭載した PC を入手したので flatlib3 のコンパイル時間を比較してみました。(Debug+Release)

CPU core clock C/T Compiler RAM コンパイル時間
Celeron 2955U Haswell 1.4GHz 2C2T Clang-3.4 4GB 93
Athlon 5350 Jaguar 2.0GHz 4C4T Clang-3.6 8GB 88
Celeron N3150 Airmont 1.6GHz 4C4T Clang-3.6 16GB 108
Celeron J1900 Silvermont 2.0GHz 4C4T Clang-3.4 8GB 79
参考用 core clock C/T Compiler RAM コンパイル時間
Core i7-4790K Haswell 4.0GHz 4C8T Clang-3.6 16GB 15
Atom Z540 Bonnell 1.8GHz 1C2T Clang-3.4 2GB 426
Raspberry Pi2 Cortex-A7 0.9GHz 4C4T Clang-3.5 1GB 402
Raspberry Pi ARM1176 0.7GHz 1C1T Clang-3.5 0.5GB 1893
Netwalker Cortex-A8 0.8GHz 1C1T GCC-4.7 0.5GB 1902

・コンパイル時間の単位は秒、値が小さい方が高速

RAM 容量やストレージの速度など動作環境が一致していないのであまり厳密ではありません。特に Raspberry Pi は SD カードの速度に依存するので参考程度にお願いします。

core 数が半分でクロックも低いながら、2955U は Atom/Jaguar 系の 4 core/2GHz とほぼ同程度のコンパイル時間となっています。さまざまな機能が無効化されていますが性能は高く、core 単体では Atom/Jaguar に対して 2倍以上速いことになります。
J1900 よりも新しい N3150 の方が遅いのは TDP も低く Clock が下がっているため。GPU 性能では 4EU しかない J1900 が一番不利になっています。

CPU GPU sp clock fop FLOPS
Celeron 2955U HD Graphics Gen7.5 10EU 200-1000MHz 160 160.0
Celeron N3150 HD Graphics Gen8 12EU 320-640MHz 192 122.9
Celeron J1900 HD Graphics Gen7 4EU 688-854MHz 64 54.7
Athlon 5350 RADEON R3 (8400) 128sp 600MHz 256 153.6


関連エントリ
Raspberry Pi 2 で速くなったコンパイル時間の比較
BayTrail vs Kabini (Celeron J1900 vs Athlon 5350)
コンパイル時間の比較 BayTrail
Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)


手持ち端末のアップデート続きです。

● ASUS MeMO Pad 7 ME176 (2014)

ME176 は BayTrail を搭載した Android Tablet です。Atom Z35** ではなく Windows Tablet に使われているものと同じ Z37** が使われています。そのため GPU も PowerVR ではなく Intel HD Graphics Gen7 になっています。

Android 5.0 への更新で OpenGL ES 3.1 が使えるようになりました。現時点で Android の OpenGL ES 3.1 対応を確認した GPU をまとめると下記の通り。

GPU API SoC
NVIDIA Tegra K1 OpenGL ES 3.1 AEP Tegra K1
Adreno 420/430 OpenGL ES 3.1 AEP Snapdargon 810/805
ARM Mail-T604 OpenGL ES 3.1 Exynos 5 Dual (5250)
ARM Mail-T760 OpenGL ES 3.1 Exynos 7 Octa (7420)
PowerVR G6430 Rogue OpenGL ES 3.1 BayTrail-T Z3560
PowerVR G6200 Rogue OpenGL ES 3.1 MediaTek MT8135
PowerVR GX6250 Series6XT OpenGL ES 3.1 MediaTek MT8173C
Intel HD Graphics Gen7 OpenGL ES 3.1 BayTrail-T Z3745

同じ Atom でも Z35** の PowerVR G6430 とは異なり、Intel HD Graphics Gen7 は Windows 上で Direct3D11 に対応しています。Android でも AEP には非対応なものの独自の Extension により GS や Tessellator が使えるようになっています。AEP でないのは ASTC に対応していないことが関係しているのかもしれません。

逆に Mali-T760/PVR GX6250 は GS/Tessellator がない代わりに ASTC 対応です。

GPU API GS/TS ASTC
NVIDIA Tegra K1 OpenGL ES 3.1 AEP Y Y(L)
Adreno 420/430 OpenGL ES 3.1 AEP Y Y(L)
ARM Mail-T604 OpenGL ES 3.1 N N
ARM Mail-T760 OpenGL ES 3.1 N Y(H)
PowerVR G6430 Rogue OpenGL ES 3.1 N N
PowerVR G6200 Rogue OpenGL ES 3.1 N N
PowerVR GX6250 Series6XT OpenGL ES 3.1 N Y(L)
Intel HD Graphics Gen7 OpenGL ES 3.1 Y N

MeMO Pad 7 ME176 の OpenGL ES 3.1 における Extension 等の詳細は下記ページに追加しました。Android 5.0 でも 64bit には非対応のままでした。

CPU/GPU OpenGL ES Extension (Mobile GPU)

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

OpenGL / OpenGL ES 2.0 / OpenGL ES 3.2

OpenGLES 3.0 対応で 3.1 非対応な GPU は今のところ Adreno 300 だけとなっています。また Intel HD Graphics も Gen8 以降は AEP 対応であることが判明しています。


● ZOTAC Tegra Note 7 (2013)

更新によって Android 5.1 になりました。SHIELD 同様 NVIDIA 自身が販売しているデバイスなので、比較的こまめに新しい OS がリリースされています。4.2 から 5.1 まできちんとサポートしてきたのは好印象です。ただし Tegra 4 なので OS は新しくても OpenGL ES 2.0 のままです。


● Amazon Fire HD 6 (2014)

Android 5.1 (API Level 22) 相当の Fire OS 5 がリリースされています。性能は非力ですが OpenGL ES 3.1 対応です。


● Kindle Fire HDX 7 (2013)

Snapdragon 800 搭載で、今回取り上げた 4台の中では最も性能が高いハードウエアとなっています。しかしながら OS の更新は Fire OS 4.5 (Android 4.4 API Level 19 相当) までで Fire OS 5 には非対応でした。Kindle/Fire 系はデイバスの種類が限られているものの最新 OS の提供打ち切りがかなり早い印象です。特に Adreno 420 搭載なのに 3.1 AEP が使えない Fire HDX 8.9 (2014) は少々残念です。
iOS ではスペック上の問題さえなければ新しい OS が提供されているので、Fire も OS を継続してサポートしていればプラットフォームとしてもう少し開発しやすかったように思います。

Device FireOS Android API SoC GPU
Fire TV Stick 2015 5.0 5.1 22 Broadcomm 28155 VideoCore IV
Fire TV 2015 5.0 5.1 22 MT8173 PowerVR GX6250
Fire 2015 5.0 5.1 22 MT8127 Mai-450
Fire HD 8/10 2015 5.0 5.1 22 MT3135 PowerVR G6200
Fire HD 6/7 2014 5.0 5.1 22 MT8135 PowerVR G6200
Fire HDX 8.9 2014 4.5 4.4 19 Snapdargon 805 Adreno 420
Fire HDX 7/8.9 2013 4.5 4.4 19 Snapdargon 800 Adreno 330
Fire HD 7 2013 4.5 4.4 19 TI OMAP4470 PowerVR SGX544
Fire HD 8.9 2012 4.0 4.0 15 TI OMAP4470 PowerVR SGX544
Fire HD 7 2012 4.0 4.0 15 TI OMAP4460 PowerVR SGX540
Fire 2012 4.0 4.0 15 TI OMAP4430 PowerVR SGX540

Amazon: Device and Feature Specifications


関連エントリ
Android 端末のアップデート (1) Android Wear バージョン一覧と新しいアーキテクチャ
Desktop GPU と OpenGL ES 3.1 API
Android 5.x OpenGL ES 3.1 と対応 GPU
(Kindle) Fire HD 6 は OpenGL ES 3.0 対応で非対称 4 core CPU
ASUS MeMO Pad 7 ME176 で OpenGL ES 3.0 が復活
Android の新しい GPU BayTrail-T Intel HD Graphics


少々時間が空いてしまいましたが、手持ち端末のアップデート状況などをまとめてみます。

● Android Wear と Version 一覧

Android Wear は何度か UI の大きな変更が行われています。当初は Android 自体のバージョンと連動していましたが、5.0 以降は Android Wear のみのバージョンが併記されるようになりました。下記はわかっている範囲でのこれまでの Android Wear のバージョン一覧です。

Version API 新機能(一部)
Android Wear 4.4W 20
Android Wear 4.4W.2 20 Offline Music Player
Android 5.0 + Android Wear 1.0 21 Custom Watch Face
Android 5.1 + Android Wear 1.1 22 AppMenu, Wi-Fi
Android 5.1 + Android Wear 1.3 22 Interactive Watch face, iOS

2015年11月段階での最新版は Android 5.1 + Adnroid Wear 1.3 になります。Interactive Watch Face に対応したため再び Home Menu の UI が変更されています。Watch Face のタッチだけではメニュー画面にならず、画面の右端からスワイプで呼び出すようになっています。


● 複数デバイス対応とデバッグ

どのバージョンで対応したのか不明ですが、一つの端末に複数の Android Wear Device をペアリングできるようになりました。

例えば同じ Nexus 5 に LG G Watch と Moto 360 の 2台の Android Wear 端末をぶら下げることが可能。通知は両方に届きますし、片方を Wi-Fi 接続に設定しておけば Nexus 5 本体の近くになくても通知を受け取ることができます。便利かどうかはわかりませんが、持ち歩くのは腕に1台、デスクサイドに固定で 1台といった使い分けもできるかもしれません。

Android Wear の通信(同期)は基本的に 2つの仕組みが用いられています。

・メッセージの送受信
・アプリごとの共有ストレージの同期

初期のマニュアルに従った作りでは列挙されたデバイスを区別していないので、すべての端末に同じように同期が行われます。たとえば 3D imclock の場合、スマートフォン側のコンパニオンアプリによる設定が両方の端末に同時に反映されることが確認できます。

複数のデイバスに対応したことでアプリ開発中の動作確認が少々楽になりました。以前はペアリングするために Android Wear 端末と同じ数だけスマートフォンやタブレットが必要でした。なお複数台接続した場合、Bluetooth 経由のデバッグは同時には行えずどちらか片方だけ選ぶ形になるようです。


● 3番目のアーキテクチャ

Android Wear デバイスに新しい SoC 搭載機種が登場しています。これまで Moto 360 (初代) 以外の Android Wear 端末はすべて Snapdragon 400 が用いられていました。CPU Clock や有効な CPU core の個数に違いはあるものの中身は同一です。

Moto 360 (初代) だけは Motorola MOTOACTV の流れを汲む設計となっており TI OMAP3630 が使われています。OMAP3 は世代が古いため性能上の問題が生じる場合があり、アプリケーションの互換性のためにこれまで何度か苦労させられてきました。

最近発表された TAG Heuer Connected は Intel のプロセッサが内蔵されているとのこと。詳細は不明ですが、OMAP3, Snapdragon 400 に続く Android Wear デバイス 3番目のアーキテクチャになります。ARMv7A でも動作しますが、バッテリー効率を考えると NDK を使う場合できるだけ x86 にも対応しておくことが望ましいと思われます。


関連ページ
Smart Watch Spec 一覧
Android Wear OS 一覧

関連エントリ
Android Wear 5.1.1 3D-imclock の更新と Moto 360
Android Wear 5.1.1 は Wi-Fi による同期に対応、Apple Watch との違い
Android Wear 5.0 Watch Face API 対応と互換性


新しい Apple TV は Apple A8 搭載で Android TV や Fire TV 同様アプリケーション走らせることができるようになっています。vfpbench を試してみました。clock 数から計算すると Apple TV の CPU は 1.4GHz だと思われます。

ARCH: ARMv8A
FPU: AArch64 NEON
SingleT SP max: 22.197 GFLOPS
SingleT DP max: 11.105 GFLOPS
MultiT  SP max: 44.331 GFLOPS
MultiT  DP max: 22.084 GFLOPS
CPU core: 2

詳細は下記に追加しています。

VFP Benchmark Log

同等の TV 用プレイヤーデバイスとの比較。

device CPU SP DP SP-MT DP-MT
Apple TV Cyclone 1.4GHz 2 22.2 11.1 44.3 22.1
Fire TV 2015 Cortex-A72/A53 2.0GHz 2+2 15.9 7.9 31.8 15.9
Nexus Player ilvermont 1.8GHz 4 8.7 2.7 33.9 10.7
(SP/DP/SP-MT/DP-MT の単位は GFLOPS, 数値が大きい方が高速)

GPU は下記の通り

device SoC GPU API ASTC
Apple TV Apple A8 PowerVR GX6450 ES3.0/Metal Y
Fire TV 2015 MT8173C PowerVR GX6250 ES3.1 Y
Nexus Player Atom Z3560 PowerVR G6430 ES3.1 N

SoC/CPU core が異なるもののなぜか GPU はみな PowerVR です。動作クロックは不明ですが型番上は Apple TV の GPU が一番性能が高いことになります。

なお Android TV は Nexus Player 以外にも存在しているため性能にはばらつきがあります。例えば NVIDIA SHILED も Android TV です。

下記ページも更新しました。

Video Game Console スペック一覧

いずれも GameController に対応しており Game Console のような使い方も可能となっています。

Nexus Player, Fire TV は純正の Wireless Game Contoller が用意されていますし、Android に対応した Game Pad を USB 接続することも可能です。特に Fire TV はフルサイズの USB コネクタなので変換アダプタも不要。Apple TV は iOS 仕様の Bluetooth ゲームパッドを使うことができます。

device RAM ROM LAN USB SD 電源
Apple TV 2GB 32/64GB Y Type-C -- 内蔵
Fire TV 2015 2GB 8GB Y USB2.0 microSDXC 専用ACアダプタ
Nexus Player 1GB 8GB N microUSB -- 専用ACアダプタ


apple_tv01.jpg

↑左上から AppleTV, Fire TV, Nexus Player

Apple TV は厚みがある代わりに AC アダプタが不要です。

apple_tv02.jpg

↑付属リモコン 左から Nexus Player, Fire TV, Apple TV

充電式で乾電池が不要な分だけ Apple TV のリモコンは薄型です。Nexus Player, Fire TV はどちらもリング状の方向キーでセンターが決定、左下に Back キー。Apple TV はカーソルの代わりにタッチパッドがついており押し込みで決定。MENU がバックキー相当です。


関連エントリ
ARM Cortex-A72 の浮動小数点演算速度 (Amazon Fire TV)
Amazon Fire TV と OpenGL ES 3.1, TV Stick の OS
Nexus Player を GamePad&Mouse で使う、他
Android 5.0 Nexus Player x86 と対応 ABI