NordicのIoT Axon NPU( NRF54LM20 )開発キットの回帰モデルデモ(パート3)(Zephyr Linuxセットアップ)

これは、Nordicの受賞歴のある新しいIoT開発キット NRF54LM20-DK のパート3です。
NRF54LM20-DK Nordic Semiconductor ASA | 開発ボード、 キット、プログラマ | DigiKey

この記事では、以前お約束したとおり、DigiKey がこの受賞歴のある人工知能(AI)IoT開発キットをLinuxホスト上でセットアップする方法を解説します。このデモでは、Nordicの NRF54LM20-DK に搭載されているAxon人工知能(AI)ニューラルプロセッシングユニット(NPU)を使用します。ブロック図は以下のとおりです。
NRF54LM20-DK Nordic Semiconductor ASA | 開発ボード、 キット、プログラマ | DigiKey

必要に応じて、以前の記事(パート1パート2)を参照してください。また、必要であれば元のセットアップ手順も参照してください。Linuxホストで適切な設定を行うには、Python仮想環境で以下の手順を実行してください。

(venv) ~/DigiKey_Coffee_Cup/Nordic/$ nrfutil sdk-manager install v3.3.0-preview2

さらに、次のステップに進み、Zephyr OS用のEdge AIシステムをインストールします。

~(venv) /DigiKey_Coffee_Cup/Nordic$ west init -m "https://github.com/nrfconnect/sdk-edge-ai" --mr v2.0.0
 

これで、必要なアップデートを実行する準備が整いました。

(venv) ~/DigiKey_Coffee_Cup/Nordic/zephyrproject/zephyr$ west update

これで、AI IoT開発の世界へ足を踏み入れる準備ができました。

このデモでは、Axon NPU上で実行され、同期推論モードと非同期推論モードの両方をサポートする回帰モデルを実装します。人工知能(AI)についてもっと学びたい方は、この用語を覚えておいてください。キーワードは…

推論

人工知能(AI)の世界に足を踏み入れたいのであれば、この用語(推論)とその真の意味をマントラのように心に刻み、その意味を理解してください。このNordicの受賞歴のあるプラットフォームは、以下の図の右側にあるNordicのEdge AIにより、モノのインターネット(IoT)領域で「推論」を可能とします。

この図は、「推論」処理がクラウドネットワーク領域からIoTデバイスへ移行してきた流れを、左から右へ示しています。細かい専門用語の説明はこのくらいにして、早速始めましょう。まずシェルを開き、最初のAxonニューラルプロセッシングユニット(NPU)アプリケーションのデモをビルドしてみましょう。

(venv)~/DigiKey_Coffee_Cup/Nordic/$ nrfutil sdk-manager toolchain launch --ncs-version v3.3.0-preview2 --shell
Initializing shell environment!
...
...

次に、以下のようにシェル内でアプリケーションをビルドします。


(v3.3.0-preview2) ~/DigiKey_Coffee_Cup/Nordic/$ west build -p always -b nrf54lm20dk/nrf54lm20b/cpuapp edge-ai/samples/axon/hello_axon/
...
...
...

278/278] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:       64772 B      1940 KB      3.26%
             RAM:        8304 B       511 KB      1.59%
        IDT_LIST:          0 GB        32 KB      0.00%
...

以下のように、USB ケーブルを開発キットに接続します。

新しいターミナルを開き、Axonニューラルプロセッシングユニット(NPU)の出力を確認してください。次に、以下のようにNordicの受賞歴のある新しいIoT開発キット NRF54LM20-DK に書き込んでください。
NRF54LM20-DK Nordic Semiconductor ASA | 開発ボード、 キット、プログラマ | DigiKey

(venv) ~/DigiKey_Coffee_Cup/Nordic/zephyrproject/zephyr$ west flash

...
...
etc

-- west flash: rebuilding
[0/3] Performing build step for 'hello_axon'
ninja: no work to do.
[3/3] Completed 'hello_axon'
-- west flash: using runner nrfutil
-- runners.nrfutil: reset after flashing requested
Using board 001051861371
-- runners.nrfutil: Flashing file: /Digikey_Coffee_Cup/nordic/build/hello_axon/zephyr/zephyr.hex
-- runners.nrfutil: Connecting to probe
-- runners.nrfutil: Programming image
-- runners.nrfutil: Verifying image
-- runners.nrfutil: Reset
-- runners.nrfutil: Board(s) with serial number(s) 1051861371 flashed successfully.

システムが正常にプログラムされた場合、minicomターミナルに以下の表示が現れるはずです。

このデモでは、Axon NPUドライバを直接使用して、Axon NPU上でニューラルモデルの推論を行う方法を示します。この回帰モデルは、ZephyrのTensorFlow Lite for Microcontrollers: Hello Worldのサンプルを使用しています。モデルのタスクは、0~2πの範囲で正弦関数を再現することです。

ニューラルシステムの予測結果は、反復ごとに理想値と比較されます。このモデルを記述する TensorFlow Liteファイルは、Axon NPUコンパイラによって処理され、Axon NPUが必要とする形式に変換されます。コンパイル処理の出力は、以下のスナップショットに示すように、重みとバイアス値とともに:src/generated/nrf_axon_model_hello_axon_.hというファイルに保存されます。

/*********************************************************************************
 * Auto-generated nrf Axon compiled neural network model header file.
 * Model Name: hello_axon
 * Axon Neural Network Compiler Version: 0.1.0
 *********************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif

#define NRF_AXON_MODEL_HELLO_AXON_MAX_IL_BUFFER_USED 16
#define NRF_AXON_MODEL_HELLO_AXON_MAX_PSUM_BUFFER_USED 0

#if AXON_COMPILE_TIME_BUFFER_CHECK
static_assert(NRF_AXON_MODEL_HELLO_AXON_MAX_IL_BUFFER_USED < sizeof(nrf_axon_interlayer_buffer), "nrf_axon_interlayer_buffer TOO SMALL!!!!\n");

#endif
// size of axon_model_const_hello_axon: 420
const static struct {
	int8_t l00_weights[16];
	int32_t l00_biasp[16];
	int8_t l01_weights[256];
	int32_t l01_biasp[16];
	int8_t l02_weights[16];
	int32_t l02_biasp[1];

} axon_model_const_hello_axon = {
	.l00_weights = {117,28,17,-31,12,-127,-91,66,-2,-43,-44,-78,97,120,25,-33,},
	.l00_biasp = {14982,6519,-301,-3968,4727,-16256,-11648,10195,-256,-5504,2930,-9984,14255,12647,-844,-4224,},
	.l01_weights = {-18,-4,0,-20,5,23,-17,-20,-26,-8,3,1,0,-6,-8,-11,-36,-21,39,20,-15,-34,-30,-37,-16,-34,49,6,2,-26,-18,-7,0,22,7,-32,-2,-1,-23,6,-25,-17,-127,27,24,-22,-55,1,15,0,-38,-9,14,-20,19,31,4,19,-76,-26,-3,6,-71,-32,13,-20,-16,-34,-21,-9,5,38,26,-28,111,26,-22,30,53,-33,26,-13,-15,25,15,3,27,-31,-34,19,-10,25,-1,-10,27,24,-16,28,-38,27,27,32,-27,26,-11,-1,-106,11,0,1,-51,-34,13,-10,22,-29,-19,-4,14,-23,-6,-21,92,-4,29,2,91,-30,-31,-11,21,-20,-12,0,19,5,-20,12,29,20,14,-25,11,-12,25,0,-41,5,39,2,21,-22,-22,2,-101,0,12,-6,-24,-22,-3,0,20,-3,11,2,-17,-18,6,-18,1,13,6,-26,-9,17,-9,9,-8,-15,33,-1,14,-13,-20,18,38,29,-14,-23,40,24,-32,-5,-13,-12,5,29,29,-5,-3,30,-4,17,-24,7,9,3,18,-14,54,-5,-36,28,-7,-17,-13,-25,111,12,29,0,69,-3,14,-16,11,25,26,-6,-32,25,31,19,54,28,18,-21,59,12,-76,-53,-26,19,-6,-21,-15,6,28,-6,24,-27,-21,-53,12,-12,},
	.l01_biasp = {-13568,-19019,-25096,-19795,13297,9856,-14183,12926,1295,-14380,-2745,14262,3968,23596,29899,-27702,},
	.l02_weights = {33,-91,-117,-54,94,29,-50,66,-99,-50,31,-80,-33,84,47,-127,},
	.l02_biasp = {-44788,},
};


etc.....

この回帰テストのデモのC言語ソースコードは、以下のとおりです。

edge-ai/samples/axon/hello_axon/src/main.c

これで、この革新的なNordicのIoTプラットフォーム上で、Axon NPUドライバを直接使用した新しいAxonニューラルプロセッシングユニット(NPU)のデモは完了です。このシリーズの次回の記事にご期待ください。Embedded World 2026で受賞したこの新しい NRF54LM20-DK 開発キットはDigiKeyで入手可能です。

どうぞ素晴らしい一日を!

この記事はスペイン語でこちらからご覧いただけます。

Este artículo está disponible en español aquí.




オリジナル・ソース(English)