NPU(Neural Processing Unit)の演算性能公表値は2.3[TOPS]です。
本ブログではNPUを使用して実際にベンチマークを行い、推論速度と消費電流を測定した結果を記載します。ベンチマークツールにはTensorflow Liteに含まれるベンチマークツールを使用しました。
以下にハードウェアやソフトウェアの構成等についてまとめていますが、測定結果のみ知りたい方は「測定結果」を、消費電力については「消費電力」をご覧ください。
使用したもの
- Armadillo-IoTゲートウェイ G4
- Armadillo-IoTゲートウェイ G4 ACアダプタ 12V/3.0A
- オシロスコープ DSOX3054A 500MHz Keysight Technologies
- 電流プローブ N2774A Keysight Technologies
- 電流プローブ用電源 N2775A Keysight Technologies
測定項目
消費電流の測定は以下の2項目について行いました。
- アイドル時
- ベンチマーク実行時
アイドル時は、Armadillo-IoT G4でベンチマークを実行する、コンテナを起動して操作していない状態の消費電流を測定しました。
推論時間はカーネルのNPUドライバー内で測定しており、以下のモデルを使用して測定しました。
MobileNet V3はTensorFlow Saved Modelからint8に量子化を行い、TensorFlow Lite形式に変換しました。
準備
使用したArmadillo-IoT G4のソフトウェア構成は以下の通りです。
ソフトウェア | ダウンロード |
---|---|
Armadillo Base OS SWUイメージファイル | v3.15.0-at.2 |
Dockerfile | v1.0.2 |
Tensorflow ベンチマーク | lf-5.10.72-2.2.0 |
測定方法
消費電流測定は以下の写真のように、Armadillo-IoT G4にシリアル通信用のUSBケーブルと、ACアダプタを接続し、ACアダプタに電流プローブを接続しました。
測定結果
測定結果は以下のようになりました。
Armadilloの状態 | 平均消費電流[mA] | 推論時間[ms] |
---|---|---|
アイドル時 | 169 | --- |
MobileNet V1推論 | 351 | 2.218 |
MobileNet V2推論 | 364 | 2.198 |
MobileNet V3推論 | 225 | 10.378 |
Inception V4推論 | 359 | 32.420 |
他のモデルと比較してMobileNet V3の消費電流が低い要因として、推論の計算に使われるNPUのExecution Engineに違いがあることが挙げられます。
i.MX Machine Learning User's GuideのAppendix Eにあるとおり、NPUにはNN(Neural-Network Engine)、TP(Tensor Processor)、PPU(Parallel Processing Unit)のExecution Engineがあり、MobileNet V3のみPPUも使用していました。PPUは並列計算を行うので、他のExecution Engineからデータが送られ、キャッシュにデータが溜まるまで待っている可能性が考えられます。
消費電力
Armadillo-IoT G4 の消費電力は場合によって変化しますので、ここではアイドル時とMobileNet V2推論時の平均消費電流からそれぞれ求めます。
Armadillo-IoT G4 は電源電圧が12[V]であるため、測定結果よりアイドル時の消費電力は2.0[W]、MobileNet V2推論時の消費電力は4.4[W]となります。
推論用のハードウェアを持つ省電力型SoCを使用することで、他社の組み込みボードや推論用のデバイスと比較して、消費電力を抑えつつ推論を含めた処理を行うことができます。