SlideShare a Scribd company logo
1 of 17
Download to read offline
Mobility Technologies Co., Ltd.
モバイル(エッジ)向け

ニューラルネットワーク推論エンジンの紹介

郭 卓然

Mobility Technologies Co., Ltd.
今日の内容

- 推論エンジンの紹介
- 最適化方法の紹介
- よく用いられる最適化方法の紹介
- ベンチマーク結果の紹介
- 

Mobility Technologies Co., Ltd.


Why we need Neural Networks(NN) inference engine

ニューラルネットワーク( NN)推論をエッジ端末にデプロイする場合の課題
- NN推論のパフォーマンスはエッジ端末の スペックに依存
- NN推論は多くのリソースを消費
- NN推論をエッジ端末にデプロイの 最適化が必要
- 

Mobility Technologies Co., Ltd.


What is NN inference framework

- 

- NN推論フレームワーク : Edge側でNNモデルをロードして推論、予測を行うエンジン
- NN推論エンジンのメリット:
- 最適化による推論速度向上
- モデルサイズ減少、メモリ節約
- モバイル(エッジ)デバイスへのデプロイが容易 

reference:
https://www.bilibili.com/video/BV1fQ4y1Z7Yx/
Mobility Technologies Co., Ltd.


Popular NN inference engine for edge 

その他(ベンチマーク*を元に調査対象から除外)
- TensorRT(nvida)
- Tensorflow lite (Google)
- Paddle lite(Baidu)
- MACE(xiaomi)
- TVM

Developed by Pros Cons
MNN Alibaba Supports direct model
conversion and the most
operator types
Performance is slightly
worse than TNN
ncnn Tencent Little memory footprint during
the model inference process
GPU inference requires
Vulkan API
TNN Tencent Strong performance Model conversion needs to
be based on ONNX
*: https://blog.titanwolf.in/a?ID=2db37403-84e8-47a2-8c90-3e3174e1a51b
Mobility Technologies Co., Ltd.


Introduction of MNN 

- 効率的で軽量なNN推論エンジン
- 特徴:
- 高性能:
- third-party computing librariesを依存せず、多数の 独自実装でcore Opを実現し、ARMのCPUのコンピューティングパワー
を最大限に活用
- Androidは、OpenCL、Vulkan、OpenGLのbackendをサポートして、主流な GPU(AdrenoとMali)向けに最適化
- ARM v8.2の新しいアーキテクチャに最適化した、 FP16半精度を使用して 2倍の推論速度を実現
- 軽量性:
- Android:soサイズは約400KB、OpenCLライブラリは約400KB、Vulkanライブラリは約400KB
- 汎用性:
- Tensorflow、Caffe、ONNXなどのモデルファイルと、 CNN、RNN、GANなどのネットワークをサポート
- 使いやすさ:
- MNNの画像処理モジュールがあり、 OpenCVなどが不要
- ネットワークの一部のみの実行をサポートして、 CPUとGPU間の並列操作を指定可能
- Python APIもあり、C++を書かなくても利用できる
- 
 Github: https://github.com/alibaba/MNN/blob/master/README.md
Document: https://www.yuque.com/mnn/en
Mobility Technologies Co., Ltd.
1. Frontends:

さまざまなトレーニングフレームワークをサ
ポート。

2. Graph Optimize:

演算子のfusion、およびメモリ調整によってグ
ラフを最適化

3. Engine:

モデルのロードとグラフのスケジューリングの
計算を担当

4. Backends:

各コンピューティングデバイスでのメモリ割り
当てとOperatorの実装

Introduction of MNN 

https://github.com/alibaba/MNN
Mobility Technologies Co., Ltd.


Introduction of ncnn 

- ncnnは、モバイルプラットフォーム用に最適化された高性能ニューラルネットワーク推論エンジン
- 特徴:
- オープンソース(2017~、https://github.com/Tencent/ncnn)
- 主要なNNフレームワークをほぼサポート
- PyTorch、TensorFlow、ONNX、など
- 複数のエッジデバイス (CPUとGPU)に対応
- NVIDIA、AMD、Intel、Qualcomm、Apple、など
- third-party computing librariesに非依存
- 100% C++実装、AndroidとiOSをサポート
- 優秀なメモリ管理とデータ構造設計によって省メモリ
- Vulkan APIに基づくGPUアクセラレーションをサポート
- ライブラリ全体のボリュームは 700K(場合によっては300K)未満
- 

reference: https://www.bilibili.com/video/BV1fQ4y1Z7Yx/
Mobility Technologies Co., Ltd.
Introduction of ncnn 

ncnn AI デモ:



● Object detection

● Face parsing 

● Super resolution 

● Frame interpolation 






 refernce:https://github.com/Tencent/ncnn 

Mobility Technologies Co., Ltd.


Introduction of TNN 

- クロスプラットフォーム、高性能、モデル圧縮を備えた軽量の NN推論エンジン
- 特徴:
- オープンソース( https://github.com/Tencent/TNN/blob/master/README.md)
- ncnnがベース
- ncnnに比べ、モバイルデバイスのサポートとパフォーマンスの最適化がさらに強化
- 計算の最適化:
- さまざまなアーキテクチャのハードウェア特性に応じて、 TNNはOpを大幅に最適化し、ハードウェアの計
算能力を最大限に活用
- 主流のハードウェアプラットフォーム( CPU:ARMv7、ARMv8、X86 GPU:Mali、Adreno、Apple、NV
GPU)ディープチューニング
- 効率的なConvolution (Winograd、Tile-GEMM、Direct Conv、など)
- 低精度の最適化:
- INT8、FP16の低精度計算をサポート
- モデルサイズとメモリ消費の削減と計算速度の向上を実現
- INT8 Winogradアルゴリズム(入力 6ビット)をサポート
- 精度を満たしている場合、モデル計算の複雑さをさらに軽減
- 複数精度の混合計算をサポートし
- モデルの精度を確保しながら計算を高速化 

Mobility Technologies Co., Ltd.




TNN Architecture

https://github.com/Tencent/TNN/blob/master/README.md
Mobility Technologies Co., Ltd.
NN frameworks common optimization method

❏ Operator fusion
❏ FP16/BF16 precision
❏ Quantization
Mobility Technologies Co., Ltd.
Operator fusion

blob1
x=min(x,10)
blob2
x=max(x,0)
blob3
min演算子とmax演
算子を1つの演算に
融合することで演算
子の推論速度を高
速化
blob1
x=max(min(x,10),0)
blob3
blob = Binary Large OBject、バイナリデータを表すオブジェクト、格納するための型
Mobility Technologies Co., Ltd.






FP16/BF16 precision

FP32 Tensor
FP16
Tensor
BF16
Tensor
FP16演算子kernel、
A55、A75などのアー
キテクチャをサポート
BF16演算子kernel、
すべてのARMCPUを
サポート
● FP/BF16は16ビットを使用して浮動小数点数を表現
● FP32より、50%のメモリを節約
● 演算子kernelはより効率的な実現
● 推論速度が向上
Mobility Technologies Co., Ltd.






Quantization

convolution
relu
convolution
FP32blob
FP32blob
FP32blob
FP32blob
quantize
int8 convolution
dequantize
quantize
int8 convolution
dequantize
relu
FP32blob
FP32blob
FP32blob
FP32blob
int8 convolution
quantize
int8 convolution
requantize
requantize
FP32blob
INT8blob
INT8blob
Mobility Technologies Co., Ltd.






NN benchmark performance 

https://www.zhihu.com/question/400143354
Snapdragon845 Performance Snapdragon835 Performance
ms
ms
Mobility Technologies Co., Ltd.
Merit and Demerit of the NN inference engines 

- 長所
- アプリケーションへの組み込みがしやすい(依存がすくない、バイナリが軽い)
- モデルの推論速度向上
- モデルサイズ減少、メモリ節約
- 短所
- 推論結果に誤差がある場合がある

More Related Content

What's hot

2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア智啓 出川
 
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ智啓 出川
 
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割智啓 出川
 
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術智啓 出川
 
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例智啓 出川
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術智啓 出川
 
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層智啓 出川
 
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用) 智啓 出川
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境智啓 出川
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)智啓 出川
 
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理智啓 出川
 
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造智啓 出川
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜京大 マイコンクラブ
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)智啓 出川
 
技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行智啓 出川
 
NVIDIA Deep Learning SDK を利用した画像認識
NVIDIA Deep Learning SDK を利用した画像認識NVIDIA Deep Learning SDK を利用した画像認識
NVIDIA Deep Learning SDK を利用した画像認識NVIDIA Japan
 
モバイル向けニューラルネットワーク推論エンジンの紹介
モバイル向けニューラルネットワーク推論エンジンの紹介モバイル向けニューラルネットワーク推論エンジンの紹介
モバイル向けニューラルネットワーク推論エンジンの紹介卓然 郭
 

What's hot (20)

2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
 
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
 
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
 
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
 
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
 
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
 
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
 
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
 
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
 
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
 
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
 
技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行
 
NVIDIA Deep Learning SDK を利用した画像認識
NVIDIA Deep Learning SDK を利用した画像認識NVIDIA Deep Learning SDK を利用した画像認識
NVIDIA Deep Learning SDK を利用した画像認識
 
モバイル向けニューラルネットワーク推論エンジンの紹介
モバイル向けニューラルネットワーク推論エンジンの紹介モバイル向けニューラルネットワーク推論エンジンの紹介
モバイル向けニューラルネットワーク推論エンジンの紹介
 

Similar to モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介

GPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIANVIDIA Japan
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Daiyu Hatakeyama
 
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-Takashi Sogabe
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介NTT Communications Technology Development
 
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢シスコシステムズ合同会社
 
20171206 Sony Neural Network Console 活用テクニック
20171206 Sony Neural Network Console 活用テクニック20171206 Sony Neural Network Console 活用テクニック
20171206 Sony Neural Network Console 活用テクニックSony Network Communications Inc.
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要Miho Yamamoto
 
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~NVIDIA Japan
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」Nobuyuki Tamaoki
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA Japan
 
MEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてMEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてVirtualTech Japan Inc.
 
Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...
Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...
Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...Ryousei Takano
 
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試みtomitomi3 tomitomi3
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密
VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密
VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密VIOPS Virtualized Infrastructure Operators group ARCHIVES
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Etsuji Nakai
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Preferred Networks
 
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugJAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugYasuhiro Matsuo
 

Similar to モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介 (20)

GPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIA
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
 
マイクロソフトが考えるAI活用のロードマップ
マイクロソフトが考えるAI活用のロードマップマイクロソフトが考えるAI活用のロードマップ
マイクロソフトが考えるAI活用のロードマップ
 
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
 
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
 
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
 
20171206 Sony Neural Network Console 活用テクニック
20171206 Sony Neural Network Console 活用テクニック20171206 Sony Neural Network Console 活用テクニック
20171206 Sony Neural Network Console 活用テクニック
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
 
MEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてMEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについて
 
Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...
Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...
Optimizing Overlay-based Virtual Networking Through Optimistic Interrupts and...
 
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
第14回 KAIM M5StickV(K210)をDNNアクセラレータとして使おうとした試み
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密
VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密
VIOPS09: 圧倒的なコストパフォーマンスを実現するクラウドアーキテクチャの秘密
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugJAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
 

モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介

  • 1. Mobility Technologies Co., Ltd. モバイル(エッジ)向け
 ニューラルネットワーク推論エンジンの紹介
 郭 卓然

  • 2. Mobility Technologies Co., Ltd. 今日の内容
 - 推論エンジンの紹介 - 最適化方法の紹介 - よく用いられる最適化方法の紹介 - ベンチマーク結果の紹介 - 

  • 3. Mobility Technologies Co., Ltd. 
 Why we need Neural Networks(NN) inference engine
 ニューラルネットワーク( NN)推論をエッジ端末にデプロイする場合の課題 - NN推論のパフォーマンスはエッジ端末の スペックに依存 - NN推論は多くのリソースを消費 - NN推論をエッジ端末にデプロイの 最適化が必要 - 

  • 4. Mobility Technologies Co., Ltd. 
 What is NN inference framework
 - 
 - NN推論フレームワーク : Edge側でNNモデルをロードして推論、予測を行うエンジン - NN推論エンジンのメリット: - 最適化による推論速度向上 - モデルサイズ減少、メモリ節約 - モバイル(エッジ)デバイスへのデプロイが容易 
 reference: https://www.bilibili.com/video/BV1fQ4y1Z7Yx/
  • 5. Mobility Technologies Co., Ltd. 
 Popular NN inference engine for edge 
 その他(ベンチマーク*を元に調査対象から除外) - TensorRT(nvida) - Tensorflow lite (Google) - Paddle lite(Baidu) - MACE(xiaomi) - TVM
 Developed by Pros Cons MNN Alibaba Supports direct model conversion and the most operator types Performance is slightly worse than TNN ncnn Tencent Little memory footprint during the model inference process GPU inference requires Vulkan API TNN Tencent Strong performance Model conversion needs to be based on ONNX *: https://blog.titanwolf.in/a?ID=2db37403-84e8-47a2-8c90-3e3174e1a51b
  • 6. Mobility Technologies Co., Ltd. 
 Introduction of MNN 
 - 効率的で軽量なNN推論エンジン - 特徴: - 高性能: - third-party computing librariesを依存せず、多数の 独自実装でcore Opを実現し、ARMのCPUのコンピューティングパワー を最大限に活用 - Androidは、OpenCL、Vulkan、OpenGLのbackendをサポートして、主流な GPU(AdrenoとMali)向けに最適化 - ARM v8.2の新しいアーキテクチャに最適化した、 FP16半精度を使用して 2倍の推論速度を実現 - 軽量性: - Android:soサイズは約400KB、OpenCLライブラリは約400KB、Vulkanライブラリは約400KB - 汎用性: - Tensorflow、Caffe、ONNXなどのモデルファイルと、 CNN、RNN、GANなどのネットワークをサポート - 使いやすさ: - MNNの画像処理モジュールがあり、 OpenCVなどが不要 - ネットワークの一部のみの実行をサポートして、 CPUとGPU間の並列操作を指定可能 - Python APIもあり、C++を書かなくても利用できる - 
 Github: https://github.com/alibaba/MNN/blob/master/README.md Document: https://www.yuque.com/mnn/en
  • 7. Mobility Technologies Co., Ltd. 1. Frontends:
 さまざまなトレーニングフレームワークをサ ポート。
 2. Graph Optimize:
 演算子のfusion、およびメモリ調整によってグ ラフを最適化
 3. Engine:
 モデルのロードとグラフのスケジューリングの 計算を担当
 4. Backends:
 各コンピューティングデバイスでのメモリ割り 当てとOperatorの実装
 Introduction of MNN 
 https://github.com/alibaba/MNN
  • 8. Mobility Technologies Co., Ltd. 
 Introduction of ncnn 
 - ncnnは、モバイルプラットフォーム用に最適化された高性能ニューラルネットワーク推論エンジン - 特徴: - オープンソース(2017~、https://github.com/Tencent/ncnn) - 主要なNNフレームワークをほぼサポート - PyTorch、TensorFlow、ONNX、など - 複数のエッジデバイス (CPUとGPU)に対応 - NVIDIA、AMD、Intel、Qualcomm、Apple、など - third-party computing librariesに非依存 - 100% C++実装、AndroidとiOSをサポート - 優秀なメモリ管理とデータ構造設計によって省メモリ - Vulkan APIに基づくGPUアクセラレーションをサポート - ライブラリ全体のボリュームは 700K(場合によっては300K)未満 - 
 reference: https://www.bilibili.com/video/BV1fQ4y1Z7Yx/
  • 9. Mobility Technologies Co., Ltd. Introduction of ncnn 
 ncnn AI デモ:
 
 ● Object detection
 ● Face parsing 
 ● Super resolution 
 ● Frame interpolation 
 
 
 
 refernce:https://github.com/Tencent/ncnn 

  • 10. Mobility Technologies Co., Ltd. 
 Introduction of TNN 
 - クロスプラットフォーム、高性能、モデル圧縮を備えた軽量の NN推論エンジン - 特徴: - オープンソース( https://github.com/Tencent/TNN/blob/master/README.md) - ncnnがベース - ncnnに比べ、モバイルデバイスのサポートとパフォーマンスの最適化がさらに強化 - 計算の最適化: - さまざまなアーキテクチャのハードウェア特性に応じて、 TNNはOpを大幅に最適化し、ハードウェアの計 算能力を最大限に活用 - 主流のハードウェアプラットフォーム( CPU:ARMv7、ARMv8、X86 GPU:Mali、Adreno、Apple、NV GPU)ディープチューニング - 効率的なConvolution (Winograd、Tile-GEMM、Direct Conv、など) - 低精度の最適化: - INT8、FP16の低精度計算をサポート - モデルサイズとメモリ消費の削減と計算速度の向上を実現 - INT8 Winogradアルゴリズム(入力 6ビット)をサポート - 精度を満たしている場合、モデル計算の複雑さをさらに軽減 - 複数精度の混合計算をサポートし - モデルの精度を確保しながら計算を高速化 

  • 11. Mobility Technologies Co., Ltd. 
 
 TNN Architecture
 https://github.com/Tencent/TNN/blob/master/README.md
  • 12. Mobility Technologies Co., Ltd. NN frameworks common optimization method
 ❏ Operator fusion ❏ FP16/BF16 precision ❏ Quantization
  • 13. Mobility Technologies Co., Ltd. Operator fusion
 blob1 x=min(x,10) blob2 x=max(x,0) blob3 min演算子とmax演 算子を1つの演算に 融合することで演算 子の推論速度を高 速化 blob1 x=max(min(x,10),0) blob3 blob = Binary Large OBject、バイナリデータを表すオブジェクト、格納するための型
  • 14. Mobility Technologies Co., Ltd. 
 
 
 FP16/BF16 precision
 FP32 Tensor FP16 Tensor BF16 Tensor FP16演算子kernel、 A55、A75などのアー キテクチャをサポート BF16演算子kernel、 すべてのARMCPUを サポート ● FP/BF16は16ビットを使用して浮動小数点数を表現 ● FP32より、50%のメモリを節約 ● 演算子kernelはより効率的な実現 ● 推論速度が向上
  • 15. Mobility Technologies Co., Ltd. 
 
 
 Quantization
 convolution relu convolution FP32blob FP32blob FP32blob FP32blob quantize int8 convolution dequantize quantize int8 convolution dequantize relu FP32blob FP32blob FP32blob FP32blob int8 convolution quantize int8 convolution requantize requantize FP32blob INT8blob INT8blob
  • 16. Mobility Technologies Co., Ltd. 
 
 
 NN benchmark performance 
 https://www.zhihu.com/question/400143354 Snapdragon845 Performance Snapdragon835 Performance ms ms
  • 17. Mobility Technologies Co., Ltd. Merit and Demerit of the NN inference engines 
 - 長所 - アプリケーションへの組み込みがしやすい(依存がすくない、バイナリが軽い) - モデルの推論速度向上 - モデルサイズ減少、メモリ節約 - 短所 - 推論結果に誤差がある場合がある