**M4 Apple Neural Engine の内部 ― 第1部:リバースエンジニアリング**

2026/03/02 2:11

**M4 Apple Neural Engine の内部 ― 第1部:リバースエンジニアリング**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

著者らは、M4チップ上のApple Neural Engine(ANE)を逆解析し、CoreML をバイパスする低レベル

_ANEClient
API を公開しました。
この API により、開発者は Machine Learning Intermediate Language (MIL) を E5 バイナリにコンパイルし、16 コアの H16G ANE 上にロードしてハードウェア上で直接実行または学習できるため、パイプライン全体を完全に制御できます。
彼らは、コンパイルと評価時間を測定することで真のピークスループットを示し、IOSurfaces を使用した GPU と ANE 間でのゼロコピー方法を紹介してオーバーヘッドを削減しています。
論文では API フロー(compile → load → evaluate)を詳細に説明し、ハードウェアの主要特性として 16 コア、キュー深度127、独立した DVFS、およびゼロパワーアイドル状態を強調しています。
また、E5 バイナリは主に設定駆動型であること(例:1024×1024 の matmul ≈ 2,688 バイト対 128×128 の matmul ≈ 2,680 バイト)、コンパイラがディスク上にこれらのバイナリをキャッシュし、初回コンパイルは約20–40 msで済み、ヒット時は無料になること、および ANE が Conv、MatMul、Elementwise、Pooling、Reshape などのプリミティブをサポートしている点も指摘しています。
将来の研究では、隠れたプライベートクラス(例:
_ANEChainingRequest
_ANESharedEvents
)の発見、マイクロアーキテクチャ詳細(ISA、クロック周波数、SRAM トポロジー)の調査、および E5 バイナリキャッシュによる学習非効率性への対処が考えられます。
この突破口により、開発者は CoreML を使用せずにカスタム推論またはトレーニングパイプラインを構築でき、性能向上と Apple シリコン上での GPU↔ANE のゼロコピー ワークフローの実現が期待されます。

本文

「私たち」についてのメモ

このシリーズ全体を通じて 「私たち(we)」は、maderix(人間)とClaude Opus 4.6(Anthropic が開発した AI)というペアで働くことを指します。
リバースエンジニアリング・ベンチマーク・トレーニングコードは共同で開発されました――人間の直感が探索を推進し、AI がデータを解析して分析を書き上げます。

私たちはこのような人間–AI の協働がシステム研究にとって新しく自然な方法だと考えています。

  • 1 人は直感的な設計者(アーキテクト)
  • もう 1 人はコードを書き、実験を構築するエンジニア

すべては「Apple の Neural Engine でモデルをトレーニングできるか?」という単純な質問から始まりました。
Apple はその答えを隠したいと考えており、ANE(Apple Neural Engine)の ISA を公開せず、内部構造も文書化していません。また直接プログラミングする手段すら提供していないため、CoreML という抽象化レイヤーを介さなければなりません。CoreML はさらに最適化パスやオーバーヘッドを加えるため、ハードウェアが実際に何を行っているかを理解するのはほぼ不可能です。

そこで私たちはリバースエンジニアリングに取り組みました。数日間にわたり CoreML から IOKit カーネルドライバーまでのソフトウェアスタック全体をマッピングし、CoreML を介さずに ANE 上でプログラムをコンパイル・実行する方法を発見しました。バイナリフォーマットを解読し、真のピーク性能(Apple の「38 TOPS」という数字は誤解を招く)を測定し、最終的に推論専用に設計されたチップ上でニューラルネットワークのトレーニングが可能となりました。

これは 3 部構成シリーズの第 1 パートです。ここではリバースエンジニアリングの過程―M4 Neural Engine を実際に何があるか、そして直接対話する方法を明らかにした手順について解説します。


ANE は GPU や CPU ではない

ANE は グラフ実行エンジン ― コンパイル済みニューラルネットワークの計算グラフ全体を一括で実行する固定機能アクセラレータです。
個別の乗算加算命令を発行せず、コンパイル済みプログラム(計算グラフ全体)を送信し、ハードウェアがエンドツーエンドで処理します。

Apple は 2017 年に A11 で Neural Engine を初登場させ、2 コア設計でした。以降の世代では次第に拡張されています。

世代コア数キュー深度DVFSパワーゲーティング
M4 (コードネーム H16G)16127 評価リクエスト独立アイドル時は正確に 0 mW

ANE の内部を調査したのは私たちだけではありません。

  • hollance/neural‑engine ― Matthijs Hollemans による ANE の挙動・性能特性・サポート操作に関する包括的コミュニティドキュメント。
  • aiter/ane ― Python と Objective‑C で動作する早期リバースエンジニアリング例、ANECompiler フレームワークと IOKit ディスパッチの解説。
  • eiln/ane ― ANE の Linux ドライバー(Asahi Linux プロジェクト)でカーネルレベルインタフェースを明らかにしたもの。
  • apple/ml‑ane‑transformers ― Apple が提供する Transformer 用リファレンス実装で、チャネル優先レイアウトや 1×1 Conv の好みといった設計パターンを確認。

しかし私たちの知る限り、以下は未踏でした。

  1. CoreML を介さずに M4 で直接
    _ANEClient
    API にアクセスできること
  2. メモリ上の MIL コンパイル経路を解読すること
  3. CoreML のオーバーヘッドをバイパスして真のピークスループットを測定すること
  4. ANE 上でモデルをトレーニングできること

私たちの手法

  • AppleNeuralEngine.framework から
    dyld_info -objc
    を実行し、Objective‑C クラスとメソッドをすべてダンプ。
  • CoreML が呼び出すプライベート ANE フレームワークをフックするメソッドスワッピング。
  • コンパイル済み E5 バンドルのバイナリ解析でニューラルプログラムフォーマットを理解。
  • 行列サイズ・グラフ深度・チャネル数を変化させてハードウェアトポロジーを推測するスケーリング分析。

AppleNeuralEngine.framework には

_ANEClient
_ANEModel
_ANERequest
_ANEIOSurfaceObject
_ANEInMemoryModel
など 40 を超えるプライベートクラスが存在します。


ANE の完全ソフトウェアスタック

パブリック CoreML API からハードウェアまで:

  • CoreML ― ONNX/Protobuf → MIL の便宜層
  • AppleNeuralEngine.framework
    _ANEClient
    を介したコンパイル→ロード→評価パイプライン
  • MIL (Machine Learning Intermediate Language) ― 型付き SSA 表現。例:
    function my_matmul(input_a: Tensor[float32, [N, C, D, H, W]],
                       input_b: Tensor[float32, [N, C, D, H, W]]) -> output
    
  • E5 バイナリ ― FlatBuffer 構造ファイル。例:1024×1024 の matmul は約 2 688 バイト

E5 バイナリはアルゴリズム自体をエンコードするのではなく、実行時にテンソルディスクリプタで制御されるパラメータ化されたプログラムです。


メモリ上コンパイル経路

_ANEInMemoryModelDescriptor
は MIL テキストを直接メモリから受け取ります。
デバッグで数日かかった 3 つの落とし穴:

  1. NSData、NSString ではなく
    milText
    は UTF‑8 バイト列 (
    NSData*
    ) を期待。
  2. NSDictionary、NSData ではなく ― 重みマップは重み名 →
    NSData
    ブロブ。
  3. 一時ディレクトリ回避策 ― 内部のテンポラリパスが書き込み可能である必要。

M4 ANE のプロファイリング(IOKit プローブ)

機能観測結果
電源管理DVFS は独立、適応クロック、ディザリング、多重トリガー
キュー深度127 評価リクエストが同時に実行可能
計算プリミティブConv(主)・MatMul・Elementwise 等

特に、matmul を 1×1 コンボルーションとして表現するとスループットが大幅に向上します。


データ転送

ANE とデータをやり取りする際は IOSurfaces が使用されます ― GPU テクスチャと同じ共有メモリ機構です。
これにより、GPU と ANE の間でゼロコピーのパイプラインが可能になり、両アクセラレータが同一メモリ上で動作します。

ANE コンパイラは E5 バイナリをディスクにキャッシュします(初回コンパイルは 20–40 ms 程度;キャッシュヒットはほぼ無料)。
これは推論には理想的ですが、重みがステップごとに変わるトレーニングでは課題となります。


未調査クラスで示唆される追加機能

  • _ANEChainingRequest
    ― 複数コンパイル済みモデルを単一ディスパッチでチェーンできる可能性。
  • ANESharedEvents / _ANESharedSignalEvent / _ANESharedWaitEvent
    ― Metal スタイルのフェンス/シグナルプリミティブで GPU↔ANE の同期が取れるかもしれません。
  • _ANEPerformanceStats
    ― ハードウェア性能カウンタへのアクセスを可能にするかも。
  • ANEVirtualClient
    ― マルチプロセス共有を想定した仮想化 ANE アクセス。

未知の点

  • 正確な ANE コアマイクロアーキテクチャと ISA
  • グラフ内でコアがどのように操作へ割り当てられるか
  • 現在のクロック周波数(DVFS により動的)
  • ハードウェア性能カウンタへのアクセス可否
  • SRAM トポロジー(バンク化?統合?コアごと?)

今後の展望

  • Part 2 ― matmul のスケーリング、SRAM パフォーマンスクリフ、Conv が MatMul より 3 倍速い理由、Apple の「38 TOPS」主張が誤解を招く点、CoreML をバイパスすることで 2–4 倍のスループットが得られることなどをベンチマーク。
  • Part 3 ― Neural Engine 上でニューラルネットワークをトレーニング(Apple が「できない」と言っているものを実証)。

すべてのコードは https://github.com/maderix/ANE

ane/
ディレクトリにあり、M4 Mac Mini と macOS 15.x でテスト済みです。


この投稿についてのディスカッション

もっと知りたい?

同じ日のほかのニュース

一覧に戻る →

2026/03/03 7:32

メタ社のスマートグラスの裏側にいる作業員は、全てを見渡すことができます。

## Japanese Translation: > Metaの新しい「Meta Ray‑Ban」メガネは、仕事・旅行・リアルタイム翻訳・プライバシー制御を一つのAIアシスタントとして位置付けられています。EssilorLuxotticaと共同で製造され、スウェーデンで販売される予定で、2023‑24年に200万台から2025年秋には700万台へと売上が急増する見込みです。このデバイスはサーバー側で処理を行う必要があり、ローカルでの対話は不可能です。アプリは電話にインターネット接続がなくても、常にMetaサーバーにアクセスします。 > Metaのプライバシーポリシーでは、ユーザーが明示的にオプトインしない限り、音声・テキスト・画像・動画を自動的に取得することが許可されています。すべてのコンテンツはAIによって自動または手動でレビューされる可能性があり、オプトアウトの選択肢はありません。プライバシー専門家は、ユーザーがしばしばメガネのカメラがAIアシスタントに話しかけた際に録画していることを認識していない点を指摘し、透明性の欠如を強調しています。 > データ注釈作業はサブコントラクター(例:ナイロビのSama)に委託されており、従業員は極めてプライベートな資料(例:トイレ訪問、セックスシーン、銀行カード情報など)をレビューすることがあります。匿名化は不完全であり、照明が悪い場合には顔が見えてしまう可能性があります。Metaの利用規約では保存場所や詳細な取り扱いについて具体的に示されておらず、ヨーロッパの幹部はGDPR準拠がサーバー所在地よりもデータ保護基準に依存していると指摘し、法的責任はMeta Irelandに帰属すると述べています。 > スウェーデンのプライバシー保護機関はまだ製品をレビューしていないため、ユーザーが自分のデータがAIモデルのトレーニングや広告ターゲティングにどのように使用されるかを十分に理解できていないという懸念があります。MetaはクラウドベースのAI処理を維持しつつメガネの販売を継続する計画であり、これがGDPR監視の強化につながり、企業や消費者がウェアラブルAIデバイスにおけるより明確なオプトインデータポリシーを要求する動きを促す可能性があります。

2026/03/03 6:09

Macintoshへようこそ(お帰りなさい)。

## Japanese Translation: --- ## Summary 著者は、最近の macOS リリース―特に不安定な「macOS Tahoe」―が継続的なバグと頻繁な UI 変更に悩まされており、システムの安定性やユーザー体験を侵食していると主張しています。主要な問題点は次の通りです: - **Time‑Machine バックアップ** は古いスナップショットが削除されない限り失敗します。 - **Spotlight** のタグインデックスは不完全な結果しか返さず、インデックスを再構築したり Finder を再起動しても部分的にしか解決しません。 - **Finder** は Spotlight クエリ中や検索結果の更新時にハングします。また、外部ファイルが作成された後にフォルダ内容を更新できず(*Go To Folder* やパスオートコンプリートといった回避策も限定的で、しばしば Finder の再起動が必要になります)。 - **AirPods Pro** は約 1 秒後に音声の不具合を起こし、ファームウェアや OS アップグレードでは問題は解決されません。 - **全画面ウィンドウ** は Cmd + Tab で切り替えるとフォーカスが失われ、キーボードショートカットが機能せず、ウィンドウをクリックするまで Safari のビデオコントロールに影響します。 これらの問題は複数の macOS リリースおよび Mac モデル(著者自身の M1 Max 2021 を含む)で継続しており、Apple 自身のコンポーネントに起因することを示しています。著者は、アイコン変更やダークパターン UI の微調整といった Apple の迅速な美観修正が長期的信頼性を損ねる可能性があると警告しています。将来のアップデートでバグが対処されることは期待できるものの、安定性よりも視覚的洗練を優先することへの懸念があります。 **Rosetta 2 の段階的廃止** は ARM64 Linux コンテナサポートに依存している開発者にとってさらに悪影響を及ぼし、アプリケーションの互換性を脅かす恐れがあります。総じて、著者は Apple に対し、短期的な美観更新よりもソフトウェア安定性、謙虚さ、および長期的利用価値に再集中するよう訴えています

2026/03/03 5:30

ブリティッシュコロンビア州、時刻変更を廃止し一年中サマータイムを採用

## Japanese Translation: ### 改訂要約 ブリティッシュコロンビア州は、2026年11月1日付で「太平洋時間(Pacific Time)」と呼ばれる夏時間を永久に採用し、それ以降の時刻変更をすべて終了します。デービッド・エビー首相は月曜日にこの決定を発表し、3月8日(最後の春先進調整)が最終的な移行となると述べました。この動きは、2019年の公衆意見調査で回答者の93%が健康・安全上の理由から永久夏時間を支持したことに続くものです。エビー氏は子供やペットの睡眠不足、二度の時刻変更による車両事故増加を強調しました。歴史的に、BC州は1918年以降に時刻を切り替えてきました(法務長官ニキ・シャルマ氏が指摘)。州政府は最終変更前に住民に8か月の調整期間を設け、カリフォルニア州、オレゴン州、ワシントン州といった米国隣接州にも同様の法案採択を促しています。東部BC地域(例:デイソンクリーク)はすでに年間を通じて山岳標準時を観測しているため除外されます。新制度下では、バンクーバーの永久夏時間で最も早い日の出は6月5:06 AM、最も遅い日は12月9:08 AMです。夕暮れは12月5:14 PMから6月9:22 PMまで変動します。この変更は生活品質の向上、事故リスクの低減、およびイエローナイフ州と同じ年間を通じて夏時間を採用することでBC州を調和させることを目的としています。

**M4 Apple Neural Engine の内部 ― 第1部:リバースエンジニアリング** | そっか~ニュース