第208回 iPhone Xに搭載されているプロセッサには不思議がいっぱい頭脳放談

iPhone Xには、メインのプロセッサの他にGPUやAI向けのプロセッサなど、多くのプロセッサが搭載されている。これらのプロセッサの役割や仕様を筆者が想像たくましく考えてみた。

» 2017年09月27日 05時00分 公開
「頭脳放談」のインデックス

連載目次

 2017年9月12日(米国時間)の公式発表から、ネットを見ると関連のニュースが多過ぎるくらいにヒットする(Appleのニュースリリース「未来がここに:iPhone X」)。Appleの「iPhone X」である。

Appleの「iPhone X」 Appleの「iPhone X」
Appleのニュースリリース「未来がここに:iPhone X」より

 今のところ、みんな一様に「速い」「高性能」という感じ。同じようなことを書いても仕方ないので、iPhone Xの中核部品であるSoC「A11 Bionic」が、何でまたそんなにたくさんの「コア」を搭載しないとならないのか、ということを考えてみたい。

 なお、半導体メーカーが外販するチップであれば、データシートなどがWebページ上に置いてあることが多いので、チップの外から見た仕様はまず正確に分かる。しかしAppleの場合、そういったものは公開されていないので断片的な情報から推測するしかない。以下に書くのはかなり想像をたくましくした個人的な意見であることを最初にお断りしておく。

メインプロセッサは非対称の6コア

 まず目を引くのが、メインのプロセッサコアを6個搭載していることだ。もっとコア数の多いマシンも存在するので、数だけで驚くことはないが、特徴は「非対称」なことだ。「Monsoon(モンスーン)」と呼ばれるらしい高性能のコアが2個、「Mistral(ミストラル)」と呼ばれるらしい高効率のコアが4個という構成だ。ソフトウェア的な命令セットは、全て64bit ARMv8-Aで共通なので、個々のプログラムはどのコアに割り当てても実行できるはずである。

 「非対称」と書いたが、ソフトウェア的にはシンメトリカル(対称)マルチプロセッサといってもよさそうな状態である。非対称なのはあくまでもハードウェアだけである。高性能だが消費電力が高いコアと最高性能は劣るが低消費電力なコアを組み合わせて用いるのはご本家ARMが「big.LITTLE(重い処理は高性能なコアを使い、簡単な計算などは電力を消費しにくい小規模なコアを使うことで、全体的に電力消費を抑えつつ性能を高める技術)」と称して大分前から推進してきている。

 しかしARMは、忙しいときはbigな方に、そうでもないときはLITTLEの方という感じで、切り替えメインの使い方を提唱してきた。一方、Appleの「A11 Bionic」は、軽い仕事のときに大きいコアを休ませて小さいコアに処理させるだけでなく、忙しいときは猫の手も借りたいという感じで、大小取り混ぜて6個全部使い切ることが可能なようだ。

 その場合、重い仕事は高性能のコアに、軽い仕事はそうでない方にうまく割り当てないとならない。これを間違えて、重い仕事を小さい方に割り当てるとひどい結果になる。人間が思うほどには、ソフトウェアの「ここが重くて」「ここが軽くて」という判断は簡単でないはずなので、Appleは割り当てや切り替えの制御の論理に何か新機軸を盛り込んだのだと思う(特許でも調べたら見つかるかもしれないがやっていない)。

 だいたい、同じ命令セットで高性能のコアとか、高効率のコア(低消費電力)とか、種類が分かれるのはなぜなのか。設計してみると一番よく分かるのだが、ひと言で書いてしまえば、狙う性能次第でコアの回路規模は大きく変わるからだ。同じコアでもクロックを半分に落とせばザックリ電力も半分だ。しかし最初から半分の性能でよいのなら回路規模は大きく減るもので、それはクロックを落とす以上に電力抑制に効果的だ。

 それだけ、現代の先端プロセッサがちょっとの性能向上を引き出すのに膨大な回路を使っているということの裏返しでもあるのだが。想像するにスマートフォンの場合、軽めの細かい仕事の数が多くて、重い仕事の数は限られるのではないだろうか。それで大きい方が2つ、小さい方が4つなのか?ちょっと疑問である。なぜ2個と4個なのか、Appleはどこかで説明しているのだろうか。

GPUはPowerVRから独自コアに

 メインのプロセッサ以外にもまだまだコアが搭載されている。まずはApple「独自」のGPUだ。「頭脳放談:第206回 ImaginationはAppleに捨てられ会社を売る?」でImagination Technologies(イマジネーション・テクノロジーズ)がピンチだという話題を取り上げた。その際の話題でもあったImagination TechnologiesのPowerVRが切られてApple独自のGPUが登場してきた。

 当然、以前のものより性能はいい、ということである。「Imagination Technologiesを切って、ロイアルティを支払う必要がなくなって良かったね」という感じの報道が多い。Imagination Technologiesの肩を持つわけではないのだが、大口顧客に切られた部品屋、IP屋の悲哀が感じられる。

 こちらのGPUは3コア搭載だそうだ。詳細は分からないが、「多分」、画面を作る本来のGPU機能に集中したものではないかと思う。本来のGPUであれば、単精度浮動小数点演算描画のための機能に特化すればよいはずだ。

 ただ最近のGPUはNVIDIAのハイエンド製品みたいに、スーパーコンピュータのアクセラレータに使うには倍精度浮動小数が必要だとか、AI用途には最近はやりの半精度浮動小数の方がよい、とか守備範囲が広くなっている(精度については「頭脳放談:第202回 スパコンの新しい潮流は人工知能にあり?」が参考になる)。本来の描画目的以上に回路を積み過ぎるきらいがある。

 「A11 Bionic」の場合、スーパーコンピュータは関係ないし、AI用途は別なコアを積んでいるので、GPUは本来の目的に集中できているのではないかと想像する。

はやりのAIにも専用プロセッサを搭載

 さて、最近はやりのAI、実体は畳み込みニューラルネットワーク(Convolutional Neural Networks:CNN)やディープニューラルネットワーク(Deep Neural Network:DNN)といったニューラルネットワーク処理には、専用の「Neural Engine」というものを搭載したようだ。となればその実態は行列計算処理、2次元的な掛け算と足し算の繰り返し、をやっているはずだ。

 しかし、スーパーコンピュータも「行列計算」みたいなものがメインの世界である。どこが違うのか。スーパーコンピュータなどでやっている計算は計算精度が命、ましてや、途中で一部のデータを「消す」みたいなことをしたら最終結果が違ってくるような計算である。

 ところが、ニューラルネットの計算は、多少精度が悪くても「似たような」最終結果が出てしまう、それどころか、途中で一部のデータを捨てても、さらに言えば、かえって何か異物を積極的に混ぜた方がよい結果が得られる可能性さえある、結果オーライという計算である。

 同じ「計算」といっても、どんな回路を作るべきなのかは相当に異なる。それにこのごろは先ほど述べた半精度浮動小数(16bit)どころか、8bitの整数あるいはもっと少ないbit幅でもAIはできるという方向がはやり出している。Googleなどもそっちへ行っている。詳細は分からないが、このAppleのハードウェアもそのような機能を盛り込んでいる、と想像している。毎秒6000億回の計算ができるといっても、スーパーコンピュータになるわけではないのだ。

他にもプロセッサがいっぱい

 まだある、イメージプロセッサである。こちらはカメラ(イメージセンサー)からの入力の画像を処理する。「スマートフォンのレンズの奥にいるイメージセンサーから画像が出てくるのでしょ」と思っている人もいるかもしれないが、そんな甘くはないのである。

 イメージセンサーから出てきた「画像」、そのままでは人間が見られたものではないのだ。センサーから流れ込んでくる生データ(膨大なバイナリ)からその絵を作る処理をするプロセッサが必要なのである。日本の場合、その辺の「絵作り」に従事されているエンジニアも結構多い気がする。

 こちらはあえて分類するならDSP(デジタルシグナルプロセッサ)である。ユーザーがアプリで画像を加工して見栄えをよくする前の元写真もイメージプロセッサによってピクセルレベルでの「お化粧」が施された後のものだ。画像のピクセルサイズや毎秒撮影可能な枚数を考えると、イメージプロセッサの処理が膨大なものとならざるを得ないことは想像が付くだろう。裏に隠れているが、こいつもかなりなプロセッサであるのだ。

 そして、最後にM11モーションプロセッサである。こちらはメインプロセッサの小さい方のコアより、さらに小さいマイクロコントローラーというべき存在のようだ。日本式にいえば「マイコン」だ。

 これはモーションセンサーを中心とする各種のセンサーを制御する。こういうセンシングの処理は演算量的には微々たるもので、メインのプロセッサからすれば吹けば飛ぶような分量である。しかし、メインのプロセッサとは別にコアが必要なのは、実時間での処理が必須だからだ。

 スマートフォンの場合、ユーザーにしたら「サクサク」画面が反応してほしい、つまりメインのプロセッサは、ユーザーが何か処理したい、というユーザー側のタイミングに縛られて動いている。しかし、センサーは物理現象を捉えなければならない。何かあれば計測、補正、データの統合、送受信といった処理を決められた時間内に確実に処理する必要があるのだ。今お客さんの仕事で忙しいので後回しとはいかない。これまた縁の下で仕事をしているプロセッサなのであった。

 こうして数えてみただけで12コアもある。ここで数えていないものもiPhone Xの内部にはまだあると想像できるので、もしかするとそれ以上の数のコアが協調動作しているかもしれない。

 しかし、これは何もAppleばかりではない。Qualcommの「Snapdragon」しかり、Huaweiの「Kirin」しかりだ。それぞれの用途に適した複数の異なる種類のコアを搭載し使い分けている。現代のスマートフォンがどこに至るのかはいまだ想像がつかない。

筆者紹介

Massa POP Izumida

日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部などを経て、現在は某半導体メーカーでヘテロジニアス マルチコアプロセッサを中心とした開発を行っている。


「頭脳放談」のインデックス

頭脳放談

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。