見出し画像

歴代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はどれも同じ。

ここから先は

1,065字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/