Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エッジ・クラウド推論を支える 技術スタックの展望 / inference on edge an...

OPTiM
October 24, 2019

エッジ・クラウド推論を支える 技術スタックの展望 / inference on edge and cloud 2019

OPTiM

October 24, 2019
Tweet

More Decks by OPTiM

Other Decks in Programming

Transcript

  1. Copyright © OPTiM Corp. All Right Reserved. 2 奥村 @izariuo440

    OPTiM Corporation / R&D Team​ 2001年入社 コンピュータビジョン 高速推論 以前は Optimal Remote など 自己紹介 学生時代に作ったゲーム(18年前) 最近の Windows では動かないが Wine で動く
  2. Copyright © OPTiM Corp. All Right Reserved. 4 話す内容 ※

    図は「Production ML Systems | Machine Learning Crash Course」から引用 https://developers.google.com/machine-learning/crash-course/production-ml-systems ここの CV 推論関連
  3. Copyright © OPTiM Corp. All Right Reserved. 6 技術スタック ソフトウェア

    NVIDIA GPU、Coral Edge TPU、Cloud TPU、 Mobile GPU、CPU、 Video Core IV、FPGA、Movidius NCS
  4. Copyright © OPTiM Corp. All Right Reserved. 7 技術スタック TensorFlow、Chainer、PyTorch、

    TensorRT、TVM、OpenCV、 FFmpeg、gstreamer、DeepStream、MediaPipe NVIDIA GPU、Coral Edge TPU、Cloud TPU、 Mobile GPU、CPU、 Video Core IV、FPGA、Movidius NCS
  5. Copyright © OPTiM Corp. All Right Reserved. 8 技術スタック TensorFlow、Chainer、PyTorch、

    TensorRT、TVM、OpenCV、 FFmpeg、gstreamer、DeepStream、MediaPipe NVIDIA GPU、Coral Edge TPU、Cloud TPU、 Mobile GPU、CPU、 Video Core IV、FPGA、Movidius NCS
  6. Copyright © OPTiM Corp. All Right Reserved. 9  ハードウェア

    • 昨年度暮れからエッジ推論に適した安価なデバイスが台頭 • NVIDIA はさらなる高性能化、低消費電力化が進む • Tesla T4 は 70W の消費電力、 INT4 搭載 • Jetson Nano は 5 ~ 10 W の消費電力、激安 • Coral Edge TPU はエッジ推論特化、2W の消費電力、激安、10/22 にβ脱出 • libedgetpu.so が libc++ ではなく libstdc++ でビルドされるようになった 最近の動向 (1/3)
  7. Copyright © OPTiM Corp. All Right Reserved. 10  ソフトウェア

    • 深層学習フレームワークは TensorFlow と PyTorch が二大巨塔に • PyTorch は新しい論文でデファクト化しつつあるような・・・ • クラウド、エッジ、モバイルなどさまざまな環境での推論が可能になりつつある • 高速推論は TensorRT に存在感あり、TVM も見逃せない • リアルタイム映像解析はパイプライン処理が可能な gstreamer ベースが主流に • DeepStream は gstreamer ベース、MediaPipe は gstreamer を参考にしている 最近の動向 (2/3)
  8. Copyright © OPTiM Corp. All Right Reserved. 11  物体検出モデル

    • 精度なら Two-Stage Detectors (Faster R-CNN)、 速度なら Single-Stage Detectors (YOLO/SSD) は変わらず • SSD に姿勢推定で使われるヒートマップベースの手法が取り入れられつつある • Objects as Points、CenterNet、TTFNet など - ただし DCN v2 が多用されてて何が寄与しているか分かりづらいのはつらい • 高解像度画像でもパッチに分解してヒートマップを合成すれば無理のない検出がしやすい • TTFNet は精度と速度のバランスがとれており、訓練時間もかなり短くなっていてナイス、DCN v2 も3つだけ • 顔検出は MobileNet を Backbone とした軽量、高速、高精度なモデルが台頭 • RetinaFace やその派生 (RFBNet を取り入れたもの) 最近の動向 (3/3)
  9. Copyright © OPTiM Corp. All Right Reserved. 12 何を考慮して取り組んでいくのか 

    「速度」と「精度」を基本指標としている。これらはトレードオフの関係があり、現状のGPU スペックではどちらかが犠牲になりやすい。  推論に必要なハードウェアは高価なものも多いので、速さは正義である。 クラウドでも高集約化につながる。目指せ C10K。  多くの手法は、一般的な深層学習フレームワークを使って実装されており、推論向けに最適化さ れていない場合が大半である。  TensorRT や TVM などをうまく活用すれば、一般的な深層学習フレームワークの推論の数倍の 推論速度が達成できる可能性がある。  ハードウェアの進化が非常に速いので、早期にキャッチアップできなければそれだけでチャンス を逃す可能性が高い。
  10. Copyright © OPTiM Corp. All Right Reserved. 13  C/C++

    • TensorRT、TFLite、LibTorch、画像や動画を扱うライブラリ (libjpeg とか) • CMake を使うことが多い、Jetson など aarch64 向けへのクロスコンパイルも  Rust • 安全かつ高速なパイプラインフレームワークの構築 • sys crate を用意することが多い、クロスコンパイルは autotools 注意、.carg/config の linker 指定を忘れずに  Python • モデルの訓練や INT8 キャリブレーションのためのスクリプトなど • pybind は CMake と仲がいいが、wheel 作るときはちょっとつらい  CUDA • 前処理・後処理の最適化や、TensorRT に足りないオペレータの実装  Java/Kotlin/Objective-C/Swift • モバイル向けの開発 これらを開発するための言語など