7.11. NPU

H7 と RT1062 は、TFLMCMSIS-NN を通じて Cortex-M CPU 上で推論を実行します。AE3 と N6 は同じダイ上に専用の NPU を追加します。これは固定シリコン上のテンソルパイプラインであり、CPU を占有することなく重い演算子を実行します。OpenMV のラインアップにある 2 つの NPU は異なるベンダー由来で、ツールチェーンも異なりますが、カメラは両方を同じ ml.Model API を通じて公開します。異なるのはディスク上のファイルと、それをたどるランタイムです。

7.11.1. AE3 — Arm Ethos-U55

AE3 は、Cortex-M55 アプリケーションコアと同じダイ上に Arm の Ethos-U55 NPU を搭載しています。Vela はそのためにモデルを準備するオフラインコンパイラで、標準的な .tflite を入力として受け取り、NPU 対応のサブグラフが、NPU が実行するバイトコマンドを保持するカスタムの Ethos-U 演算子に折り込まれた .tflite を出力します。推論時、TFLM は通常どおりファイルをたどります。Ethos-U 演算子はそのバイトコマンドを Ethos-U ドライバを通じてディスパッチし、Vela が折り込まなかった演算子は M55 上の CMSIS-NN にフォールバックします。

7.11.2. N6 — ST Neural-ART

N6 は ST の Neural-ART NPU を搭載し、TFLM の代わりに STAI(そのための ST のランタイム)を実行します。STEdgeAI はオフラインコンパイラで、モデルを入力として受け取り、Neural-ART ハードウェア向けにレイアウトされた再配置可能なネットワークブロブを出力します。STAI はそのブロブを ROMFS から読み込み、NPU 上で直接たどります。演算子のカバー範囲は、STEdgeAI がその部品に対してサポートしている範囲によって決まります。

7.11.3. 同じスクリプト、異なるカメラ

どちらの NPU も、CPU で実行するモデルと同じ入力テンソルと出力テンソルを、同じ量子化パラメータで公開します。あるカメラ向けに書かれたスクリプトは、別のカメラの NPU 向けに準備されたモデルファイルを読み込むことで、そのカメラ上でも動作します。検出のしきい値、ROI の扱い、ポストプロセッサの結線といったスクリプトレベルの判断は変わりません。