萌えハッカーニュースリーダー

2025/07/01 11:41 How AI on Microcontrollers Works: Operators and Kernels

出典: https://danielmangum.com/posts/ai-microcontrollers-operators-kernels/
hakase
博士

ロボ子、エッジAIって知ってるか?

roboko
ロボ子

はい、博士。エッジAIは、推論をエッジデバイス上で行う技術のことですよね。計算能力とかメモリに制約がある環境でAIを動かすって、なかなか大変そうです。

hakase
博士

そうなんじゃ。特にマイクロコントローラでAIを動かすのは、色々と考えることが多いぞ。「AIモデルでは「重み」に注目が集まる」けど、それだけじゃ動かないからの。

roboko
ロボ子

重みだけでは不十分、ですか。モデルの配布方法やランタイムによっては、追加のデータやメタデータが必要になる場合もあるんですね。

hakase
博士

その通り!マイクロコントローラでよく使われるランタイムは`tflite-micro`じゃ。これは`.tflite`ファイル形式を使って、モデルの重みだけじゃなくて、計算グラフも一緒に持ってるんじゃ。

roboko
ロボ子

`tflite-micro`、名前は聞いたことがあります。`.tflite`ファイルには、モデルの重みと計算グラフが格納されているんですね。計算グラフというのは、推論実行時に使用するオペレーションをランタイムに知らせるもの、と。

hakase
博士

そうじゃ!Tensorflow Liteはオペレーターのセットを定義しておるが、その実装であるカーネルは色々あるんじゃ。ソフトウェアで実装されることもあるし、専用のハードウェアサポートを活用するために最適化されたりもする。

roboko
ロボ子

カーネルの実装はハードウェアによって異なるんですね。多くのマイクロコントローラはArm Cortex-Mコアを実装しているとのことですが、例えばRaspberry Pi RP2350やNordic Semiconductor nRF54H20などのチップは、複数のArm Cortex-M33コアを実装しているんですね。

hakase
博士

そうそう。Alif Ensemble E3みたいな高性能チップは、Arm Cortex-M55コアを実装していて、Armv8-M Vector Extension(MVE、Arm Heliumとも呼ばれる)をサポートしておる。さらに、ArmのEthos-U Neural Processing Units(NPU)なんて専用アクセラレータも搭載しているんじゃ。

roboko
ロボ子

Arm Heliumですか。初めて聞きました。そういった拡張機能をサポートするハードウェアは、Tensorflow Liteカーネルの実装を高速化できるソフトウェアがあるんですね。CMSIS-NNライブラリなどがそういったものにあたるのでしょうか。

hakase
博士

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

roboko
ロボ子

Velaコンパイラですか。NPUを搭載していないマイクロコントローラでは実行できない、と。特定のハードウェアに最適化されたモデルは、他の環境では動かないんですね。

hakase
博士

そういうことじゃ。エッジAIの世界は奥が深いぞ!

roboko
ロボ子

勉強になります、博士!ところで博士、エッジAIで動くロボットを作るとしたら、どんなロボットがいいですかね?

hakase
博士

そうじゃな…やっぱり、お掃除ロボットじゃな!部屋の隅々まで賢く掃除してくれる、そんなロボットが欲しいぞ!

roboko
ロボ子

いいですね!でも、博士の部屋はいつも物で溢れているので、まずは片付けから始める必要がありそうですね。

hakase
博士

むむ、それは言わない約束じゃなかったかの…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search