少し視点を切り替えてみよう。iOSの視点でいうと、Apple設計のプロセッサとOSが提供する機能は二人三脚で進歩してきた。
機械学習アクセラレータとなる命令拡張への対応、ニューラルネットワーク処理が得意な専用プロセッサ「Neural Engine」を、Core MLを通じて処理するといった例は典型的なパターンだ。
GPUの活用に関しても、CPUとGPUでメモリを共有するUMA(Unified Memory Architecture)の採用が、パフォーマンスの向上に有益であると繰り返しAppleは主張してきたが、これも開発環境やOSのスケジューラなどと協調して、非対称に多様な処理回路が混在するSoCのパフォーマンスを引き出せるよう環境を整えてきたわけだ。
現在のiPhoneやiPadに搭載されるSoCには、実に多様な機能が搭載されているが、それらは全て同じメモリを共有し、協調して動作している。
こうしたアーキテクチャの強みは、例えば「iPhone 11」シリーズ搭載カメラの処理で、CPU、GPU、Neural Engine、ISP(Image Signal Processor)が必要に応じて活躍しながら処理していくプロセスに代表されるように、データ転送なくおのおのが得意な処理をこなせるようになっているが、同時にこうしたハードウェアの特徴を使いこなすためのAPIを時間をかけてAppleは準備してきた。
今回のApple Silicon搭載Macという話題の中で、iOSで培われてきたCore MLがそのままMacでも生かされ(当然、Apple Silicon上ではNeural Engineが活躍する)、GPUの活用に関してもMetalを通して同じように使われる。今後はAppleがGPUのアーキテクチャも自分たちでつかさどることになるため、MetalとApple Silicon上のGPUアーキテクチャがセットで強化されていく道も当然あるだろう。
しかも、Apple Silicon上に配置される回路の基本的なアーキテクチャは、iPhoneからMacに至るまで全て共通だ。iOSの源流がmacOSにあることは知られているが、「Mac Catalyst」によってこの2つのOSがAPIレベルで交わろうとしている中、APIだけではなくSoCの面でも共通化が進むことになる。アプリ開発者にとっては、(Macの開発者、iPhoneの開発者の双方から見て)可能性が大きく広がるだろう。
さらに、そもそものCPUアーキテクチャにしても、Apple SiliconのCPU部分は(コア設計こそ異なるものの)高性能コアと高効率コアを組み合わせ、タスクを適したコアに振り分けることで省電力化を図るArmの「big.LITTLE」と同じ手法を採用している。
この構成を生かすには、各スレッドをどのコアに担当させるかを割り当てるスケジューラーが対応せねばならない(Intel CPUの場合、全て同じコアで動作するため、そうした性能が異なるコアへの割り当てを考慮しなくていい)。
新しい「macOS Big Sur」にはApple Siliconに対応したスケジューラが組み込まれるとともに、アプリを開発する側もその構成を意識した開発が可能になる。もちろん、Intel CPU搭載Mac向けをそのままApple Silicon向けにビルドしても動作はするが、さらに追い込むことも可能になるわけだ。
AppleがOpenGL、OpenCLによるGPUの活用を非推奨として、GPUの利用をMetalに統一するよう移行計画を進めてきた結果、サードパーティーを含めて主要なアプリは全て、GPUを使う際にMetalを通している。これもMacをApple Siliconに切り替えていく長期的な計画の一部だったのかもしれない。
UMAを基礎に、複数の処理回路を統合しているApple Siliconは、処理結果をいちいち転送してオーバーヘッドを出すこともなく、それぞれの処理回路の得意領域を生かすことができる。
CPUに加え、GPU、機械学習アクセラレータまでを一貫したアーキテクチャのもとにコントロールし、数的優位が大きいiOSとも共通のアーキテクチャに落とし込めれば、iPhoneへの投資と進化をMacの領域にまで広げていけるし、その逆もまたあり得る。
Copyright © ITmedia, Inc. All Rights Reserved.