2382593_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2382593_ja-JP

2382593_ja-JP

MCX N947 TFLM モデルランナーによるNeutron変換モデルの推論

TFLM modelrunnerのHTTPを使って、FRDM MCXN947(CPUとNPU)で多数のtfliteモデル(<500KBサイズ)をベンチマークしたいと思っています。

問題は、CPU推論がすべてのモデルで機能せず、NPU推論も全く機能しないことです。

ハードウェア:
- FRDM-MCXN947開発ボード(USBとイーサネットでWindowsマシンにコネクテッド)

ソフトウェアとツールのセットアップ:
- ホスト:Windows 11マシン
- eIQ Neutron SDK: eiq-neutron-sdk-windows-3.0.1
- MCUXpresso SDKs:SDK_26_03_00_FRDM-MCXN947
- SDKsからのプロジェクト:frdmmcxn947_tflm_modelrunner_cm33_core0

CPU推論のためのMLモデル:
- ad01_int8.tflite
- kws_ref_model.tflite
- pretrainedResnet_quant.tflite
- vww_96_int8.tflite

Neutronコンバータ(eIQ Neutron SDKの一部)で変換されたNeutronのMLモデル(NPU推論用):
eiq-neutron-sdk-windows-3.0.1\bin
neutron-converter --target mcxn94x --input ad01_int8.tflite --output ad01_int8_converted_3_0_1.tflite

- ad01_int8_converted_3_0_1.tflite
- kws_ref_model_converted_3_0_1.tflite
- pretrainedResnet_quant_converted_3_0_1.tflite
- vww_96_int8_converted_3_0_1.tflite

実施されたステップ
1. 最新のeIQ Neutron SDKライブラリでeIQプロジェクトを更新する
コピー先:
eiq-neutron-sdk-windows-3.0.1\target\mcxn94x\common\include\NeutronErrors.h
eiq-neutron-sdk-windows-3.0.1\target\mcxn94x\driver\include\NeutronDriver.h
eiq-neutron-sdk-windows-3.0.1\target\mcxn94x\mcxn\libNeutronDriver.a
eiq-neutron-sdk-windows-3.0.1\target\mcxn94x\mcxn\libNeutronFirmware.a

に:
frdmmcxn947_tflm_modelrunner_cm33_core0\include\NeutronErrors.h
frdmmcxn947_tflm_modelrunner_cm33_core0\driver_include\NeutronDriver.h
frdmmcxn947_tflm_modelrunner_cm33_core0\mcxn\libNeutronDriver.a
frdmmcxn947_tflm_modelrunner_cm33_core0\mcxn\libNeutronFirmware.a

2. vscodeを使用してプロジェクト「frdmmcxn947_tflm_modelrunner_cm33_core0」をビルドしてフラッシュします。

3. フラッシュ済みのTFLM Modelrunnerを使用してHTTP経由で推論を実行します。
指示:
curl -X PUT http://192.168.178.75:10818/v1-F "block_content=@C:\\ad01_int8.tflite"

シリアルモニター経由の出力:
....
実行時間: 6.167000ms

指示:
curl -X PUT http://192.168.178.75:10818/v1-F "block_content=@C:\\vww_96_int8.tflite"

シリアルモニター経由の出力:
....
実行時間: 182.042000ms


他のモデルでは動作しません

出力:
a) フラッシュ後の推論なし:
FLASH 0x104000 消去、プログラム at 104000: 16384 bytes ==
フラッシュ0x108000消去済み、プログラム108000:16384バイト ==
フラッシュ0x10c000 消去、プログラム10c000:16384バイト ==
FLASH 0x110000 消去、プログラム 110000 で:16384バイト ==
フラッシュ0x114000消去済み、プログラム114000:16384バイト ==
FLASH 0x118000 消去、プログラム118000:16384バイト ==
フラッシュ0x11c000消去、プログラム11c000:16384バイト ==
FLASH 0x120000 消去、プログラム at 120000: 16384バイト ==
FLASH 0x124000 消去済み、プログラム124000:16384バイト ==
FLASH 0x128000 消去、プログラム at 128000: 16384 bytes ==
フラッシュ0x12c000消去、プログラム12c000:16384バイト ==
FLASH 0x130000 消去、プログラム at 130000: 16384 bytes ==
フラッシュ0x134000消去済み、プログラム134000:16384バイト ==
FLASH 0x138000 消去、プログラム 138000:544バイト ==

b) フラッシュ処理が全くありません

c) 誤HardFault_Handler

343行目: ldr r0,=HardFault_Handler

SDK_26_03_00_FRDM-MCXN947\mcuxsdk\devices\MCX\MCXN\MCXN947\gcc\startup_MCXN947_cm33_core0.S
デバッガーによって停止されました


どんなヒントでも大歓迎です!

MCX NRe: MCX N947 TFLM Modelrunner Inference of Neutron Converted Models

こんにちは、 @Laurens26さん

問題は純粋な「モデルサイズ」の問題というよりも、バージョンの整合性が混ざっている可能性が高いと思います。

このリンクを参照してもいいと思います。

最新のeIQ Neutron SDKライブラリでeIQプロジェクトを更新する方法

BR

ハリー

Tags (1)
No ratings
Version history
Last update:
‎06-23-2026 02:30 AM
Updated by: