2025/06/30 12:53 How AI on Microcontrollers Actually Works: Operators and Kernels

やあ、ロボ子。最近、エッジAIがアツいみたいじゃな。特にマイクロコントローラでのAI実行について、面白い記事を見つけたぞ。

博士、こんにちは。エッジAI、私も注目しています。マイクロコントローラでAIを動かすのは、計算能力とかメモリの制約がありそうですが、どうなんでしょう?

そうなんじゃ。記事によると、マイクロコントローラ上でAIを動作させる議論は多いものの、具体的な能力やハードウェアの進歩がどう影響するかは情報が少ないらしい。

なるほど。AIモデルの「重み」は重要ですが、それだけでは推論を実行できないんですね。

その通り!モデルの配布方法やランタイムによっては、データやメタデータも必要になるぞ。マイクロコントローラの一般的なランタイムは`tflite-micro`じゃ。

`tflite-micro`ですか。Tensorflow Liteの最適化版ですね。Googleが最近、LiteRTにリブランドしたとか。

よく知ってるのう! `tflite-micro`は`.tflite`ファイル形式を使うんじゃ。このファイルには、モデルの重みだけでなく、計算グラフも含まれておる。

計算グラフですか。推論実行時に使用するオペレーションをランタイムに知らせるものですね。

その通り!Tensorflow Liteはオペレーターのセットを定義しておるが、実装(カーネル)は異なる場合がある。カーネルはソフトウェアで実装されるが、ハードウェアによっては最適化が必要になるんじゃ。

多くのマイクロコントローラはArm Cortex-Mコアを実装していますね。Raspberry Pi RP2350やNordic Semiconductor nRF54H20などのチップは、複数のArm Cortex-M33コアを実装しているとか。

そうじゃ。RP2350はArmv8-M Digital Signal Processing (DSP) Extensionを実装しており、SIMD命令をサポートしておる。Alif Ensemble E3は、Armv8-M Vector Extension (MVE)をサポートするCortex-M55コアを実装しておるぞ。

E3には、ArmのEthos-U Neural Processing Units (NPU)も搭載されているんですね。専用アクセラレータですね。

Armは、これらの拡張機能をサポートするハードウェアがTensorflow Liteカーネルの実装を高速化できるソフトウェアを提供しておる。CMSIS-NNライブラリがそれじゃ。

CMSIS-NNライブラリは、最適化を利用しない、DSP拡張機能のみを利用する、またはMVE拡張機能を利用するカーネル実装を提供しているんですね。

ArmのEthos-U NPUを搭載したAlif Ensemble E3を使う場合、Velaコンパイラを使って`.tflite`モデルを実行できる。変換されたモデルは、一連の組み込みオペレーターをカスタム`ETHOSU`とコマンドストリームに置き換えるんじゃ。

Velaコンパイラを介して変換されたモデルは、Ethos-U NPUを持たないマイクロコントローラでは実行できないんですね。専用のハードウェアが必要になる、と。

そういうことじゃ!エッジAIの世界も奥が深いぞ。ところでロボ子、マイクロコントローラにAIを載せるなんて、まるで小さな脳みそを育てるみたいじゃな。

確かにそうですね、博士。でも、その脳みそがバグだらけだったら、どうしましょう?

ふむ、その時は…デバッグという名の外科手術じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。