2019年10月8日火曜日

Edge TPUでDeepLabv3のベンチマークを測定する(September 2019 Updates)

目的


Edge TPUの September 2019 Updates で公開された DeepLab v3 modelのベンチマークを行う。


動機


前回のブログでは、DeepLabのTF-Lite, Edge TPU Modelについて、tflite::Interpreter::SetNumThreadsを変えることによって推論時間がどの程度変化する計測した。

今回、Edge TPUの September 2019 Updates でDeepLab v3 modelが公開されたことと、Edge TPU Compilerがアップデートされ、DeepLab v3 Edge TPU modelでCPU側にオフロードされるOpeが少なくなったことから、再度ベンチマークを行ってどの程度、推論時間が早くなっているのかを確認した。






まとめ


  • Edge TPU Compilerのアップデートによって、推論時間が短縮していることが確認できた。とてもすばらしい!
  • 前回、効果が確認できた「TFlite interpreterのスレッド数を増やすこと」の効果が小さくなった。これは、CPU側にオフロードされるOpeが少なくなったためである。
  • TF-Lite modelについては、Jetson NanoについてTensorFlow2.0で確認したが前回同じ結果であった。ただ、masterブランチにはARM32の最適化が入っていてRaspberry Piでどうなるか?確認したいところ。


ベンチマーク方法


ベンチマーク方法は前回と同様で、ソースコードはGithubにアップしている。
DeepLab v3 modelについては、公式がリリースしたものを使用。




各種バージョン情報


  • Edge TPU Compiler:  2.0.267685300
  • Edge TPU Runtime: 2.12.1
  • TensorFlow: v2.0.0


前回とのモデルの比較


前回モデルをコンパイルしたときのログから比較してみる(画像しか残っていない...)。

前回(version  2.0.258810407)では、以下のOpeがCPU側にオフロードされいる。
  • ADD: 2個
  • AVERAGE_POOL_2D: 1個
  • CONCATENATION: 1個
  • CONV_2D: 9個
  • DEPTHWISE_CONV_2D: 3個
  • RESIZE_BILINEAR: 3個
  • ARG_MAX: 1個

今回(version 2.0.267685300)では、CPUにオフロードされている個数がかなり減っていることが確認できる。
  • CONCATENATION: 1個
  • CONV_2D: 2個
  • RESIZE_BILINEAR: 3個
  • ARG_MAX: 1個
特にADD、AVERAGE_POOL_2D、DEPTHWISE_CONV_2DのOpeはすべてEdge TPU側で実行されるようになった。


Edge TPU Compiler 2.0.258810407でDeeplab v3をコンパイル

Edge TPU Compiler 2.0.267685300でDeeplab v3をコンパイル


ベンチマーク結果


DeepLab v3のEdge TPU Modelとデバイスごとの推論時間(単位:ms)
SetNumThreadsの効果は多少はあるが、ほとんどかわらないことが分かる。
depth multiplier=0.5と1.0を比べるとほとんど差がなくなっている。
(TF-Lite modelについては、前回と変化ないため割愛)


Model
SetNumThreads
Device
Raspberry Pi 3 B+Jetson Nano
Edge TPU Model
deeplabv3_mnv2_dm05_pascal_edgetpu.tflite

MobileNet-v2
Depth-Multiplier = 0.5
1281140
2271130
3255125
4255125
deeplabv3_mnv2_pascal_edgetpu.tflite

MobileNet-v2
Depth-Multiplier = 1.0
1308146
2273135
3265132
4263133


前回との比較をしてみる。
特にdepth multiplier=1.0(グラフの右)の改善の効果が大きい。

前回のモデルとの推論時間の比較(ラズパイ+USB Accelerator)

前回のモデルとの推論時間の比較(Jetson Nano+USB Accelerator)


その他


  • Edge TPU Compilerがアップデートされたということは、他のモデルも推論時間の改善があると思われる。要確認。

0 件のコメント:

コメントを投稿