Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JUIZ DLK 組込み向けDeep Learningコンパイラ

723 views

Published on

2017年12月21日開催「TFUG KANSAI ハード部 #1」講演資料

LeapMind株式会社 HW開発チーム
コンパイラ&合成ユニット リーダー
今井 健男

<資料概要>
2017年12月に大阪で行われたイベント「TFUG KANSAI ハード部 #1」にて使用した弊社今井の講演資料です。私たちの会社LeapMindの紹介と共に、私たちが現在開発している組込み向けDeep Learningコンパイラ「JUIZ-DLK」についてお話しさせていただきました。

▶︎「TFUG KANSAI ハード部 #1」
https://leapmind.connpass.com/event/74156/

TFUG(TensorFlow User Group)の名前を冠していますが、TensorFlowに限らず、ハードウェアや組込みソフトウェア、Deep Learning に興味のある方みんなで集まって交流しよう、というイベントです。

Published in: Engineering
  • Be the first to comment

JUIZ DLK 組込み向けDeep Learningコンパイラ

  1. 1. LeapMind株式会社 HW開発チーム コンパイラ&合成ユニット リーダー 今井 健男 2017/12/21 @ TFUG KANSAI JUIZ DLK 組込み向け Deep Learningコンパイラ
  2. 2. Contents 1. 発表者紹介 2. LeapMindの紹介 3. JUIZ DLK 概要 4. JUIZ DLK における量⼦化の取り扱い 5. 余談を少し
  3. 3. LeapMind, Inc. © 2017 今井健男 Takeo Imai 経歴 ⼤阪⼤学基礎⼯学部情報⼯学科卒 LSI⾼位設計、HW&SW協調設計 東京⼤学⼤学院理学系研究科情報科学専攻 修⼠了 分散・並列プログラミング⾔語設計 ⻑らく某⼤⼿電機メーカーの研究所に所属 LSI設計⾃動化(EDA) プログラミング⾔語 ソフトウェア⼯学 の研究に従事 2017年、LeapMindにジョイン Deep Learning 向けコンパイラ開発 を担当 訳書(共訳) 『抽象によるソフトウェア設計−Alloyではじめる形式⼿法−』 『型システム⼊⾨−プログラミング⾔語と型の理論−』 発表者紹介
  4. 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. 5. LeapMind, Inc. © 2017 LeapMindʼs Concept Smaller, Faster, More Efficient We enable Deep Learning of Things(DoT)
  6. 6. LeapMind, Inc. © 2017 New market for Deep Learning Computing Calculation Environment for GPU New Market Calculation Environment Calculation Environment for Cloud
  7. 7. LeapMind, Inc. © 2017 LeapMindが狙うアプリケーション • ⾃動運転⾞ • ⽡礫撤去ロボット • 発電所での異常検知 • ⾷物の異物混⼊検査 • ドローンを⽤いたビル監視 • スマート家電 • etc.
  8. 8. LeapMind, Inc. © 2017 LeapMindのサービス形態 コンパイル&最適化Deep Learning モデル JUIZ DoT Client Original JUIZ DLK さまざまな製品へデプロイ
  9. 9. LeapMind, Inc. © 2017 LeapMindコアプロダクト開発体制 全社員の約1/4がココ なぜか全員外国⼈ ほぼ全員がモデル圧縮 (量⼦化, pruning, 蒸留, etc.) の研究 Deep Learningモデル向け コンパイラ開発 FPGAアクセラレータ設計 研究チームの開発した アルゴリズムをライブラリ化、 製品化、サービス化
  10. 10. JUIZ DLKの概要
  11. 11. LeapMind, Inc. © 2017 JUIZ DLKとは GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM
  12. 12. LeapMind, Inc. © 2017 JUIZ DLKとは GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM
  13. 13. LeapMind, Inc. © 2017 JUIZ DLKとは GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM
  14. 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. 15. LeapMind, Inc. © 2017 ん? GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM ?????
  16. 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. 17. LeapMind, Inc. © 2017 そこで GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM tensorflow-onnx
  18. 18. LeapMind, Inc. © 2017 tensorflow-onnx開発してます! TensorFlow の Protobuf ファイルを ONNX フォーマットに変換 特定のオペレータ(の並び) を削除するなど可能 単なる変換ツールではなく 様々なユーザ定義処理を 合間に挟むことのできる フレームワークとして設計 OSSとして公開予定
  19. 19. JUIZ DLKにおける 量⼦化の取り扱い
  20. 20. LeapMind, Inc. © 2017 量⼦化 (quantization) って? n モデル圧縮のテクニックの1つ n 通常なら32bit floatでなされているDNN内計算を n bit integer (n=1…)に圧縮 n 様々な細かいテクニックが存在 l ビット幅 n を幾つにするか? • BNN … 重み, アクティベーションとも1bit • DoReFa … 重み1bit, アクティベーション2bit 他 • etc. l どう変換するか? • linear quantization(線形変換) • log quantization(対数変換) • etc. n TensorFlow には 8bit linear quantization のライブラリが存在
  21. 21. LeapMind, Inc. © 2017 LeapMindにおける量⼦化テクニックの開発 2bit hogehoge quantization できた! めっちゃ精度ええで!
  22. 22. LeapMind, Inc. © 2017 LeapMindにおける量⼦化テクニックの開発 2bit hogehoge quantization できた! めっちゃ精度ええで! おっ、 なかなかええんちゃう? HWにもええ具合に落ちそう SWチームさん、どう?
  23. 23. LeapMind, Inc. © 2017 LeapMindにおける量⼦化テクニックの開発 2bit hogehoge quantization できた! めっちゃ精度ええで! おっ、 なかなかええんちゃう? HWにもええ具合に落ちそう SWチームさん、どう? よっしゃーウチで モデル作って ライブラリに加えるわ できたらFPGA焼いたってー
  24. 24. LeapMind, Inc. © 2017 LeapMindにおける量⼦化テクニックの開発 6bit hogefuga quantization できた! こいつ半端ないわマジで!
  25. 25. LeapMind, Inc. © 2017 LeapMindにおける量⼦化テクニックの開発 6bit hogefuga quantization できた! こいつ半端ないわマジで! アホか! 6bitなんかアラインメント かけたら8bitやないか そんなん意味あるかボケ!
  26. 26. LeapMind, Inc. © 2017 LeapMindにおける量⼦化テクニックの開発 6bit hogefuga quantization できた! こいつ半端ないわマジで! アホか! 6bitなんかアラインメント かけたら8bitやないか そんなん意味あるかボケ!はあ? そういうことは先に ⾔わんかいこのクソが!
  27. 27. LeapMind, Inc. © 2017 量⼦化モデルの処理の流れ GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM 量子化オペレータ 付モデル
  28. 28. LeapMind, Inc. © 2017 TensorFlow + 量⼦化オペレータ n 「量⼦化」をカスタムオペレータを使って表現 l attribute: ビット幅? 量⼦化の⽅式は? etc. l 実現⽅法 → Qiita TensorFlow Advent Calendar 2017 12/17 「 tensorflow Defun で ternary weight 」
  29. 29. LeapMind, Inc. © 2017 量⼦化モデルの処理の流れ GPU FPGA (SoC) CUDA OpenCL ARM Intel JUIZ DLK CoreML LLVM NNVM TVM tensorflow-onnx 量⼦化オペレータ 付モデル 量⼦化オペレータの 合成(fusion) FPGAバイナリ ⽣成
  30. 30. LeapMind, Inc. © 2017 TVMからFPGA向けVerilog HDLの⽣成 TVM (HalideIR) C++ Verilog HDL n TVMの機能に則った、タイリング、テンソル化→ 並列化 n スパース性を考慮したループの圧縮 n etc. n サードパーティ製HLSを⽬的に応じて利⽤ l Intel (Altera) HLS l Vivado HLS l 某社(ひみつ)とも共同開発中
  31. 31. 余談
  32. 32. LeapMind, Inc. © 2017 すいません公開できません 都合により ばっさりカットします ( ;´Д`)
  33. 33. LeapMind, Inc. © 2017 そんなこんなで ⽇々のめまぐるしい 競争にもめげず 僕らLeapMindは 開発ガンバってます
  34. 34. LeapMind, Inc. © 2017 34 info@leapmimd.io imai@leapmind.io http://leapmind.io/ ご質問などございましたら、お気軽にご連絡ください。

×