ダウンロードしたSDKからCortex-M33ファームウェアをビルドするための手順( セクション6.2.7 )に従おうとしています。
GNU arm toolchain 13.xを使用して、デモアプリケーションをコンパイルできます
ethosu_apps
しかし、私がそれを実行したときのubootから、CortexM33のCOM /シリアルポートにエラーログが表示されています
==================
Arm Ethos-Uの初期化
E: 推論中に NPU エラーが発生しました。(ethosu_driver.c:542)
E: NPU status=0x00000804, qread=0, cmd_end_reached=0 (ethosu_device_u55_u65.c:182)
ノード ethos-u (番号 0) は、ステータス 1 で呼び出しに失敗しました
E: 推論の呼び出しに失敗しました: job=job (inference_process.cpp:281)
推論ステータス: 失敗
==================
私はそれがそのまま機能すると思っていました、誰かがここで私を助けることができますか?
ありがとう@Chavira。
付属のパッチを使用すると、label_image期待どおりに機能していることがわかります。
ありがとう@Chavira、
提案された変更により、ubootから起動したときに期待どおりに機能しているように見えるethosu_apps.binを確認できます。
私が投稿で言及した問題を調べる機会はありますか?
迅速な対応を見るのはうれしいです。
> cd /usr/bin/tensorflow-lite-2.16.2/examples
> vela mobilenet_v1_1.0_224_quant.tflite
> ./label_image -m output/mobilenet_v1_1.0_224_quant_vela.tflite -i grace_hopper.bmp -l labels.txt --external_delegate_path=/usr/lib/libethosu_delegate.so上記の手順は、デフォルト/元のethosu_firmwareで私にとっては問題なく機能します(以下)、
/usr/bin/tensorflow-lite-2.16.2/examples# ./label_image -m output/mobilenet_v1_1.0_224_quant_vela.tflite -i grace_hopper.bmp -l labels.txt -external_delegate_path=/usr/lib/libethosu_delegate.so
INFO: Loaded model output/mobilenet_v1_1.0_224_quant_vela.tflite
INFO: resolved reporter
INFO: before CreateAllDelegates
INFO: Ethosu delegate: device_name set to /dev/ethosu0.
INFO: Ethosu delegate: cache_file_path set to .
INFO: Ethosu delegate: timeout set to 60000000000.
INFO: Ethosu delegate: enable_cycle_counter set to 0.
INFO: Ethosu delegate: enable_profiling set to 0.
INFO: Ethosu delegate: profiling_buffer_size set to 2048.
INFO: Ethosu delegate: pmu_event0 set to 0.
INFO: Ethosu delegate: pmu_event1 set to 0.
INFO: Ethosu delegate: pmu_event2 set to 0.
INFO: Ethosu delegate: pmu_event3 set to 0.
INFO: EXTERNAL delegate created.
INFO: EthosuDelegate: 1 nodes delegated out of 1 nodes with 1 partitions.
INFO: Applied EXTERNAL delegate.
INFO: settings->number_of_warmup_runs 2
INFO: invoked
INFO: average time: 3.762 ms
INFO: Predicted label = 907しかし、デフォルトのものをコンパイル済みのものに置き換えると、エラー(下記)が表示され、M33コンソールでログが表示されます。私の期待は、コンパイルされたethosu_firmware推論が成功するはずだということです
/lib/firmware/# reboot
/lib/firmware/# cp ethosu_apps_rpmsg.elf ethosu_firmware
/usr/bin/tensorflow-lite-2.16.2/examples# ./label_image -m output/mobilenet_v1_1.0_224_quant_vela.tflite -i grace_hopper.bmp -l labels.txt -external_delegate_path=/usr/lib/libethosu_delegate.so
INFO: Loaded model output/mobilenet_v1_1.0_224_quant_vela.tflite
INFO: resolved reporter
INFO: before CreateAllDelegates
INFO: Ethosu delegate: device_name set to /dev/ethosu0.
INFO: Ethosu delegate: cache_file_path set to .
INFO: Ethosu delegate: timeout set to 60000000000.
INFO: Ethosu delegate: enable_cycle_counter set to 0.
INFO: Ethosu delegate: enable_profiling set to 0.
INFO: Ethosu delegate: profiling_buffer_size set to 2048.
INFO: Ethosu delegate: pmu_event0 set to 0.
INFO: Ethosu delegate: pmu_event1 set to 0.
INFO: Ethosu delegate: pmu_event2 set to 0.
INFO: Ethosu delegate: pmu_event3 set to 0.
INFO: EXTERNAL delegate created.
INFO: EthosuDelegate: 1 nodes delegated out of 1 nodes with 1 partitions.
INFO: Applied EXTERNAL delegate.
INFO: settings->number_of_warmup_runs 2
ERROR: Ethos_u inference failed
ERROR: Node number 1 (EthosuDelegate) failed to invoke.
ERROR: Failed to invoke tfliteどちらの場合も、M33 COMポートに予期されるログが表示されます
2. LinuxからM33実行可能ファイルを実行する、つまり「remoteproc0」を使用することについての私の観察は、あなたとまったく同じです。
3.推論ランナーは、ethosuで推論を実行する別の例です。この例は、ステップ#1の両方のファームウェアで機能するようです
#cd /usr/bin/ethosu/examples
#./inference_runner -d /dev/ethosu0 -n output/mobilenet_v1_1.0_224_quant_vela.tflite -i grace_hopper.bmp -l labels.txt -o output_data_detection -t 1080000000チャビラ、確認していただきありがとうございます。ethosu_appsに
ethosu_apps_rpmsgについて少し説明が必要です が、あなたの側で確認していただけますか?
私が何をしたのか?
1. 2.16 SDK ビルド ethosu_apps_rpmsg アプリケーションの使用
2. Linuxを起動し、ethosu_firmware#1のELFに置き換えます
3. LinuxからEtosuでデフォルトの推論テストを実行する
./label_image_release -m 出力/mobilenet_v1_1.0_224_quant_vela.tflite -i grace_hopper.bmp -l lab
情報:ロードされたモデル出力/ mobilenet_v1_1.0_224_quant_vela.tflite
情報:解決済みの報告者
情報: CreateAllDelegates の前
情報: Ethosu delegate: device_name /dev/ethosu0 に設定されます。
情報: Ethosu delegate: cache_file_path に設定されています。
情報: Ethosu delegate: タイムアウトが 600000000000 に設定されました。
情報: Ethosu delegate: enable_cycle_counter 0 に設定されています。
情報:Ethosuデリゲート:enable_profiling 0に設定されています。
情報:エトスデリゲート:profiling_buffer_size 2048に設定されています。
情報: Ethosu delegate: pmu_event0 0 に設定されています。
情報: Ethosu delegate: pmu_event1 0 に設定されています。
情報: Ethosu delegate: pmu_event2 0 に設定されています。
情報: Ethosu delegate: pmu_event3 0 に設定されています。
情報: EXTERNAL デリゲートが作成されました。
情報: EthosuDelegate: 1 つのパーティションを持つ 1 つのノードから 1 つのノードが委任されました。
情報: EXTERNAL デリゲートを適用しました。
情報:settings->number_of_warmup_runs 2
エラー: Ethos_u推論に失敗しました
エラー: ノード番号 1 (EthosuDelegate) の呼び出しに失敗しました。
エラー: tflite を呼び出せませんでした!
4. M33 com-portのログを観察する
デフォルトのethosu_firmware実行可能ファイルと比較すると、ログは同じであることがわかります
追伸:
inference_runnerコマンドは私のethosu_firmwareで正常に機能します
./inference_runner-d /dev/ethosu0 -n 出力/mobilenet_v1_1.0_224_quant_vela.tflite -i grace_hopper.bmp -l labels.txt -o output_data_detection -t 1080000000
ご回答ありがとうございます。
私はimx93_evkのSDKを使用しています(imx93_qsbではありません)、違いがあるかどうかはわかりません。
>TFTPの0x80000000 ethosu_apps.bin
>cp.b 0x80000000 0x201e0000 0x20000
>bootaux 0x1ffe0000 0
ubootで環境変数を設定していますか?手順が足りない場合はお知らせください。
追伸:
sdk の ethosu_apps_rpmsg アプリケーションは、ethosu_firmware と同様に動作していません