Submit Search
JUIZ DLK: 組込み向け Deep Learning コンパイラ
•
Download as PPTX, PDF
•
10 likes
•
29,574 views
Takeo Imai
Follow
Talk @ TFUG KANSAI ハード部 #1 https://leapmind.connpass.com/event/74156/
Read less
Read more
1 of 34
Download now
Downloaded 48 times
More Related Content
JUIZ DLK: 組込み向け Deep Learning コンパイラ
1.
LeapMind株式会社 HW開発チーム コンパイラ&合成ユニット リーダー 今井
健男 2017/12/21 @ TFUG KANSAI JUIZ DLK 組込み向け Deep Learningコンパイラ
2.
Contents 1. 発表者紹介 2. LeapMindの紹介 3.
JUIZ DLK 概要 4. JUIZ DLK における量子化の取り扱い 5. 余談を少し
3.
LeapMind, Inc. ©
2017 今井健男 Takeo Imai 経歴 大阪大学基礎工学部情報工学科卒 LSI高位設計、HW&SW協調設計 東京大学大学院理学系研究科情報科学専攻 修士了 分散・並列プログラミング言語設計 長らく某大手電機メーカーの研究所に所属 LSI設計自動化(EDA) プログラミング言語 ソフトウェア工学 の研究に従事 2017年、LeapMindにジョイン Deep Learning 向けコンパイラ開発 を担当 訳書(共訳) 『抽象によるソフトウェア設計−Alloyではじめる形式手法−』 『型システム入門−プログラミング言語と型の理論−』 発表者紹介
4.
LeapMind, Inc. ©
2017 会社概要 & ビジネス Company LeapMind株式会社 Established in 2012年12月25日 Capital 781,984,235円 (総投資額 $14M) CEO 松田 総一 Major Shareholder Intel capital、伊藤忠テクノロジー ベンチャーズ、Visionnaire Ventures、NTTデータ、NECキャ ピタル Employees 47名 Head Office 東京都渋谷区渋谷3-15-3 土屋ビル3F 研究 ソリューション ライセンス サービス提供共同研究 技術提供
5.
LeapMind, Inc. ©
2017 LeapMind’s Concept Smaller, Faster, More Efficient We enable Deep Learning of Things(DoT)
6.
LeapMind, Inc. ©
2017 New market for Deep Learning Computing Calculation Environment for GPU New Market Calculation Environment Calculation Environment for Cloud
7.
LeapMind, Inc. ©
2017 LeapMindが狙うアプリケーション • 自動運転車 • 瓦礫撤去ロボット • 発電所での異常検知 • 食物の異物混入検査 • ドローンを用いたビル監視 • スマート家電 • etc.
8.
LeapMind, Inc. ©
2017 LeapMindのサービス形態 コンパイル&最適化Deep Learning モデル JUIZ DoT Client Original JUIZ DLK さまざまな製品へデプロイ
9.
LeapMind, Inc. ©
2017 LeapMindコアプロダクト開発体制 全社員の約1/4がココ なぜか全員外国人 ほぼ全員がモデル圧縮 (量子化, pruning, 蒸留, etc.) の研究 Deep Learningモデル向け コンパイラ開発 FPGAアクセラレータ設計 研究チームの開発した アルゴリズムをライブラリ化、 製品化、サービス化
10.
JUIZ DLKの概要
11.
LeapMind, Inc. ©
2017 JUIZ DLKとは GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM
12.
LeapMind, Inc. ©
2017 JUIZ DLKとは GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM
13.
LeapMind, Inc. ©
2017 JUIZ DLKとは GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM
14.
LeapMind, Inc. ©
2017 NNVM / TVMとは 開発者 Tianqi Chen(ワシントン大) w/ DMLC (Distributed (Deep) Machine Learning Community) MXNet, XGBoost, TinyFlow等を開発 NNVM (Neural Network Virtual Machine) ONNX/CoreMLを介して、様々なフレームワークのモデルをインポート DNNのグラフを最適化 グラフ中の複数オペレータを合成(fusion) TVM (Tensor Virtual Machine) Tensor演算(=多重ループ)の最適化、並列化 タイリング、「テンソル化」、etc. 様々なターゲットHW向けのコード生成、コンパイル CPU(Intel, ARM, ...), GPU(OpenCL, CUDA) ↑LeapMindはFPGAをターゲットに拡張
15.
LeapMind, Inc. ©
2017 ん? GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM ?????
16.
LeapMind, Inc. ©
2017 TensorFlow → ONNX ? ONNX (Open Neural Network Exchange) FacebookとMicrosoftが共同提案した、 フレームワーク非依存なDNNの標準フォーマット 現在、多数の企業が協賛・公式サポートを表明 onnx-tensorflow IBM Research が開発、ONNXにて公式採用 (https://github.com/onnx/onnx-tensorflow) ONNXファイルをTensorFlowにインポートして実行できる(ONNX→TensorFlow) TensorFlowからONNXへは限定的? TensorFlowからONNXへの変換をサポートした (完璧な)ツールはまだない!! ???
17.
LeapMind, Inc. ©
2017 そこで GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM tensorflow-onnx
18.
LeapMind, Inc. ©
2017 tensorflow-onnx開発してます! TensorFlow の Protobuf ファイルを ONNX フォーマットに変換 特定のオペレータ(の並び) を削除するなど可能 単なる変換ツールではなく 様々なユーザ定義処理を 合間に挟むことのできる フレームワークとして設計 OSSとして公開予定
19.
JUIZ DLKにおける 量子化の取り扱い
20.
LeapMind, Inc. ©
2017 量子化 (quantization) って? モデル圧縮のテクニックの1つ 通常なら32bit floatでなされているDNN内計算を n bit integer (n=1…)に圧縮 様々な細かいテクニックが存在 ビット幅 n を幾つにするか? • BNN … 重み, アクティベーションとも1bit • DoReFa … 重み1bit, アクティベーション2bit 他 • etc. どう変換するか? • linear quantization(線形変換) • log quantization(対数変換) • etc. TensorFlow には 8bit linear quantization のライブラリが存在
21.
LeapMind, Inc. ©
2017 LeapMindにおける量子化テクニックの開発 2bit hogehoge quantization できた! めっちゃ精度ええで!
22.
LeapMind, Inc. ©
2017 LeapMindにおける量子化テクニックの開発 2bit hogehoge quantization できた! めっちゃ精度ええで! おっ、 なかなかええんちゃう? HWにもええ具合に落ちそう SWチームさん、どう?
23.
LeapMind, Inc. ©
2017 LeapMindにおける量子化テクニックの開発 2bit hogehoge quantization できた! めっちゃ精度ええで! おっ、 なかなかええんちゃう? HWにもええ具合に落ちそう SWチームさん、どう? よっしゃーウチで モデル作って ライブラリに加えるわ できたらFPGA焼いたってー
24.
LeapMind, Inc. ©
2017 LeapMindにおける量子化テクニックの開発 6bit hogefuga quantization できた! こいつ半端ないわマジで!
25.
LeapMind, Inc. ©
2017 LeapMindにおける量子化テクニックの開発 6bit hogefuga quantization できた! こいつ半端ないわマジで! アホか! 6bitなんかアラインメント かけたら8bitやないか そんなん意味あるかボケ!
26.
LeapMind, Inc. ©
2017 LeapMindにおける量子化テクニックの開発 6bit hogefuga quantization できた! こいつ半端ないわマジで! アホか! 6bitなんかアラインメント かけたら8bitやないか そんなん意味あるかボケ!はあ? そういうことは先に 言わんかいこのクソが!
27.
LeapMind, Inc. ©
2017 量子化モデルの処理の流れ GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM 量子化オペレータ 付モデル
28.
LeapMind, Inc. ©
2017 TensorFlow + 量子化オペレータ 「量子化」をカスタムオペレータを使って表現 attribute: ビット幅? 量子化の方式は? etc. 実現方法 → Qiita TensorFlow Advent Calendar 2017 12/17 「 tensorflow Defun で ternary weight 」
29.
LeapMind, Inc. ©
2017 量子化モデルの処理の流れ GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM tensorflow-onnx 量子化オペレータ 付モデル 量子化オペレータの 合成(fusion) FPGAバイナリ 生成
30.
LeapMind, Inc. ©
2017 TVMからFPGA向けVerilog HDLの生成 TVM (HalideIR) C++ Verilog HDL TVMの機能に則った、タイリング、テンソル化→ 並列化 スパース性を考慮したループの圧縮 etc. サードパーティ製HLSを目的に応じて利用 Intel (Altera) HLS Vivado HLS 某社(ひみつ)とも共同開発中
31.
余談
32.
LeapMind, Inc. ©
2017 すいません公開できません 都合により ばっさりカットします ( ;´Д`)
33.
LeapMind, Inc. ©
2017 そんなこんなで 日々のめまぐるしい 競争にもめげず 僕らLeapMindは 開発ガンバってます
34.
LeapMind, Inc. ©
2017 34
[email protected]
[email protected]
http://leapmind.io/ ご質問などございましたら、お気軽にご連絡ください。
Download