Apple ANEをM1で完全リバースエンジニアリング
原題: Retrospectively Reverse-Engineering Apple's Neural Engine
なぜ重要か
独立系エンジニアによるApple SiliconのNPU解析は、CNNからTransformerへの移行がチップ設計思想を根本から変えた経緯を一次資料として示す貴重な記録だ。
エンジニアのEileen Yoonが、Apple M1チップのNeural Engine(ANE)を3年越しでリバースエンジニアリングし、詳細な内部アーキテクチャを公開した。16コア・2048並列MACレーン構成の演算基盤や、CNNワークロードに最適化されたデータフロー設計を解析。M5(2025年)でANEコアがGPUコアに統合されたことを受け、スタンドアロンNPUの終焉として本解析を公開した。
Eileen Yoonは2026年8月10日、Apple M1チップに搭載されるNeural Engine(ANE)の内部構造を詳細に解析した技術記事を公開した。3年前に一度中断していた同プロジェクトを、M5でANEがGPUコアに統合されたことを機に完成させた形だ。
YoonがANEドライバのリバースエンジニアリングを断念した理由は明快だ。「ANEブロックはそれほど汎用的ではない」と判断し、Linuxドライバを作成してもANEが実行できるワークロードの種類を広げることはできないと結論づけた。macOSですら、ANEを定期的に使うのはFinderでのプレビュー画像のアップサンプリング生成程度にとどまるという。
今回の解析の主眼は、単に動かすことではなく、アーキテクチャの全体像——演算、データパス、スケジューラ、メモリ、実行モデル——を明らかにすることだ。これらの設計判断から、Appleが2017年のA11 Bionicで初めてシリコンに組み込んだMLワークロードへの仮定が見えてくる。
演算コアの構成は以下の通り。ANEは16個の並列演算コアを持ち、各コアにはFP16で128レーン(INT8では256レーン)のMAC(積和演算)ユニットが搭載される。合計で2048並列MACレーンとなり、各サイクルで2048回の並列積和演算を実行できる。
Yoonが強調するのは、MACそのものではなく、その「データフロー」だ。2017年のCNNモデルに対してANEを特化させたのは、入出力がいつ・どこに入り、どう移動するかという予測可能な再利用パターンを前提とした設計にある。一方、自己回帰デコードを伴うTransformerはこの前提を崩した。ANEはTransformerの演算コアとしては機能しても、データフローの適合性が失われた——M5がANEをGPUに内包した判断は、その帰結だとYoonは見る。
M5の構成変更について、「スタンドアロンNPUの終わりの始まりだと感じる」と述べており、今回の公開はその記録としての意味合いも持つ。ソースコードはGitHubで公開されている。