---
source_url: https://eiln.github.io/posts/ane.html
source_title: "Retrospectively Reverse-Engineering Apple's Neural Engine"
tags: apple-neural-engine,hardware-architecture,reverse-engineering
generated_at: 2026-09-12T12:02:13.757Z
model: claude-haiku-4-5
---
# Appleニューラルエンジンの内部構造、逆向き分析で明らかに

M1チップ搭載のApple Neural Engine (ANE)について、著者が逆向き分析により内部アーキテクチャを詳細に記録した。ANEは16個の演算コアを備え、M5世代ではGPUコアに統合されることで、スタンドアロン型NPUの時代が終焉を迎えるとみられる。

M1チップに搭載されたApple Neural Engine (ANE)の内部アーキテクチャが逆向き分析により明らかになった。著者は過去3年間の停止期間を経て、ANE搭載の初期段階における設計思想を遡及的に分析するプロジェクトを再開した。

## ANEの演算構成

ANEは16個の演算コアから構成され、各コアは128レーンのFP16並列乗算累算演算、または256レーンのINT8並列乗算累算演算に対応している。全体で2048レーンの並列乗算累算能力を備え、M1での理論ピークは11 TOP/sを達成する。各乗算累算演算は32ビット累算器を使用し、飽和値は2^15である。

![M1チップのダイ構造](https://eiln.github.io/posts/2026-08-10-ane-cnn/artifacts/m1-die.png)

## 活性化関数とメモリシステム

ANEはtanh活性化関数を33点の区分線形ルックアップテーブル(FP16係数)により実装し、隣接エントリ間の線形補間を利用する。ReLU、tanh、恒等関数の3つの活性化モードに対応する。バイアスと活性化関数はMAC後処理パスに融合されている。

![ANEダイの詳細](https://eiln.github.io/posts/2026-08-10-ane-cnn/artifacts/ane-die.png)

ANEはシステムDRAMへの68 GB/s帯域幅にアクセスするが、11 TOP/sを持続するには理論上22 TB/sの帯域幅が必要とされ、利用可能帯域幅対必要帯域幅の比率は300倍に達する。ANEは固定機能のデータフロー処理エンジンとして動作し、命令セットを実行しない。タスク記述子はControlDMAパケットで構成され、8個のタスクキューを備え、各キューにはping-pong型コマンドストリームスロットが2つある。各タスクキューは32個のベースアドレスレジスタを保有しており、IOMMU仮想アドレスの再配置に用いられる。

## 設計方針と実装上の限界

著者は当初ANEがメモリ帯域幅に対する高度の依存性から、汎用加速プラットフォームの構築に適していないと判断した。macOSではFinderのアップサンプリングプレビュー画像生成がANEの主要な用途である。著者が3年前にドライバ開発を中止した理由は、ANEのアーキテクチャが特定用途に最適化されすぎており、一般的な用途への適用が困難であったためとされる。

M5(2025年)ではANEコアはGPUコア内に統合され、スタンドアロン型NPUとしての役割は終焉を迎えた。M5の主要な性能改善の対象はLLM処理性能へ集中したことが報告されている。

## 筆者の見立て

- A11 Bionicで採用されたANEの設計決定は、CNNベースのML勤務負荷に対するAppleの設計仮説を反映しているものと解釈している
- M5でのANEコア統合は、スタンドアロン型NPUの終焉の始まりを示唆しているとの見方を述べている
- トランスフォーマー時代への転換に伴い、CNN時代のNPU設計からGPU推論へのシフトが生じたと解釈している
- ハードウェアインターフェースの制約は一般に、小さいダイ面積、確定的な動作、低いレイテンシ、低電力を意味するとみている

*この記事は元記事の事実のみに基づいて自動生成されました。*

## 出典

Retrospectively Reverse-Engineering Apple's Neural Engine, https://eiln.github.io/posts/ane.html
