歴代Neural Engineの性能比較
最近個人開発アプリでCore ML・Visionをゴリゴリに利用(数千枚の画像に対してディープラーニングの推論処理を行う)した機能を実装したのだけど、
これぐらい激しくオンデバイスでのML処理を行うと、さすがにデバイスごとの性能差が体感として明確に出てくる。
今メイン端末として利用しているiPhone 12 miniだとサクサク処理が進むのだけど、Neural Engine非搭載のiPhone 7 Plusだと遅すぎてちょっと厳しい。
(iPhone 7 PlusはA10 Fusion、iPhone 8からA11 Bionic)
で、このフィルタ機能を提供するデバイスを絞るか、`UIRequiredDeviceCapabilities` に `iphone-ipad-minimum-performance-a12` を指定してアプリをインストールできるデバイス自体を絞るか、というのを考えたのだけど、
→ 「Core MLのポテンシャルを最大限引き出す鍵となるNeural Engineが搭載されていること」という考え方でいくと、A12以降じゃなくてA11以降でもいいんじゃない?
→ そもそもNeural Engineの世代ごとの違い・性能差ってどんなもんなんだっけ?
というのを調べたくなった次第。
A11 Bionic
・2コア
・600 billion operations / sec
・このバージョンのNeural EngineはFace IDとAnimojiでの利用だけで、Core MLでは利用されない
・搭載デバイス:iPhone 8, 8 Plus, X
なんと、UIRequiredDeviceCapabilitiesに`iphone-ipad-minimum-performance-a12`という項目が用意されている謎がいきなり解けた。
Neural Engine / Bionicと銘打ってはいても、Core ML高速化はA12以降なのか〜と。
A12 (X, Z) Bionic
チップとしてはA12 Bionic, A12X Bionic, A12Z Bionicとがあるが、Neural Engineはどれも同じ。
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/