ディープラーニングの組み込み機器実装ソリューション ~GPC/CPU編~

Similar documents
いまからはじめる組み込みGPU実装

b4-deeplearning-embedded-c-mw

医用画像を題材とした3次元画像解析とディープラーニング

Presentation Title

MATLAB ではじめる画像処理とロボットビジョン ~ 機械学習による物体認識と SLAM~ MathWorks Japan アプリケーションエンジニアリング部信号処理 通信 木川田亘 2015 The MathWorks, 1Inc.

MATLAB®製品紹介セミナー

PowerPoint Presentation

Presentation Title

MATLAB EXPO 2019 Japan プレゼン資料の検討

f2-system-requirement-system-composer-mw

SimulinkによるReal-Time Test環境の構築

Presentation Title

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

タイトル

PowerPoint Presentation

いまからはじめる、MATLABによる 画像処理・コンピュータビジョン

AI技術の紹介とセンサーデータ解析への応用

Presentation Title

Presentation Title

Presentation Title

Presentation Title

Presentation Title

Slide 1

d4-automated-driving-mw

SimscapeプラントモデルのFPGAアクセラレーション

いまからはじめる、MATLABによる 画像処理・コンピュータビジョン

ディープラーニングによって加速する AI 競争 100% 90% 80% 従来 CV 手法 IMAGENET 正答率 ディープラーニング 70% 60% IBM Watson が自然言語処理のブレークスルーを実現 Facebook が Big Sur を発表 Baidu の Deep Speech

Presentation Title

Images per Second Images per Second VOLTA: ディープラーニングにおける大きな飛躍 ResNet-50 トレーニング 2.4x faster ResNet-50 推論 TensorRT - 7ms レイテンシ 3.7x faster P100 V100 P10

Presentation Title

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

SUALAB INTRODUCTION SUALAB Solution SUALAB は 人工知能 ( ディープラーニング ) による画像解析技術を通して 迅速 正確 そして使いやすいマシンビジョン用のディープラーニングソフトウェアライブラリーである SuaKIT を提供します これは 従来のマシン

GPGPU

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

Presentation Title

Presentation Title

AGENDA ディープラーニングとは Qwiklab/Jupyter notebook/digits の使い方 DIGITS による物体検出入門ハンズオン

b2-reinforcement-learning-mw

Adobe Acrobat DC 製品比較表

田向研究室PPTテンプレート

MATLABアルゴリズムからCコード生成のワークフローと最適化

PowerPoint Presentation

07-二村幸孝・出口大輔.indd

main.dvi

Presentation Title

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

PowerPoint プレゼンテーション

untitled

Expo 2014

Slide 1

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014

Presentation Title

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

Autodesk Fusion 360 Autodesk Fusion 360 Honda 3D Fusion 360 CAD Honda EV Autodesk Fusion 360 Honda D 3D Web Rinkak 3D 2016 Honda 3D CEATEC JAPAN

Microsoft PowerPoint - pr_12_template-bs.pptx

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2

it-ken_open.key

Presentation Title

並列・高速化を実現するための 高速化サービスの概要と事例紹介

Convolutional Neural Network A Graduation Thesis of College of Engineering, Chubu University Investigation of feature extraction by Convolution

untitled

Signal Processing Toolbox

Coding theorems for correlated sources with cooperative information

TOOLS for UR44 Release Notes for Windows

Managing and Sharing MATLAB Code

システムソリューションのご紹介

WHITE PAPER RNN

NUMAの構成

Deep Learning によるビッグデータ解析 ~ 手法や CUDA による高速化 2014 年 9 月 5 日 G-DEP ソリューションパートナー株式会社システム計画研究所奥村義和

はじめに AI は 感染症の早期発見と治療法の探索 交通事故死の削減 事故発生前の重大なインフラ欠陥の発見など 人類が直面する複雑な > 問題を解決するのに役立てられています AI とディープラーニング利用における 2 つの大きな課題は パフォーマンスの最大化と 絶え間なく変化する基盤技術の管理です

<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8

ディープラーニングとは AGENDA Qwiklabs/DIGITS の使い方 DIGITS による物体検出入門ハンズオン

21 e-learning Development of Real-time Learner Detection System for e-learning

PowerPoint Presentation

MATLAB®製品紹介セミナー

Raspberry Pi BF BF BF Raspberry Pi PC USB HDMI OS SD SD OS Raspberry Pi Model B MicroUSB MicroSD OS SD GPIO HDMI USB LAN Raspberry Pi MicroUSB MicroSD

Coding theorems for correlated sources with cooperative information

機械学習のご紹介

名称未設定

PowerPoint プレゼンテーション

4 倍精度基本線形代数ルーチン群 QPBLAS の紹介 [index] 1. Introduction 2. Double-double algorithm 3. QPBLAS 4. QPBLAS-GPU 5. Summary 佐々成正 1, 山田進 1, 町田昌彦 1, 今村俊幸 2, 奥田洋司

WiFiの現状

GPU n Graphics Processing Unit CG CAD

GPUを用いたN体計算

画像分野におけるディープラーニングの新展開

2017 (413812)

--

デジタルカメラ用ISP:Milbeaut

Introduction to System Identification

IoT時代のアナリティクス ~センサーデータからの価値発見~

Presentation Title

PowerPoint プレゼンテーション

センサーデータアナリティクスの開発から運用まで

スライド 1

untitled

コミュニケーションユーティリティー編

Microsoft Word - HowToSetupVault_mod.doc

JACi400のご紹介~RPGとHTMLで簡単Web化~

Slide 1

Transcription:

ディープラーニングの組み込み機器実装ソリューション ~GPU/CPU 編 ~ MathWorks Japan アプリケーションエンジニアリング部大塚慶太郎 Kei.Otsuka@mathworks.co.jp 2018 The MathWorks, Inc. 1

自動運転 : 車 歩行者等の物体認識 白線検出 組み込み GPU への実装 モデル GPU 実装 / 配布 3

医用画像 : 腫瘍等 特定の部位の検出 組み込み GPU への実装 モデル GPU 画像ソース : 米国 CDC DPDx Parasite Image Library https://www.cdc.gov/dpdx/malaria/index.html 実装 / 配布 4

ディープラーニング実装ソリューション 組み込み GPU への実装 デスクトップアプリケーション GPU Coder GPU Web/ エンタープライズアプリケーション 実装 / 配布 学習済みモデルのシェア 機器 デバイスへの実装 NVIDIA GPUs Intel Xeon Processors ARM CPUs 5

Agenda Introduction MATLAB 上でのディープラーニング開発フロー GPU Coder による効率的なGPU/CPU 実装 すぐに試せる例題集 まとめ 7

転移学習を使った画像分類 Deep Learning for Image Classification Demo : 血液検査画像の分類 3 つの寄生感染症を分類 バベシア マラリア原虫 トリパノソーマ 従来手法 ( 局所特徴 +SVM) では ~70% 程度の分類精度 8

コンピュータービジョン向けディープラーニングワークフロー 膨大なデータの取り扱い 学習済みネットワークの取り込み マルチ GPU クラスタ環境を使った効率的な学習 組み込み機器への実装 Dog Cat Bird GPU データアクセス モデル 学習 実装 / 配布 ワークフローの各ステップで MATLAB の使いやすさ 豊富な機能が開発者を強力にサポートします 9

コンピュータービジョン向けディープラーニングワークフロー : 実装 実装 / 配布 GPU 学習済みモデルのシェア 機器 デバイスへの実装 Pre-trained DNN Deep Neural Networks Deep Learning, machine learning Image Processing and Computer Vision Image filtering, feature detection/extraction Signal Processing and Communications FFT, filtering, cross correlation, 7x faster than state-of-art 700x faster than CPUs for feature extraction 20x faster than CPUs for FFTs 16

MATLAB から組み込み GPU への実装 : 血液検査画像の分類 17

Agenda Introduction MATLAB 上でのディープラーニング開発フロー GPU Coder による効率的なGPU/CPU 実装 すぐに試せる例題集 まとめ 18

GPU Coder : 高度な関数解析機能が効率の良いコード生成を実現 GPU Coder CUDAカーネル生成最適なメモリ配置データ転送最小化 ライブラリマッピング ループ最適化 データ依存性解析 データ局所性解析 GPU メモリ配置 データ依存性解析 動的メモリコピー削減 GPU 19

ホスト カーネル両方のプログラムを生成可能 MATLAB Coder のコード生成機能を利用 C/C++ CUDA Kernel C/C++ 周波数 : ~4GHz コア数 : ~24 シーケンシャルな処理が得意 CUDA kernels CUDA Kernel C/C++ CPU GPU CUDA Cores GPU Memory Space ARM Cortex CPU Memory Space 周波数 : ~1.5GHz コア数 : ~6000 並列処理が得意 GPU GPU アクセラレータ 20

ディープラーニングを含む ビジョン系アルゴリズムの実装が可能 前処理 ( コントラスト調整等 ) 学習済みネットワーク 後処理 (ROI 抽出等 ) 画像前処理 後処理 + ディープラーニングでコード生成可能! MATLAB 21

組み込み機器への実装ワークフロー MATLAB アルゴリズム (functional reference) Build type MATLAB から生成し CUDA コードを直接 Call Desktop GPU 手書きした main 関数 (CC++) から生成した CUDA コードを Call Desktop GPU Embedded GPU 手書きした main 関数 (CC++) から生成した CUDA コードを Call.mex.lib Cross-compiled.lib C++ C++ 1 機能確認 2 単体検証 3 統合検証 4 リアルタイム検証 22

GPU Coder の使い方 : コードの準備 DNN を含まない場合 専用プラグマを挿入し コード生成対象となる関数を明示 function s = vecsum(v) s = 0; coder.gpu.kernelfun(); for i = 1:length(v) s = s + v(i); end end 以下の関数でもカーネル生成が行われます function s = vecsum(v) coder.gpu.kernelfun(); s = sum(v); end 23

GPU Coder の使い方 : コードの準備 - DNN に対してコード生成を行う場合 予め DNN モデルを mat 形式で保存し 専用関数でロード function out = mybsnet(in) persistent mynet; if isempty(mynet) mynet = coder.loaddeeplearningnetwork( nettransfer.mat, nettransfer ); end out = mynet.predict(in); * コード生成に利用できるメソッドは predict, activations のみ (R2018a 時点 ) 24

GPU Coder の使い方 : 専用 App を利用してコード生成 25

組み込み機器への実装ワークフロー MATLAB アルゴリズム (functional reference) Build type MATLAB から生成し CUDA コードを直接 Call Desktop GPU 手書きした main 関数 (CC++) から生成した CUDA コードを Call Desktop GPU Embedded GPU 手書きした main 関数 (CC++) から生成した CUDA コードを Call.mex.lib Cross-compiled.lib C++ C++ 1 機能確認 2 単体検証 3 統合検証 4 リアルタイム検証 27

組み込み GPU への実装 : ターゲットハードウェア用にクロスコンパイル 変更が必要な箇所は 2 つ 1. ビルドタイプを lib に変更 2. 適切なツールチェーンを選択 28

CPU をターゲットとしたコード生成も可能 Intel MKL-DNN Library cnncodegen(net,'targetlib','mkl-dnn'); Deep Learning Networks GPU Coder NVIDIA TensorRT & cudnn Library cnncodegen(net,'targetlib','tensorrt'); ARM Compute Library cnncodegen(net,'targetlib','arm-compute'); 29

ターゲットハードウェアとコード生成方法の対応について GPU Coder codegen もしくは GPU Coder App CNN 以外 ( 画像前処理 後処理 ) 含めてコード生成可能 ターゲットハードウェアは GPU のみ Deep Learning Networks cnncodegen Intel MKL-DNN Library ARM Compute Library NVIDIA TensorRT & cudnn Library CNN の部分のみコード生成可能 ターゲットハードウェアを複数選択可能 30

歩行者検出用ネットワークの Raspberry Pi3 実装例 UUNet( 歩行者検出用ネットワーク ) Technique 固定サイズの検索窓を利用 歩行者のサイズは固定 CNN は画像分類の目的でのみ利用 レイヤ数 12 ウェイトサイズ Jetson TX2 でのフレームレート RaspberryPi3 でのフレームレート 3 MB ~66 FPS ~7 FPS 分類精度 85 % RaspberryPi3 31

One MATLAB, 5 hardware platforms Desktop GPU Embedded GPU Desktop CPU Raspberry Pi board Android phone 32

Agenda Introduction MATLAB 上でのディープラーニング開発フロー GPU Coder による効率的なGPU/CPU 実装 すぐに試せる例題集 まとめ 33

GPU Coder ですぐに試せるディープラーニングサンプル Alexnet ~130 Fps (K40c) 転移学習 Lane Detection CNN の出力がレーンを表す放物線の係数となる (y = ax^2 + bx + c) Image Lane detection CNN Left lane co-efficients Right lane co-efficients Post-processing (find left/right lane points) Image with marked lanes GPU coder を利用し 画像の前処理 後処理を含むアルゴリズム全体をコード生成 34

GPU Coder ですぐに試せるディープラーニングサンプル ~66 Fps (Tegra X1) ~477 Fps Pedestrian Detection Logo Detection ~50 Fps Traffic Sign Detection 35

GPU Coder ですぐに試せるディープラーニングサンプル Running in MATLAB Generated Code from GPU Coder GPU Coder で ~20 倍程度高速化 36

GPU Coder ですぐに試せるコンピュータービジョン系サンプル 霧 ( ノイズ ) 除去 5x speedup 線強調フィルタ 3x speedup 距離変換 8x speedup ディスパリティ算出 50x speedup レイトレーシング 18x speedup 特徴点抽出 700x speedup 37

Frames per second Alexnet Inference Frame-Rate パフォーマンス (NVIDIA Titan Xp を利用 ) MATLAB GPU Coder (R2017b) 2x 5x 7x mxnet (0.10) MATLAB (R2017b) Caffe2 (0.8.1) TensorFlow (1.2.0) Batch Size CPU Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz Testing platform GPU cudnn Pascal Titan Xp v5 38

Agenda Introduction MATLAB 上でのディープラーニング開発フロー GPU Coder による効率的なGPU/CPU 実装 すぐに試せる例題集 まとめ 41

まとめ : ディープラーニングの組み込み機器実装ソリューション ~GPU CPU 実装編 ~ 1 統合開発環 MATLAB コンピュータービジョン ディープラーニングのアルゴリズム開発環境として強力な MATLAB アルゴリズム開発から GPU まで 同一環境上で実現可能 2GPU Coder CUDAの文法を知らなくても自動コード生成でGPUを利用可能エンジニアのスキルに依存しない 再現性の高いコード生成 GPU 以外のデバイス, ARM 系プロセッサにも実装可能すぐに始められるサンプル集 MATLAB を使って, コンピュータービジョン ディープラーニングのアルゴリズムの開発から実装までを効率的に実現! 42

2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 43

Mean Squared Error (mse) GPU Coder 関連製品 GPU Coder に必須となります MATLAB Coder MATLABプログラムからC/C++ コードを生成 MATLAB 上で アルゴリズム開発から実装までフローを統合 iterate verify / accelerate Neural Network Toolbox ニューラルネットワークの構築 学習 データフィッティング クラスタリング パターン認識 深層学習 GPUによる計算の高速化 Best Validation Performance is 0.01227 at epoch 26 10 0 Train Validation Test Best 10-1 10-2 10-3 0 5 10 15 20 25 30 32 Epochs Parallel Computing Toolbox MATLAB & Simulink と連携した並列処理 対話的な並列計算実行 GPGPU による高速演算 ジョブおよびタスクの制御 コンピュータ ローカル MATLAB デスクトップ Embedded Coder MATLAB プログラム /Simulink モデルから組込み用 C/C++ コードを自動生成 44

GPU Coder 関連製品 : 画像処理 コンピュータービジョン Image Processing Toolbox コーナー 円検出 幾何学的変換 各種画像フィルタ処理 レジストレーション ( 位置合せ ) セグメンテーション ( 領域分割 ) 画像の領域の定量評価 Computer Vision System Toolbox カメラキャリブレーション 特徴点 特徴量抽出 機械学習による物体認識 動画ストリーミング処理 トラッキング ステレオビジョン 3D 表示 Image Acquisition Toolbox デバイスから画像 動画直接取り込み フレームグラバボード DCAM, Camera Link GigE Vision, Webカメラ Microsoft Kinect for Windows Statistics and Machine Learning Toolbox 機械学習 多変量統計 確率分布 回帰と分散分析 実験計画 統計的工程管理 45