※本記事掲載のAntutuベンチマークはVer.7のものであり、現在ダウンロードできるVer.8よりも低めのスコアになっているらしい

Androidと言えば、スマートフォンの搭載OSという印象が強い。しかし、AndroidそのものはLinuxをベースとしており、スマートフォンに限らず様々なハードウェアで動作する。

一般的なパソコンのほとんどが採用しているx86アーキテクチャに対応したAndroidはAndroid-x86と呼ばれる。このAndroid-x86は開発に未熟な点があり使いにくい部分もあるが、ほとんどのアプリがスマートフォンと同様に動くため、アイデア次第では面白い活用が可能できる。


もっとも需要のある使い方としては、古くてスペックが若干低いパソコンにAndroid-x86を入れるという活用法がある。スマートフォンを主なプラットフォームとしたAndroidは要求スペックが低めだからだ。

ただし、Android-x86はユーザーによるデバイスドライバの導入がほぼ不可能なため、どんなパソコンでも搭載デバイスを活用しきれるとは限らない。廉価なノートPCだと、タッチスクリーンやWifiなどの内部接続に一般的でないインターフェイス(I2CやSDIO)を使っており、それらが動作しない可能性が高い。


それに対してこの記事では真逆の方向、ゲーミングレベルのスペック高めのPCでAndroid-x86をオーバーキルする場合に発生する問題について確認できた注意点を述べる。



●Android-x86の種類と特徴 ※実機での起動ができるものに限る

・Remix OS(開発終了)

今となっては古いので省略


・本家Android-x86 ※現状最大のパフォーマンスが出る

長所:グラフィックサポートが進んでる(Antutu一発目のテストが表示される)

短所:一部ゲームが動作しない

CPU8コア制限

Nvidia製GPU動作不良

スクリーンショットが撮れない(Vukan有効時のみ発生)


・Prime OS

長所:完全なPC風UI

短所:CPU8コア制限

Nvidia製GPU動作不良


・Phoenix OS

長所:完全なPC風UI

短所:寄付しないと厄介な広告表示が出る

CPU8コア制限

Nvidia製GPU動作不良


・Bliss OS

長所:Androidバージョンが新しい(単体起動する中で唯一のPie)
短所:CPU8コア制限

Nvidia製GPU動作不良


・FydeOS(ChromeOSベースだがAndroidアプリが使える)

長所:CPU9コア以上対応

Androidバージョンが新しい(既にPie)

マルチモニター対応

短所:CPU性能が出にくい

dGPU非対応



●GPUについて

上の一覧を見てすぐ分かる通り、GTX1070で試した範囲ではNvidiaのGPUはイマイチうまく動作しない。完全に動かないわけではないが、性能が全く出なかったりフリーズが頻発したりする。GTX900シリーズ以前でどうなるかは不明。

逆にAMDのGPUは、RX470で試した範囲では相性がよく、正常に動作していると思われる。



●CPUについて

単体で起動するAndroid-x86は、おそらくカーネルが原因と考えられるが、CPUコア数(ハイパースレッディング搭載の場合はスレッド数)を8つまでしか認識しない。
Screenshot_20190304-231144

PrimeOSの例ではこんな風に8スレッドまでが認識されている。

2世代前のPCなら、スペックの良い機種でも4コア8スレッドだったので支障は無いが、近年は6コア12スレッド以上のCPUも一般向けに普及し始めてきたため、8コアしか認識しないのは現実的な問題である。

なお、ARMベースのAndroid端末では既に10コア以上を搭載したものがあり、AndroidOSが8コアの制約を発生させるわけではない。

カーネルソースの/arch/x86/configsにあるconfigファイルに、NR_CPUS=8という記述があることが原因の一つと推測されるが、この記述が見当たらないカーネルを採用していると思われるものも8コア制限がかかっているため実態は謎である。

他方、ChromeOSはこの制限が存在せず、その上で動くAndroidサブシステムからも9つ以上のコアを認識することができる。しかし、ChromeOSを通したAndroidのベンチマークでは、12スレッド認識されているにもかかわらず、8スレッド認識のAndroid-x86よりも劣ったスコアが示されることがあった。また、ChromeOSでは、NvidiaとAMDのGPUが共に正常動作できなかったので、せっかくCPUがフル活用できても総合的には性能を期待できない。



●PC性能を最大まで引き出せるOSについて

Androidの代表的なベンチマークであるAntutuの場合、端末がサポートしているグラフィックの機能によってベンチマーク内容の1つ(精錬所:UFO墜落現場の3DCGが描画されるテスト)が実行されたりスキップされたりする。もちろん実行されない端末ではベンチマークスコアがその分まるごと低くなる。

そしてこの精錬所がちゃんと描画されるのが現状では本家Android-x86しかないようだ。

こういうわけで本家が最もグラフィックの最適化が進んでいると判断される。

また、CPUについては、現状ではChromeOSを介するもの以外は全て8コア制限があり、差がつくものではない。

故に、グラフィックスコアが最も出る本家Andoroid-x86が最も性能が出るということになる。(ただし本家はゲームが起動しなかったり、キーボード操作がしにくかったりする)



●ベンチマークスコアなど
動作環境
Motherboard:ASRock Z370 Extreme4
CPU:i7-8086K 5.4GHz@1~5コアアクティブ 5.3GHz@6コアアクティブ 5.1GHz@Cache
RAM:DDR4-4133 8GBx2
SSD:SAMSUNG 960 EVO 250GB(Windowsとデュアルブート)
GPU:ASUS GTX1070 Dual or Sapphire RX470 Nitro+

Antutu Android-x86(本家) GTX1070 Vulkanサポート無し
gtx1070antutuAndroidx86

総合:531295
CPU:269963(ユーザーの99%より高速)
CPU演算処理:64368
CPU一般使用:33671
CPUマルチコア:171906
GPU:119015(ユーザーの84%より高速)
3D[Marooned]:16878
3D[Coastline]:44273
3D[Refinery]:57864
UX:114369(ユーザーの99%より高速)
データセキュリティ:21185
データ処理:41872
画像処理:26474
ユーザエクスペリエンス:24838
MEM:27912(異常値、fsyncの問題?)
RAM:8857
ROM:19055(異常値)
※GTX1070が普通のハイエンドスマホレベルの性能しか発揮されていない
また、GTX1070はVulkanを有効にすると表示が完全に乱れてしまい実質使えない


Antutu Android-x86(本家) RX470 Vulkanサポート有り
※Vulkan有効時はスクリーンショット保存ができない
IMG_20190320_153930

総合:1520497
CPU:270745(ユーザーの99%より高速)
CPU演算処理:64440
CPU一般使用:33219
CPUマルチコア:173086
GPU:1049971(ユーザーの99%より高速)
3D[Marooned]:175149
3D[Coastline]:384035
3D[Refinery]:490787
UX:173001(異常値)
データセキュリティ:21339
データ処理:43585
画像処理:82843(異常値)
ユーザエクスペリエンス:25234
MEM:26780(異常値、fsyncの問題?)
RAM:8886
ROM:17894(異常値)
※GTX1070の場合に比べてGPUスコアが9倍弱になっている。
それ以外には画像処理が3倍以上になっている。
AntutuではGPUスコアが占める比重が大きいため、総合スコアは3倍に。
スマホ用のベンチマークにPCで殴り込んでるため当然ながら、総合スコアは驚異の150万オーバー。
GPUが支配的なのでVega7とか使ったら300万とか出るんだろうか?
OpenGLだとグラフィック処理がCPU1コアの処理で頭打ちしている可能性もあるが・・・

GeekBench Android-x86(本家) RX470 Vulkanサポート有り
FJIMG_20190304_220543
Single-Core:7517
Mutli-Core:26129
※CPUは合計8スレッドしか機能していない(はず)


GeekBench FedyOS UHD630
Screenshot 2019-03-17 at 12.00.00 - Display 1
Single-Core:7329
Mutli-Core:22154
※CPUは合計12スレッド全て機能している(はず)
この通り、12スレッドすべて認識しているFydeOSで、8スレッドまでのAndroid-x86(本家)よりも低いスコアとなった。


CPU Benchmark Android-x86(本家, RX470) vs FydeOS(UHD630)
Screenshot 2019-03-17 at 13.21.21 - Display 1s
※To Be Filled By O.E.M. = Android-x86(本家)
このベンチマークではFydeOSのほうが僅かに高速という結果となった。
なお順位はこのベンチマークを実行した世界中の端末のデータ。つまり現時点で世界1位

A1 SD Benchmark RAM Android-x86(本家, RX470) vs FydeOS(UHD630)
Screenshot 2019-03-17 at 12.47.14 - Display 1s

こちらもTo Be Filled By O.E.M. = Android-x86(本家)
Android-x86(本家):42,294.86MB/s
FydeOS:40,999.41MB/s
メインメモリのアクセスは本家のほうが0.5割ほど速い。
FedyOSでは内蔵GPUがメインメモリを共有している影響だろうか。
これもデバイス全体でのランキングなので現時点で世界1位


●スマホとの比較など

Android-x86でRX470を使った場合のAntutuスコアを簡易表記するとこんな感じ。
総合:152万
CPU:27万
GPU:105万
UX:17万
MEM:27万

現時点でスマホの最高峰であるSnapdragon 855搭載端末のスコアはこんな感じ。
ソース https://garumax.com/galaxy-s10-plus-antutu-benchmark
総合:36万
CPU:12万
GPU:16万
UX:7.3万
MEM:1.2万
Antutuスコアがn倍→性能もn倍なのかどうかは不明だが、
少なくともスマホがPCに一番追いついているのはCPU性能ということが分かる。
(物理コア数では4コアvs8コアだが)
逆にGPUはかなり劣り、メモリ・ストレージ速度が最も引き離されている。


参考までに手持ちのローエンドスマホをいろいろ測定

手持ちの2018年製格安スマホのXiaomi Redmi 6
総合:7.5万
CPU:3.7万
GPU:1.2万
UX:1.9万
MEM:0.68万

Android Oreoを入れて延命した手持ちのNexus5(2013年製) 
総合:4.3万
CPU:2.5万
GPU:0.54万
UX:1.0万
MEM:0.25万

CPUを2.9GHzにOCして酷使した手持ちのNexus5(2013年製)
総合:6.0万
CPU:3.3万
GPU:0.55万
UX:1.7万
MEM:0.41万

Android Pieを入れて延命した手持ちのGalaxy J(2013年製) 
総合:6.1万
CPU:3.3万
GPU:0.63万
UX:1.7万
MEM:0.43万

CPUを2.8GHzにOCして酷使した手持ちのGalaxy S5(2014年製)
総合:6.1万
CPU:3.2万
GPU:0.65万
UX:1.8万
MEM:0.48万


●まとめ
Andoroidを(高性能な)PCで動かす場合に気をつけるべきことは主に2点
・NvidiaのGPUでは不具合が多い
・(現時点で)CPUは8スレッドしか使うことができない

特にCPUの問題は、4コア8スレッドもしくは8コア8スレッドならば無駄なく活用できるが、
6コア12スレッドの場合はかなり悩ましい。
もし、Androidを動かす目的でPCを組むなら初めから4コア8スレッドまたは8コア8スレッドを選択するとよいだろう。
(なお最新のIntelのデスクトップ用CPUには4コア8スレッドの製品が存在しない・・・)

また、OSはベンチマーク目的ならAndroid-x86(本家)、実用面ならPrimeOSがおすすめ。