AppleのAシリーズに続いてGoogleも。
Pixel Visual Core
Googleが10月5日に発表した製品「Pixel 2」は、その内部に「Pixel Visual Core」と呼ばれる画像処理プロセッサが搭載されている。
機能は簡単に想像がつくとは思うが、このプロセッサによって画像処理をより高性能かつ効率的に処理できるようになるわけだが、このプロセッサは何とGoogleの独自設計のコプロセッサだという。
AppleのiPhone8シリーズに搭載されたA11 bionicも母体はARMとしつつもAppleの技術で作られたCPUであり、しかも今回はGPU部分がAppleの独自設計のものが採用されている。そのGPU部分含めたハードウェアでAI処理を行ってポートレート画像処理をしているのだが、今回のGoogleのPixel Visual Coreも、コプロセッサという形はとっているものの、似たような存在と言えそうである。
従来はGoogleもAppleもハードウェア部分は社外技術のものを採用し利用してきた背景があるが、ここ最近それらを自社で独自開発する動きを見せてきた。
どうしてこのような動きを見せてきたのかという理由は、もちろん該当の各社でないと分からないが、予測はできる。おそらく、省電力稼働における高効率稼働の為だと考えられる。
ハードとソフトの連携
iPhoneがAndroid端末より搭載しているメモリ量が少ない理由は、搭載しているOSとハードウェアとの連携がより綿密に設計されているからだと言われている。つまり、OS側はより詳細にハードウェアをコントロールし、必要なリソースを適切に管理している為だと言われているわけだが、それが可能なのはOS開発とCPU開発を同じ社内で実施しているからである。
Androidでは、ハードウェアメーカーとOSメーカーがバラバラであるため、ソフトウェアで完全なハードウェアのコントロールというのが難しいところ、AppleはOSもハードウェアも開発しているためそれが可能なのである。
今までは力押しで製品開発していたが、今後はハードウェアの使用効率を上げていく事をしないと、今より上位の省電力性能を達成できないレベルに来ているわけである。
今回のPixel Visual Core」の開発は、Googleもそこに行かないと求めている性能に達する事ができない、という事ではないかと考える。
また、今回はコプロセッサとして開発したが、これはGoogleでGPUを開発できるという事に等しい話でもある。場合によっては、GoogleもAppleのようにARMコアをベースとするCPU開発を視野に入れている可能性もあるのではないだろうか?
サードパーティでも利用可
GoogleのPixel Visual Coreの利点としては、このコプロセッサがサードパーティ製の写真アプリでもテクノロジーとして確立したHDR+が利用可能だという部分にある。
おそらく、これがGPUでなくコプロセットとした最大の理由ではないかと思うが、Pixel Visual Coreは画像処理ユニットで、フルプログラブルなドメイン固有プロセッサとしている。つまり、ドメイン固有言語を使用する事で画像処理と機械学習をより簡単に処理できるようにしているわけである。プログラムで簡単に制御できるようにしないと、汎用性が上がらないから、これはある意味合理的かつ効率的な考え方と言える。
iPhoneは、アプリケーション以外はサードパーティが存在しないため、提供している開発アプリケーション側が対応すれば、サードパーティがアプリ開発しても自然にA11 bionicを利用する事ができるが、ハードウェアが固定しないAndroid陣営では、そのあたりのコントロールが非常に難しい。よって、ドメイン固有言語を準備する事でそれに対応しているのだろう。
予定では、今後数週間で開発者向けプレビュー版Android Oreo 8.1の開発者向けオプションとしてPixel Visual Coreが利用可能になり、その後、Android Camera APIを使用している全サードパーティアプリでPixel 2のHDR+テクノロジーが利用可能になるという。
ハードウェア事情が一律でないAndroid陣営内で、如何に簡単にこれらの機能を利用可能にするか、という事をGoogle側も試行錯誤した結果、この道を選んだのだろう。
統合化するのか?
Appleに次いでGoogleがこのような形でハードとソフトの連携を強めるために、ハードの独自設計の道に入ってきた。
これ以上の性能追求をしていく上で、特に制約のあるモバイル機器では、このハードの独自設計という道しか選択肢がなかったのかもしれないが、そうなると自社内でハードウェアの設計ができないメーカーは今後どうなっていくのだろうか?
結局の所、ソフトウェアでどこまでハードの性能が引き出せるか? という所にこそ意味があるわけで、Googleはその隙間を埋めるが如く、開発キットでGoogle設計のハードウェアの利用を促すという方向を取った。
私が何となく思っているのは、Microsoftが事実上Windows Phoneから撤退した理由は、AppleやGoogleの動きに対して追従しないという道を採ったからではないかという事である。
Microsoftぐらいの企業なら、自社内にハードウェア設計部門があっても不思議ではないしなければ作る事だってできるだろうが、あえてその道を採らなかったところに、GoogleやAppleとの戦略上の違いが出ているのだと思う。
逆に、Microsoftはx86を利用したPCの世界がモバイル機器とは違う市場で確実に生き残り、また一定数のシェアを獲得し続ける事ができる、と判断してそちらに注力したとも言える。
このあたりは企業の考え方であったり、分析の判断の違いだったりと、面白い傾向が出ているように感じる。