Apple M1にみた気高い理想とそれを具現化する力
- 2020/11/24 10:23
- カテゴリー:マニアックなおはなし
これまで,iPhoneやiPadといった自分に関係のない製品の心臓部であるAシリーズには今ひとつ関心を持たずにいて,そのせいでCPUそのものを細かく見る機会を失ってわけですが,AppleM1と搭載したmacbookを注文したことで,俄然自分の問題としてApple謹製のCPUの性能が気になり出しました。
ARMプロセッサというのは,コアあたりの性能は控えめであり,その代わり消費電力が大幅に低いものというのが定説です。それは,もともと電池で動く製品に搭載されることで採用例が増えてきたCPUだからです。
その製品が消費電力優先ならARMですし,どんどん電力を突っ込む事が許されるならインテルのCPUを使うというのは,わかりやすい使い分けです。
以前はそうでもなかったのですが,今どきのCPUにおいて,こうした性能の違いというのは,バイナリの互換性,すなわちプログラミングアーキテクチャに起因するものではありません。
以前は確かに,プログラミングアーキテクチャとマイクロアーキテクチャ,もっというとハードウェアの実装との間には強い関連性があるので,ハードウェア作りが上手な会社,すなわち先端プロセスを持つ大きな会社だけが高性能なCPUを作る事ができました
しかし,今はそれぞれ,互いへの依存性が低くなっています。製造なら製造に,設計なら設計に,それぞれ特化した会社が普通になったことで,それぞれの得意とする分野だけ注力し,他は他社に任せることが出来るようになったこと,そしてそのために他の会社とのやりとりをスムーズにするためにそれぞれのブロックの抽象化と,境界面のインターフェースを標準的なものに収れんさせていったというのが,その流れです。
だから,昨今インテルの調子が落ちているというのは,分業化に背を向けてアーキテクチャからプロセスまでを一手に握ってきたインテルが,餅は餅屋という分業化に性能面でも追いつかなくなってきた,というわかりやすい予測に従った結果とも言えます。
なら,ユーザーであるAppleがインテルを見限ったのも道理であり,最先端の製造技術を持つ会社が自分たちのためにも汗をかいてくれるならば,自分たちはそこで作るものを設計しよう,その代わり最高水準のものにしようと思うのも,まあ当たり前です。
現実にはそうではないかも知れませんが,TSMCのような製造の会社というのは,技術と費用が政治的な思惑で大きく変動しないものです。お金があれば性能があがる,そういう公平さを期待出来るのです。
インテルが世界最高レベルの半導体を作っていることには違いはありませんが,その製品を使うにはお金だけがあればいいと言うものはなく,インテルに対する信頼であるとか,忠誠心のようなものさえも時に必要になります。そしてそれは強い足かせにもなり得ます。
インテルがなんでも自分でやると言う作戦で限界にぶちあたる一方,手分けして各々が得意な分野に取り組む事で,結果的に世界最高の寄せ集めが可能になった今のCPU作りが大きく伸びるのは,もはや必然と言えます。
TSMCという台湾の会社とARMというイギリスの会社がその中心的存在であることは,アメリカや日本,あるいは中国と言った少々面倒な国の会社が中心になることに比べ,公平性や偏りのなさがあると思いますし,ついでにいうとこれらの常に注目される国の会社ではないことで,ずっと傍流として注目されずにいられたので,ややこしい人達から足を引っ張られることがなかったからじゃないかと思っています。
Appleが半導体の工場を持つ事なく,自分たちの半導体を(1つ2つを作るのではなく膨大な量を)作る事が出来るのはこうした背景があるからで,だからこそAppleは半導体の中身を洗練させるために,世界最高の設計者やアーキテクトを集めることに専念出来たのです。
その結果がApple Siliconです。
私は今さら驚いたわけですが,A14やM1の高性能側コアであるFiresotrmは,シングルコアのクロックあたりの性能(IPC)は,すでにインテルのモバイル向けのCPUコアであるIceLakeよりも,高くなっています。
ARMがインテルよりもIPCで勝つなんて,少し前なら信じられません。コアそのものの性能もそうですが,本当に強い足腰を持つシステムというのは,データの出入り口とデータの通り道がへこたれないように,きちんと作られているものです。
ARMのCPUは数字よりも体感で実力が出ないというイメージが私にはあり,それは特に高負荷で大きく性能が落ちたことを体験しているからですが,その原因はバス設計の貧弱さにありました。
性能は大きな消費電力との引き換えでしか手に入らなかったはずです。しかしApple Siliconはすでに,インテルよりも低い電力でインテルを越える性能を手に入れているというわけです。これは驚きです。
FireStormコアは,8命令のデコードを行うデコーダを持ち,6つのALUを持っています。つまり同時に6命令(ブランチは別にあります)を実行出来ます。IceLakeはALUが4つですから,理想条件ピークでは1.5倍の性能差があります。
もちろん,ALUを増やせば性能が上がることはインテルもわかっていますが,1つにはx86の命令セットでは6命令を同時に実行することが難しい事があります。それを行う為には回路規模が大きくなってしまうので,電力も歩留まりも悪化するというわけです。
その上インテルは最先端プロセスに開発に失敗して,トランジスタの数を増やせません。TSMCは5nmの最先端プロセスを持つ唯一の会社であり,膨大なトランジスタの使用を許す技術を持っていて,Appleはそのトランジスタを電力と性能の両立に使うことにしたというわけです。これじゃインテルがかなうはずもありません。
それでも,そうした不利な条件にもかかわらずインテルのCPUが相変わらず高性能であることにも驚くわけですが,その伸びしろは残り僅かになっていて,ここから先は大きな努力が必要な割にはそれ程の見返りがないという状態です。これではライバルに勝てません。
今インテルは,大きな岐路に立たされています。苦しいでしょうね,きっと。
感慨深いのは,私がかつて最高のパソコン用CPUとして絶賛したPowerPC604の同時実行数を越えたコアが,またAppleに搭載されたという事実です。実行ユニットを増やすほど性能の向上は緩やかになりますので,PowerPC604は回路規模が大きく無駄が大きいCPUにも見えました。
しかし,負荷の大きさの変化に対する処理速度の変動が小さい,トルクの太いPPUでした。ゆとりがある,贅沢な設計のCPUだったことが伺えます。
もちろん絶対的な古さからPowerPC604の性能は頭打ちになり,その後G3やG4,そしてG5がはるか先に進んでしまったのですが,IBMらしい正攻法による性能の向上という気高い理想がそこにはありました。
しかしその後,こうした無駄は許されなくなり,ALUの数は多くても4つくらいになりました。やがてコアの数を調整して性能向上を図るのが一般的になり,PowerPC604のようなCPUはもう二度と現れないと思っていました。
しかし,Firestormは,しれっとそれをやってきています。もちろんコアも増やすという両面作戦です。Apple M1は,単体でも1.5倍の性能を持つコアを8つも搭載している訳ですから,これが低性能なわけがありません。
とはいえ,実際に使ってみないと,トルクの太さというのはわからないものです。でも,これだけの技術的な裏付けがあるのですから,期待してもいいでしょう。
Apple M1は急に登場したCPUではありません。A14を含む,これまでのiPhone用のCPUをきちんと追いかけていれば予測可能であり,順当な進化を遂げたCPUであるとわかったはずです。
だから,私がこうして大慌てしているのはとても恥ずかしいことで,反省することしきりですが,すでにブームが去ったと思われるCPUのアーキテクチャに関する話題が,まだ扱われていることは素直にうれしいと思います。
最初は生活マシンを新調するという楽しみでしたが,PowerPC604を越える気高い理想を具現化したCPUを叩くチャンスが訪れることが,さらに楽しみです。