注目★★★★★Hacker News
Apple M1 Neural Engine、16コアの内部構造を再解剖
30秒で把握
- 1Apple M1 ANEの16コア構成と2048本のMACレーンを再解析
- 2ANEは命令実行でなく固定長Task DescriptorとControlDMAで構成
- 333エントリLUTやBAR配置からCNN向けデータフローを特定
要約
著者は、停止していたApple M1のNeural Engine(ANE)ドライバ開発を再開し、演算・データパス・スケジューラ・メモリ・実行モデルの内部構造を逆解析した。M1 ANEは16個の演算コアを持ち、各コアに128本のFP16または256本のINT8 MACレーンを備える。ANEはCONVやMATMULの命令を直接実行せず、コンパイル済みの固定長Task DescriptorがControlDMAでレジスタ設定を書き込み、各処理を構成する。解析では、32ビット固定小数点の累算器、33エントリの区分線形LUTによる活性化関数、BARを用いた仮想アドレス配置などを特定した。著者は、CNN時代の予測可能なデータ再利用を前提にした設計が、Transformerの自己回帰デコードとは異なることを論じ、M5でANEコアがGPUへ統合された背景をこのデータフローの転換と結び付けた。
あなたへの影響
Apple向け低レベル実装やアクセラレータ研究に関わるエンジニアは、ANEを汎用GPUのように扱えない前提で、既存ドライバとコンパイル済みTask Descriptorの挙動を検証するとよい。
推奨:CNN向けの固定データフローとTransformer向け実行モデルの違いは、NPU選定や移植性の判断に影響し得る。