Armadilloフォーラム

tflite_runtimeにつきまして

yuki.shigefuji

2023年11月30日 12時05分

お世話になっております。
Armadilloではtflite_runtime2.8.0でVX delegateで動作する事を確認しておりますが、最新である2.13.0ではVX delegateはサポート外であると認識しております。
これにつきまして以下の質問をしたく存じます
1:今後のAI動作についてどのように考えておられるか
2:弊社では現在movenet_lightningを動作させようとしているが、2.8.0のVX delegateでは動作しない。こちらは動作実績又は動く環境を作成することは考えているか

以上、ご確認よろしくお願いいたします。

コメント

at_ohsawa

2023年11月30日 13時41分

> お世話になっております。
> Armadilloではtflite_runtime2.8.0でVX delegateで動作する事を確認しておりますが、最新である2.13.0ではVX delegateはサポート外であると認識しております。
> これにつきまして以下の質問をしたく存じます
> 1:今後のAI動作についてどのように考えておられるか
> 2:弊社では現在movenet_lightningを動作させようとしているが、2.8.0のVX delegateでは動作しない。こちらは動作実績又は動く環境を作成することは考えているか

NPUでの動作については現在kernelバージョン5.10の長期サポートに対して
対応するものはtflite 2.8.0のみです、新しいバージョンへの対応はSoCベンダー
でも提供されていないため独自に開発は出来ない箇所になります。

2について、とくにMoveNetのlightningのサンプルを予定していませんが、
今2.8で動かした場合にどの演算子が不足になっていますか?
使っているモデルはsinglepose-lightning-tflite-int8ですか?それとも
自分でコンバートした他の形式でしょうか?

yuki.shigefuji

2023年11月30日 17時34分

お世話になっております。
質問1の件は承知いたしました。
質問2のモデルはsinglepose-lightning-tflite-int8を使用しております。
演算子の不足は確認がこちらでは現在難しいため方法をご存じであればご教授頂ければ幸いです。

以上、ご確認よろしくお願いいたします。

> > お世話になっております。
> > Armadilloではtflite_runtime2.8.0でVX delegateで動作する事を確認しておりますが、最新である2.13.0ではVX delegateはサポート外であると認識しております。
> > これにつきまして以下の質問をしたく存じます
> > 1:今後のAI動作についてどのように考えておられるか
> > 2:弊社では現在movenet_lightningを動作させようとしているが、2.8.0のVX delegateでは動作しない。こちらは動作実績又は動く環境を作成することは考えているか
>
> NPUでの動作については現在kernelバージョン5.10の長期サポートに対して
> 対応するものはtflite 2.8.0のみです、新しいバージョンへの対応はSoCベンダー
> でも提供されていないため独自に開発は出来ない箇所になります。
>
> 2について、とくにMoveNetのlightningのサンプルを予定していませんが、
> 今2.8で動かした場合にどの演算子が不足になっていますか?
> 使っているモデルはsinglepose-lightning-tflite-int8ですか?それとも
> 自分でコンバートした他の形式でしょうか?

at_akihito.irie

2023年12月1日 18時15分

入江です。

> 質問2のモデルはsinglepose-lightning-tflite-int8を使用しております。

このモデルの中身を見てみましたが、一部のオペレーションを除いて現状のArmadilloの
VX delegateで動作できるように見えます(当方では動作自体は未確認です)。

VX delegate非対応な一部のオペレーションも動作しないわけではなく、その部分だけ処理が
CPUにフォールバックして動作します。

ただし、フォールバックが発生すると多少の速度低下が発生しますので、一度試しに動かしてみて
速度や精度などが十分か検討なさることをおすすめします。

yuki.shigefuji

2023年12月5日 14時33分

お世話になっております。
実機にて速度、精度について下記のようになりました。

interpreter = Interpreter(model_path="lite-model_movenet_singlepose_lightning_tflite_int8_4.tflite", experimental_delegates=[vx_delegate])
ERROR: Fallback unsupported op 53 to TfLite
ERROR: Fallback unsupported op 53 to TfLite
ERROR: Fallback unsupported op 53 to TfLite
ERROR: Fallback unsupported op 88 to TfLite
ERROR: Fallback unsupported op 53 to TfLite
ERROR: Fallback unsupported op 53 to TfLite
ERROR: Fallback unsupported op 88 to TfLite
>>> interpreter.allocate_tensors()
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.

となるので、ご指摘の通りXNNPACK delegateで一部動作する用です。
推論時間については150~200ms平均と低速であり、このままでは想定する使用方法で実装することは難しいため
もう少し高速化できないか調査をしております。
何か改善案や事例などがありましたらお手数ですがご協力いただければ非常に有難く存じます。

> 入江です。
>
> > 質問2のモデルはsinglepose-lightning-tflite-int8を使用しております。
>
> このモデルの中身を見てみましたが、一部のオペレーションを除いて現状のArmadilloの
> VX delegateで動作できるように見えます(当方では動作自体は未確認です)。
>
> VX delegate非対応な一部のオペレーションも動作しないわけではなく、その部分だけ処理が
> CPUにフォールバックして動作します。
>
> ただし、フォールバックが発生すると多少の速度低下が発生しますので、一度試しに動かしてみて
> 速度や精度などが十分か検討なさることをおすすめします。