anemll-profile — ANE(Apple Neural Engine)向け CoreMLプロファイラ

AI/ML

概要

anemll-profile は、Apple のハードウェアアクセラレータ ANE(Apple Neural Engine)を対象にした CoreML モデルのプロファイリングツールです。コンパイル済みの CoreML モデル(.mlmodelc / .mlpackage)を解析し、演算単位ごとのコスト見積もりや推論を実行したときの実測スループットを出力します。CLI ベースで Homebrew からインストール可能、あるいはソースからビルドしてシステムにインストールでき、軽量な診断ツールとしてモデル最適化やデプロイ前の評価に役立ちます。

GitHub

リポジトリの統計情報

  • スター数: 6
  • フォーク数: 0
  • ウォッチャー数: 6
  • コミット数: 8
  • ファイル数: 5
  • メインの言語: Objective-C

主な特徴

  • CoreML コンパイル済みモデル(.mlmodelc / .mlpackage)を自動検出して解析。
  • 演算(op)ごとのコスト推定とデバイス配置(ANE/CPU 等)の解析結果を提示。
  • 実際に推論を繰り返して、スループット(throughput)やレイテンシの実測値を計測。
  • Homebrew タップからのインストールと、Makefile によるソースビルドをサポート。

技術的なポイント

anemll-profile のコードベースは Objective-C で記述されており、エントリポイントは anemll_profile.m にまとまっています。ツールはコンパイル済みモデルのディレクトリ構造(.mlmodelc や .mlpackage)を読み取り、Core ML のメタ情報やコンパイル情報を参照して各演算ノードの推定コストや推論時のデバイス割当て(オンチップ ANE、CPU など)を解析する設計と推測されます。さらに、単に静的解析するだけでなく、指定したモデルに対して実際に予測(inference)を複数回実行し、平均スループットや変動を計測することで「理論値」と「実測値」のギャップを可視化します。インストール方法は Homebrew のカスタム tap(anemll/tap/anemll-profile)またはソースからの make && sudo make install を提供し、CI やローカル検証環境へ容易に組み込めます。CLI はモデルパスを与えるだけで自動判別して解析を始めるため、モデル最適化やデバイス配置の判断材料として実用的に使える点が評価できます(内部で Core ML フレームワークや推論ループをどのように扱っているかは実装依存ですが、Objective-C での Core ML 呼び出しやパフォーマンス計測ループを利用していると考えられます)。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • Makefile: file
  • README.md: file
  • anemll_profile.m: file

README に記載されている代表的な使用例:

  • anemll-profile model.mlmodelc
  • anemll-profile model.mlpackage
  • anemll-profile /path/to/model # auto-detects .mlmodelc or .mlpackage
  • anemll-profile -a model.mlmodel…

インストール例:

  • Homebrew: brew install anemll/tap/anemll-profile
  • ソースビルド: make && sudo make install

使いどころと利点

  • ANE を利用して iOS/macOS 上でモデルを高速化したい際、どの演算がボトルネックになっているかを把握できる。
  • CoreML でのデバイス配置(どの層が ANE に割り当てられ、どの層が CPU に残るか)を事前に評価して、モデルのリファクタリングや量子化、レイヤー分割の判断材料とする。
  • エッジデバイス上での推論スループットを実測することで、実際のアプリ要件に対する適合性を確認可能。

まとめ

CoreML と ANE の実動作を把握するための実用的な CLI プロファイラ(軽量で導入が容易)。

リポジトリ情報:

READMEの抜粋:

anemll-profile

ANE (Apple Neural Engine) profiler for CoreML models. Analyzes per-op cost estimates, device placement, and measures actual prediction throughput.

Install

brew install anemll/tap/anemll-profile

Or build from source:

make && sudo make install

Usage

anemll-profile model.mlmodelc
anemll-profile model.mlpackage
anemll-profile /path/to/model          # auto-detects .mlmodelc or .mlpackage
anemll-profile -a model.mlmodel...