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.
AIチップ戦国時代における深層学習モデルの推
論の最適化と実用的な運用を可能にするソフト
ウェア技術について

2020/07/03

株式会社フィックスターズ 山田貴登

Fixstarsについて

2

大崎本社
 横浜事業所

Fixstars Solutions, Inc.(米国カリフォルニア州、100%子会社) 

株式会社 Fixstars Autonomous Technologies 

株式会社 ...
Fixstarsのお仕事

様々な領域のアプリケーションを、様々なハードウェアに対して高速化している。

3

対象

ハードウェア

技術領域

業界

CPU

GPU

FPGA
HPC

量子コンピュータ

機械学習
 数理最適化

画...
Fixstarsのお仕事

様々な領域のアプリケーションを、様々なハードウェアに対して高速化している。

4

対象

ハードウェア

技術領域

業界

CPU

GPU

FPGA
HPC

量子コンピュータ

機械学習
 数理最適化

画...
NEDOプロジェクトでのDNNに対する取り組み

5

DNNモデルコンパイラ

「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発/

革新的AIエッジコンピューティング技術の開発/

エッジビジョンAIを超軽量化し...
目次

1. 世はAIチップ戦国時代

2. 本当に使えるAIチップに必要なものはなにか?

a. AIシステムの開発フロー

b. AIチップ開発・活用における課題

3. 強力なエコシステムを持つ DNNコンパイラ TVM

6

7

世はAIチップ戦国時代

AIチップ戦国時代

8

9

Survey and Benchmarking of Machine Learning Accelerators, Albert Reuther et al,, 2019, https://arxiv.org/abs/1908.11348
10

The Present & Future Of AI Hardware (CogX2019), James Wang, 2019, https://www.youtube.com/watch?v=XZD1Xwrl4f4
本当に使えるAIチップに必要なものはなにか?

AIチップとは何か?、誰が対象?、その利用用途は?



AIチップとは → ディープラーニングの推論を行うHW

誰が対象 → AIチップ製作者と利用者

利用用途 → ディープラーニングの推論...
12

AIシステムの開発におけるAIチップ活用の課題

AIシステムの開発フロー

13

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

14

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

学習フレームワークが対応
AIシステムの開発フロー

15

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

● 多様なモデルフォーマット
● 多様なテンソル演算
AIシステムの開発フロー

モデルフォーマットの多様さ

16

フレームワーク独自のモデルフォーマット
 汎用モデルフォーマット

メリット: 最新モデルのサポートが速い、安定している
デメリット: 対応しなければならないフォーマットが増える
メリット: フォーマットの...
17

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

● 様々な環境での開発や実行、デ
プロイに対応することが
必要
AIシステムの開発フロー

18

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ
 ● デバイス向けに命令を
生成する必要がある
● デバイスへの最適化
● 既存資産の再利用
AIシステムの開発フロー

AIチップに必要なコンパイラ基盤の条件

開発フローの中で起こる課題に柔軟に対処するために、

以下の6つの条件が必要だと考えている。

1. 多様な入力フォーマットをサポートすること

2. 多様なテンソル演算を容易に実装できること

3. ...
20

強力なエコシステムを持つ DNNコンパイラ TVM

TVM

各種ディープラーニングモデルを様々なバックエンドデバイス上で、高速に動
作させるコンパイラベースの推論フレームワーク。

21

TVM: An Automated End-to-End Optimizing Compiler for...
特徴1: 多様な入力フォーマットをサポートする

ONNX

Pytorch

Tensorflow (.pb)

TFLite Format (.tflite)

MXNet

CoreML

Keras

DarkNet

22

ONNX...
特徴2: 多様なテンソル演算の実装が容易にできる

アルゴリズムと実装を分離してコードを書く思想 (Halideを参考)

→ 開発速度と性能を両立しやすい

23

Decoupling Algorithms from Schedules f...
特徴3: 様々な環境で開発、実行、デプロイに対応

24

デプロイ

開発環境

実行環境

特徴3.1: 強力なクロスコンパイル機能

25

加算のカーネルのコードをOpenCLで生成し、

AArch64マシン上で動作するライブラリにコンパイルする例



特徴3.2: 強力なデプロイ機能

26

ホストマシンでコンパイルされたライブラリをRPCで

リモートデバイスに転送、実行する例



多種多様なデバイスに対応

27

特徴4: デバイスの命令を柔軟に生成できる

28

AIチップは多種多様な専用命令を持ち、演算の種類や粒度、

データレイアウトも様々である。



CPU: スカラ計算

GPU: ベクトルの内積

TPU: 行列-行列積





AIチ...
多様な計算粒度とデータレイアウトに対応する仕組み

29

1. computationとscheduleから独自のIR(tir)を生成する

2. tirを元に任意のループをデバイス向けの命令に置き換える

AIチップのベクトル内積積の 

...
特徴4.1: GEMV専用命令を生成する例 1

30

行列積のcomputationとschedule 
 生成されたtir

A(1024, 64) x B(512, 64) の行列-行列積から、(16, 64) x (64)の

行列-...
31

スケジューリング後のtir 
ループ細分と交換のスケジューリング 

スケジューリングでループ細分とループ交換を行う

32

tensorize実行後のtir 

yi 次元に tensorize を適用し、対応するルー
プをデバイスの専用命令呼び出し
gemv_update に置き換える 

33

特徴4: デバイスに対する最適化が容易

Machine Learning Systems are Stuck in a Rut, Paul Barham & Michael Isard, 2019, https://dl.acm.or...
DSLコンパイラベースのアプローチ

メリット

個別の計算カーネルを跨いだ全体最適化が可能

新しい計算カーネルを比較的容易かつ短時間で実装可能

計算カーネルの入出力やパラメータ、データの精度に対して特殊化しやす
い

デメリット

個別の...
AutoTVMによる自動最適化

専用チップの性能を引き出すにはプログラムの最適化がかかせない。特に、実
行速度の高速化は細かい最適化は高い専門知識と人的工数が求められる。

→ オートチューニング技術 (AutoTVM) で実行速度の高速化を...
高速なテンソル計算の自動生成フロー

テンソル演算の式(e)とあるスケジュール s から生成される

プログラム x = g(e,s) を、 HW上で実行した時の時間 f(x) を最小化

する最適化問題を解く。

36

Learning t...
AutoTVMにより生成された演算(単一)の性能

37

単一の演算 (Conv2D) の実行時間において、

モノリシックカーネルの実装 (cuDNN, TFLite) を上回る性能を実現。

対象デバイス: TITAN X と ARM C...
AutoTVMにより生成されたプログラム(全体)の性能

38

対象モデル: ResNet, MobileNet, LSTM言語モデル, Deep Q Network, DCGAN を含む実世界で用いられているもの

End to EndのD...
特徴6: 既存の資産の再利用ができる

既存資産の再利用には、工数の削減や デバッグ用途などの利点がある。TVM
はモノリシックカーネルの実装を呼び出すことも可能。

39

まとめ

AIチップに本当に必要なものは、AIシステムの開発フローの中で起こる様々な
課題に柔軟に対処できるソフトウェア。

強力なエコシステムを持つDNNコンパイラ TVM は最良の選択肢。

– 多様な入力フォーマットをサポートしている

...
課題と展望

TVMにも課題は多くある

AutoTVMはディープラーニングの演算に対して、

自動探索できるパラメータや演算を人為的に定めている

→ Ansor, FlexTensor などの提案

コンパイラスタックが複雑で理解が難しい
...
参考

1. エッジビジョンAIの提案でNEDO事業に採択, https://www.fixstars.com/ja/news/2113/
2. Survey and Benchmarking of Machine Learning Accel...
43

「この成果(の一部)は、国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の委託業務(JPNP16007)の結果得られたものです。」
Upcoming SlideShare
Loading in …5
×

AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について

本資料は、2020/07/02〜04に開催されたMLSE2020内のオンライン講演会「本当に使えるAIチップに必要なものは何か?」へ登壇した際の発表資料になります。

  • Be the first to comment

  • Be the first to like this

AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について

  1. 1. AIチップ戦国時代における深層学習モデルの推 論の最適化と実用的な運用を可能にするソフト ウェア技術について
 2020/07/03
 株式会社フィックスターズ 山田貴登

  2. 2. Fixstarsについて
 2
 大崎本社
 横浜事業所
 Fixstars Solutions, Inc.(米国カリフォルニア州、100%子会社) 
 株式会社 Fixstars Autonomous Technologies 
 株式会社 スリーク、株式会社 Smart Opinion、オスカーテクノロジー株式会社 
 設立
 2002年8月
 資本金
 5億5,296万円 (2019年9月末現在)
 社員数
 214名 (2019年9月末現在)
 所在地
 大崎(本社)、横浜
 代表取締役社 長
 三木 聡
 主な取引先
 キオクシア、東芝、キヤノン、日立製作所、日立ハイテクノロジーズ、オリンパス、みずほ証券 
 連結子会社
 ソフトウェア
 高速化サービス拠点
 FixstarsAT拠点
 ソフトウェアの高速化事業や車載向けのシステム開発事業を行っている

  3. 3. Fixstarsのお仕事
 様々な領域のアプリケーションを、様々なハードウェアに対して高速化している。
 3
 対象
 ハードウェア
 技術領域
 業界
 CPU
 GPU
 FPGA
HPC
 量子コンピュータ
 機械学習
 数理最適化
 画像処理、画像認識
 DSP
 大規模分散並列、
 シミュレーション
 IoT
 量子コンピューティング
 金融
 ベンダー専用演算機
クラウド
 組込みデバイス
 コンパイラ、言語処理
 自然言語処理
 ゲノム解析
 スパコン
 自動運転
 産業機器
 ヘルスケア

  4. 4. Fixstarsのお仕事
 様々な領域のアプリケーションを、様々なハードウェアに対して高速化している。
 4
 対象
 ハードウェア
 技術領域
 業界
 CPU
 GPU
 FPGA
HPC
 量子コンピュータ
 機械学習
 数理最適化
 画像処理、画像認識
 DSP
 大規模分散並列、
 シミュレーション
 IoT
 量子コンピューティング
 金融
 ベンダー専用演算機
クラウド
 組込みデバイス
 コンパイラ、言語処理
 自然言語処理
 ゲノム解析
 スパコン
 自動運転
 産業機器
 ヘルスケア
 ディープラー ニング
  5. 5. NEDOプロジェクトでのDNNに対する取り組み
 5
 DNNモデルコンパイラ
 「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発/
 革新的AIエッジコンピューティング技術の開発/
 エッジビジョンAIを超軽量化し短TATで実装する技術の研究開発」 
 FPGAやASICに実装可能なエッジビジョンAIを短期間で容易に開発できるコンパイラ基盤を構築する
 軽量DNNモデル
 ● 軽量化
 ● 高速化
 エッジデバイス
 エッジビジョンAIの提案でNEDO事業に採択, https://www.fixstars.com/ja/news/2113/
  6. 6. 目次
 1. 世はAIチップ戦国時代
 2. 本当に使えるAIチップに必要なものはなにか?
 a. AIシステムの開発フロー
 b. AIチップ開発・活用における課題
 3. 強力なエコシステムを持つ DNNコンパイラ TVM
 6

  7. 7. 7
 世はAIチップ戦国時代

  8. 8. AIチップ戦国時代
 8

  9. 9. 9
 Survey and Benchmarking of Machine Learning Accelerators, Albert Reuther et al,, 2019, https://arxiv.org/abs/1908.11348
  10. 10. 10
 The Present & Future Of AI Hardware (CogX2019), James Wang, 2019, https://www.youtube.com/watch?v=XZD1Xwrl4f4
  11. 11. 本当に使えるAIチップに必要なものはなにか?
 AIチップとは何か?、誰が対象?、その利用用途は?
 
 AIチップとは → ディープラーニングの推論を行うHW
 誰が対象 → AIチップ製作者と利用者
 利用用途 → ディープラーニングの推論 
 必要なもの → 強力なエコシステムを持つDNNコンパイラ基盤
 
 全体を俯瞰しつつ、実用性を重視して話す。
 11

  12. 12. 12
 AIシステムの開発におけるAIチップ活用の課題

  13. 13. AIシステムの開発フロー
 13
 学習
 推論
 データ
 ユーザ
 モデル
 インテグレーション
 AIチップ

  14. 14. 14
 学習
 推論
 データ
 ユーザ
 モデル
 インテグレーション
 AIチップ
 学習フレームワークが対応 AIシステムの開発フロー

  15. 15. 15
 学習
 推論
 データ
 ユーザ
 モデル
 インテグレーション
 AIチップ
 ● 多様なモデルフォーマット ● 多様なテンソル演算 AIシステムの開発フロー

  16. 16. モデルフォーマットの多様さ
 16
 フレームワーク独自のモデルフォーマット
 汎用モデルフォーマット
 メリット: 最新モデルのサポートが速い、安定している デメリット: 対応しなければならないフォーマットが増える メリット: フォーマットの数が少ない デメリット: サポートしていないモデルや演算があると 変換できないケースが多い
  17. 17. 17
 学習
 推論
 データ
 ユーザ
 モデル
 インテグレーション
 AIチップ
 ● 様々な環境での開発や実行、デ プロイに対応することが 必要 AIシステムの開発フロー

  18. 18. 18
 学習
 推論
 データ
 ユーザ
 モデル
 インテグレーション
 AIチップ
 ● デバイス向けに命令を 生成する必要がある ● デバイスへの最適化 ● 既存資産の再利用 AIシステムの開発フロー

  19. 19. AIチップに必要なコンパイラ基盤の条件
 開発フローの中で起こる課題に柔軟に対処するために、
 以下の6つの条件が必要だと考えている。
 1. 多様な入力フォーマットをサポートすること
 2. 多様なテンソル演算を容易に実装できること
 3. 様々な環境での開発、実行、デプロイに対応していること
 4. 新規デバイス向けに命令の生成が可能であること
 5. デバイスに対する最適化が容易であること
 6. 既存の資産を再利用できること
 → 強力なエコシステムを持つコンパイラ基盤が最良の選択肢
 19

  20. 20. 20
 強力なエコシステムを持つ DNNコンパイラ TVM

  21. 21. TVM
 各種ディープラーニングモデルを様々なバックエンドデバイス上で、高速に動 作させるコンパイラベースの推論フレームワーク。
 21
 TVM: An Automated End-to-End Optimizing Compiler for Deep Learning, Tianqi Chen et al, 2018, https://arxiv.org/abs/1802.04799
  22. 22. 特徴1: 多様な入力フォーマットをサポートする
 ONNX
 Pytorch
 Tensorflow (.pb)
 TFLite Format (.tflite)
 MXNet
 CoreML
 Keras
 DarkNet
 22
 ONNXフォーマットのモデルを読み込む例 

  23. 23. 特徴2: 多様なテンソル演算の実装が容易にできる
 アルゴリズムと実装を分離してコードを書く思想 (Halideを参考)
 → 開発速度と性能を両立しやすい
 23
 Decoupling Algorithms from Schedules for Easy Optimization of Image Processing Pipelines, Jonathan Ragan-Kelley et al, 2012, https://people.csail.mit.edu/jrk/halide12/halide12.pdf アルゴリズム (computation) 
 対応するC言語による実装 
 スケジューリング (scheduling) 
 スケジューリング適用後のC言語による実装 

  24. 24. 特徴3: 様々な環境で開発、実行、デプロイに対応
 24
 デプロイ
 開発環境
 実行環境

  25. 25. 特徴3.1: 強力なクロスコンパイル機能
 25
 加算のカーネルのコードをOpenCLで生成し、
 AArch64マシン上で動作するライブラリにコンパイルする例
 

  26. 26. 特徴3.2: 強力なデプロイ機能
 26
 ホストマシンでコンパイルされたライブラリをRPCで
 リモートデバイスに転送、実行する例
 

  27. 27. 多種多様なデバイスに対応
 27

  28. 28. 特徴4: デバイスの命令を柔軟に生成できる
 28
 AIチップは多種多様な専用命令を持ち、演算の種類や粒度、
 データレイアウトも様々である。
 
 CPU: スカラ計算
 GPU: ベクトルの内積
 TPU: 行列-行列積
 
 
 AIチップを効率的に活用するには、これらの命令を柔軟に呼び出すための仕 組みが必要である。
 TVM: An Automated End-to-End Optimizing Compiler for Deep Learning, Tianqi Chen et al, 2018, https://arxiv.org/abs/1802.04799
  29. 29. 多様な計算粒度とデータレイアウトに対応する仕組み
 29
 1. computationとscheduleから独自のIR(tir)を生成する
 2. tirを元に任意のループをデバイス向けの命令に置き換える
 AIチップのベクトル内積積の 
 専用命令呼び出しに置き換えるこ とができる

  30. 30. 特徴4.1: GEMV専用命令を生成する例 1
 30
 行列積のcomputationとschedule 
 生成されたtir
 A(1024, 64) x B(512, 64) の行列-行列積から、(16, 64) x (64)の
 行列-ベクトル積 専用命令 (GEMV) を生成する例を示す。

  31. 31. 31
 スケジューリング後のtir 
ループ細分と交換のスケジューリング 
 スケジューリングでループ細分とループ交換を行う

  32. 32. 32
 tensorize実行後のtir 
 yi 次元に tensorize を適用し、対応するルー プをデバイスの専用命令呼び出し gemv_update に置き換える 

  33. 33. 33
 特徴4: デバイスに対する最適化が容易
 Machine Learning Systems are Stuck in a Rut, Paul Barham & Michael Isard, 2019, https://dl.acm.org/citation.cfm?id=3321441 DNNモデルコンパイラの2大アプローチ
 モノリシックカーネルアプローチ
 – ディープラーニングの演算単位で最適化された実装を
 利用する方式 (MKL-DNN, cuDNN, ACLなど)。
 – Tensorflow, Pytorch, TF-Lite などが採用
 DSLコンパイラベースアプローチ
 – ループレベルなど抽象度の低い表現に変換してから、
 コード生成を行う方式。
 – TVM, TensorRT, PlaidML などが採用
 

  34. 34. DSLコンパイラベースのアプローチ
 メリット
 個別の計算カーネルを跨いだ全体最適化が可能
 新しい計算カーネルを比較的容易かつ短時間で実装可能
 計算カーネルの入出力やパラメータ、データの精度に対して特殊化しやす い
 デメリット
 個別の計算カーネルはベンダの実装より実行速度が遅くなりやすい
 コンパイル時間がかかる
 デバッグが難しい (デバッガは使えない、printの使用が限定的など)
 
 34
 Machine Learning Systems are Stuck in a Rut, Paul Barham & Michael Isard, 2019, https://dl.acm.org/citation.cfm?id=3321441
  35. 35. AutoTVMによる自動最適化
 専用チップの性能を引き出すにはプログラムの最適化がかかせない。特に、実 行速度の高速化は細かい最適化は高い専門知識と人的工数が求められる。
 → オートチューニング技術 (AutoTVM) で実行速度の高速化を自動化する
 35
 TVM: An Automated End-to-End Optimizing Compiler for Deep Learning, Tianqi Chen et al, 2018, https://arxiv.org/abs/1802.04799
  36. 36. 高速なテンソル計算の自動生成フロー
 テンソル演算の式(e)とあるスケジュール s から生成される
 プログラム x = g(e,s) を、 HW上で実行した時の時間 f(x) を最小化
 する最適化問題を解く。
 36
 Learning to Optimize Tensor Programs, Tianqi Chen et al, 2019, https://arxiv.org/abs/1805.08166
  37. 37. AutoTVMにより生成された演算(単一)の性能
 37
 単一の演算 (Conv2D) の実行時間において、
 モノリシックカーネルの実装 (cuDNN, TFLite) を上回る性能を実現。
 対象デバイス: TITAN X と ARM CPU、ARM GPU (Mali) 
 対象演算: 3x3カーネルのConv2D (weight pre-transformed Winograd方式 を含む) 
 Learning to Optimize Tensor Programs, Tianqi Chen et al, 2019, https://arxiv.org/abs/1805.08166
  38. 38. AutoTVMにより生成されたプログラム(全体)の性能
 38
 対象モデル: ResNet, MobileNet, LSTM言語モデル, Deep Q Network, DCGAN を含む実世界で用いられているもの
 End to EndのDNNの推論においても、1.2倍 ~ 3.8倍の実行速度を実現。
 Learning to Optimize Tensor Programs, Tianqi Chen et al, 2019, https://arxiv.org/abs/1805.08166
  39. 39. 特徴6: 既存の資産の再利用ができる
 既存資産の再利用には、工数の削減や デバッグ用途などの利点がある。TVM はモノリシックカーネルの実装を呼び出すことも可能。
 39

  40. 40. まとめ
 AIチップに本当に必要なものは、AIシステムの開発フローの中で起こる様々な 課題に柔軟に対処できるソフトウェア。
 強力なエコシステムを持つDNNコンパイラ TVM は最良の選択肢。
 – 多様な入力フォーマットをサポートしている
 – 多様なテンソル演算を容易に実装できる
 – 様々な環境での開発、実行、デプロイに対応していること
 – 新規デバイス向けに命令の生成が可能であること
 – デバイスに対する最適化が容易であること
 – 既存の資産を再利用できること
 40

  41. 41. 課題と展望
 TVMにも課題は多くある
 AutoTVMはディープラーニングの演算に対して、
 自動探索できるパラメータや演算を人為的に定めている
 → Ansor, FlexTensor などの提案
 コンパイラスタックが複雑で理解が難しい
 → ドキュメント、コミュニティサイトの充実が進んでいる
 複数言語での実装による複雑さの増加 (C++とPythonのFFIを多用)
 → 一部 C++をRustに置き換える試み (本質的解決ではない)
 エディタ機能でのサポート (FFI Navigator on VSCode)
 
 41

  42. 42. 参考
 1. エッジビジョンAIの提案でNEDO事業に採択, https://www.fixstars.com/ja/news/2113/ 2. Survey and Benchmarking of Machine Learning Accelerators, Albert Reuther et al,, 2019, https://arxiv.org/abs/1908.11348 3. The Present & Future Of AI Hardware (CogX2019), James Wang, 2019, https://www.youtube.com/watch?v=XZD1Xwrl4f4 4. TVM: An Automated End-to-End Optimizing Compiler for Deep Learning, Tianqi Chen et al, 2018, https://arxiv.org/abs/1802.04799 5. Decoupling Algorithms from Schedules for Easy Optimization of Image Processing Pipelines, Jonathan Ragan-Kelley et al, 2012, https://people.csail.mit.edu/jrk/halide12/halide12.pdf 6. Paul Barham and Michael Isard. 2019. Machine Learning Systems are Stuck in a Rut. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS '19). ACM, New York, NY, USA, 177-183. DOI: https://doi.org/10.1145/3317550.3321441 7. Learning to Optimize Tensor Programs, Tianqi Chen et al, 2019, https://arxiv.org/abs/1805.08166 42

  43. 43. 43
 「この成果(の一部)は、国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の委託業務(JPNP16007)の結果得られたものです。」

×