AppleのNeural Engineをリバースエンジニアリングしてその中身を丸裸にする
Retrospectively Reverse-Engineering Apple's Neural Engine
Retrospectively Reverse-Engineering Apple's Neural Engine
Appleシリコンの心臓部である「Apple Neural Engine (ANE)」を後追い解析し、その謎に包まれた内部構造を紐解く試みについて解説します。ブラックボックス化されているApple独自のAIチップが、一体どのような仕組みで高速な推論処理を実現しているのか。その技術的な深淵を覗いてみましょう。
どういったワークロード用に設計され、何が得意なのか。
「excels(優れている)」だね!
これはAIのゴミ記事なんかじゃない。興味深いし、しっかり書かれてるね。
それに、すごく基本的なことを学べたよ。ANE(とその周辺のデータパイプライン)がTransformerではなくCNN向けに設計されていたなんて知らなかった。どうしてANEが思っていたほどインパクトがないのかずっと疑問に思っていたんだけど、ようやく謎が解けた。
https://maderix.github.io/articles/ で見られるM4 ANEに関する最近の研究と、これはどう関係するんだろう?M4以降のANEは何か新しい機能が追加されたのか、それとも単に同じアーキテクチャの高性能版なのか。
ついでに言うと、この記事の導入部分はANEとM5以降のGPUに搭載されているNeural Accelerators (NAX) を混同しているようだね。これらは全く別物だし、Appleは今もANEの開発を続けてる。M6やA20ではANEブロックが倍増するらしいしね。
TransformerをANEに移植したことがあるけど、全体としてCNNのフリをさせる作業だったな。シーケンスを最後の軸にした4Dテンソルにして、行列演算の代わりに1x1畳み込みを使うっていうね。
素晴らしい分析だね。
著者はこれのバグまで見つけてるよ。https://eiln.github.io/posts/ane-dma.html
Appleがこの秋に新しいフレームワーク(Core AI)をリリースすることも忘れちゃいけない。10年前のCore MLフレームワークが扱えたPytorchやTensorflowのワークロードを超えるものだ。
Core AIを使えば、CPU、GPU、Neural Engine全体で最新のモデルアーキテクチャや推論技術を活用できるようになる。
AppleはAIの波に乗り遅れたって多くの人が言ってるし、いくつかの重要な側面ではそれは正しい。でも、AppleはAIブームが本格化する前の2017年にはすでにAシリーズチップにNeural Engineを追加していたことは覚えておくべきだよ。
あれから「AI」は飛躍的に進歩したし、Appleがうまく展開できていない重要な開発項目もある。でも、当時のAppleは他の多くの企業よりも先を見越していたと思う(その後、状況が彼らの想定を超えてしまったとしてもね)。
一般のデベロッパーはANEを使えないんだと思ってた。せいぜいコンピュテーショナルフォトグラフィーで被写界深度をごまかすくらいかと思ってたよ。