Contenu connexe
Similaire à モバイル向けEdgeTPUの紹介 (20)
モバイル向けEdgeTPUの紹介
- 3. Mobility Technologies Co., Ltd.
3
TPUとは
- TPU(Tensor Processing Unit)は、AI処理を高速化するためにGoogleが開発したプロセッサで、主にクラウドサービ
ス側での使用を想定したものでした。
Google TPU v2
https://blog.inten.to/hardware-for-deep-learning-part-4-
asic-96a542fe6a81
Google TPUの特徴:
● 巨大なオンチップRAMを備えている。メモリのアクセス時間を減らします。
● 8ビット 量子化(8 bit quantization)。32ビットのfloating-pointの計算の代わりに8ビット
のinteger 計算が実行される。ある程度の精度を犠牲に、効率を改善します。
● Systolic arrayというアーキテクチャを使用します。
● 「積和演算」などの特定の操作用に配線されている。ディープラーニングによく適用
できます。
● 良い冷却システムがあり、リソースコストを節約できます。
- 4. Mobility Technologies Co., Ltd.
4
TPU vs GPU
Nvidia Tesla Volta 100のGPUと比べてTPU v2の性能は明らかに高いとは言えない
がコストを減らすことは明らかです。
https://www.hpcwire.com/2018/04/30/riseml-benchmarks-google-tpuv2-
against-nvidia-v100-gpu/
https://qiita.com/nishiha/items/32276cc77b27383c825f
- 5. Mobility Technologies Co., Ltd.
5
EdgeTPUとは
- Edge TPUはエッジ端末用に開発されたデバイスで、8ビットの演算のみをサポートしています。高速に機械学習ラ
イブラリ(TensorFlow Lite)を実行させることができ、たとえば高解像度の動画上でフレームごとに複数のAIモデルを
30フレーム/秒で同時に実行させることができます。
今も様々なデバイスがリリースされています。
Edge teamのchallenge weekでDev Boardを購入して、自社Modelの推
論評価を担当しました。
https://coral.ai/docs/dev-board/get-started/#flash-the-board
- 6. Mobility Technologies Co., Ltd.
6
EdgeTPUの使い方
● Edge TPUのデバイスとTensorFlow liteが緊密的に繋がります。
● TensorFlow Liteのおかげで、モバイル、組み込み、IoTデバイスで
TensorFlowモデルを変換して実行できるようになります。
https://blog.tensorflow.org/2018/03/using-
tensorflow-lite-on-android.html
- 7. Mobility Technologies Co., Ltd.
7
EdgeTPUの使い方
★ Edge TPUに向けて、TensorFlowモデルの導入フロ
ーは以下のようになる:
https://coral.ai/docs/edgetpu/models-intro/#compatibility-overview
- 8. Mobility Technologies Co., Ltd.
8
EdgeTPUの使い方
1. Dev BoardとUSB Acceleratorで推論速度が変わっていないことからCPU自体のスペックにはほとんど
影響しないということがこの表からわかります。
2. また同じハードでモデル同士を比較するとDesktop CPUにおけるInception v4からMobile Net V1は16
倍速くなっているといえますが、Dev Boardの場合だと45倍速くなっていると計算できます。
https://cdn-images-
1.medium.com/max/1024/1*pCYQHA_PmF2_awq2c
oMJvg.png)
- 9. Mobility Technologies Co., Ltd.
9
EdgeTPUの使い方
demo:PyCoralAPIを使用してモデルを実行します。
https://coral.ai/docs/edgetpu/tflite-
python/#overview
- 10. Mobility Technologies Co., Ltd.
10
EdgeTPUを用いてエッジModel推論評価
エッジのonnxモデルからEdgeTPUモデルまで二つの変換方法試しました:
1. onnx → tf → TFlite→edge_tpu.tflite:
converter = tf.lite.TFLiteConverter.from_saved_model(pb_model_save_path)
1. onnx → keras→ TFlite→edge_tpu.tflite:
converter = tf.lite.TFLiteConverter.from_keras_model(keras_model)
⭐️edge_tpuでうまく動くために、モデルはTFliteにコンパイルする場合量子化が必
要
- 11. Mobility Technologies Co., Ltd.
11
EdgeTPUを用いてエッジ推論評価ベンチマーク
自社Edge製品に搭載されているDSP、GPU、およびDevBoardのEdgeTPUのランタイムを用いて自
社モデルの推論速度のベンチマークを行いました。
● model1とmodel2:edge_tpuの推
論速度はgpuとdspより明らかに速
いと分かります。
● model3:edge_tpuの推論速度は
gpuとの比較ではほぼ同等(か少
し遅い)になっていますが、それ
はmodel3のアーキテクチャがgpu
Runtimeに最適化されていること
が1つの要因としてありそうです。
- 12. Mobility Technologies Co., Ltd.
12
まとめと感想
■ CPUとGPUと違ってTPUは特にディープラーニングのために設計された。巨
大オンチップ RAM を備えているし、Systolic arrayのようなアーキテクチャ
も使用されます。
■ EdgeTPUのcomplierと仕様など複雑ではなく、Python APIとC++ API両方も
使えます。
■ 一部のエッジモデルに対してある程度高速化できる傾向が見られます。