Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
AIチップ戦国時代における深層学習モデルの推
論の最適化と実用的な運用を可能にするソフト
ウェア技術について

2020/07/03

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

Fixstarsについて

2

大崎本社
 横浜事業所

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

株式会社 Fixstars Autonomous Technologies 

株式会社 スリーク、株式会社 Smart Opinion、オスカーテクノロジー株式会社 

設立
 2002年8月

資本金
 5億5,296万円 (2019年9月末現在)

社員数
 214名 (2019年9月末現在)

所在地
 大崎(本社)、横浜

代表取締役社
長

三木 聡

主な取引先
 キオクシア、東芝、キヤノン、日立製作所、日立ハイテクノロジーズ、オリンパス、みずほ証券 

連結子会社

ソフトウェア

高速化サービス拠点
 FixstarsAT拠点

ソフトウェアの高速化事業や車載向けのシステム開発事業を行っている

Fixstarsのお仕事

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

3

対象

ハードウェア

技術領域

業界

CPU

GPU

FPGA
HPC

量子コンピュータ

機械学習
 数理最適化

画像処理、画像認識

DSP

大規模分散並列、

シミュレーション

IoT

量子コンピューティング

金融

ベンダー専用演算機
クラウド

組込みデバイス

コンパイラ、言語処理
 自然言語処理

ゲノム解析

スパコン

自動運転
 産業機器
 ヘルスケア

Fixstarsのお仕事

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

4

対象

ハードウェア

技術領域

業界

CPU

GPU

FPGA
HPC

量子コンピュータ

機械学習
 数理最適化

画像処理、画像認識

DSP

大規模分散並列、

シミュレーション

IoT

量子コンピューティング

金融

ベンダー専用演算機
クラウド

組込みデバイス

コンパイラ、言語処理
 自然言語処理

ゲノム解析

スパコン

自動運転
 産業機器
 ヘルスケア

ディープラー
ニング
NEDOプロジェクトでのDNNに対する取り組み

5

DNNモデルコンパイラ

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

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

エッジビジョンAIを超軽量化し短TATで実装する技術の研究開発」 

FPGAやASICに実装可能なエッジビジョンAIを短期間で容易に開発できるコンパイラ基盤を構築する

軽量DNNモデル

● 軽量化

● 高速化

エッジデバイス

エッジビジョンAIの提案でNEDO事業に採択, https://www.fixstars.com/ja/news/2113/
目次

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チップ製作者と利用者

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

必要なもの → 強力なエコシステムを持つDNNコンパイラ基盤



全体を俯瞰しつつ、実用性を重視して話す。

11

12

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

AIシステムの開発フロー

13

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

14

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

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

15

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

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

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

16

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

メリット: 最新モデルのサポートが速い、安定している
デメリット: 対応しなければならないフォーマットが増える
メリット: フォーマットの数が少ない
デメリット: サポートしていないモデルや演算があると
変換できないケースが多い
17

学習

推論

データ

ユーザ

モデル

インテグレーション

AIチップ

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

18

学習

推論

データ

ユーザ

モデル

インテグレーション

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

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

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

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

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

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

3. 様々な環境での開発、実行、デプロイに対応していること

4. 新規デバイス向けに命令の生成が可能であること

5. デバイスに対する最適化が容易であること

6. 既存の資産を再利用できること

→ 強力なエコシステムを持つコンパイラ基盤が最良の選択肢

19

20

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

TVM

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

21

TVM: An Automated End-to-End Optimizing Compiler for Deep Learning, Tianqi Chen et al, 2018, https://arxiv.org/abs/1802.04799
特徴1: 多様な入力フォーマットをサポートする

ONNX

Pytorch

Tensorflow (.pb)

TFLite Format (.tflite)

MXNet

CoreML

Keras

DarkNet

22

ONNXフォーマットのモデルを読み込む例 

特徴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言語による実装 

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

24

デプロイ

開発環境

実行環境

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

25

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

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



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

26

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

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



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

27

特徴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

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)の

行列-ベクトル積 専用命令 (GEMV) を生成する例を示す。

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.org/citation.cfm?id=3321441
DNNモデルコンパイラの2大アプローチ

モノリシックカーネルアプローチ

– ディープラーニングの演算単位で最適化された実装を

利用する方式 (MKL-DNN, cuDNN, ACLなど)。

– Tensorflow, Pytorch, TF-Lite などが採用

DSLコンパイラベースアプローチ

– ループレベルなど抽象度の低い表現に変換してから、

コード生成を行う方式。

– TVM, TensorRT, PlaidML などが採用



DSLコンパイラベースのアプローチ

メリット

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

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

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

デメリット

個別の計算カーネルはベンダの実装より実行速度が遅くなりやすい

コンパイル時間がかかる

デバッグが難しい (デバッガは使えない、printの使用が限定的など)



34

Machine Learning Systems are Stuck in a Rut, Paul Barham & Michael Isard, 2019, https://dl.acm.org/citation.cfm?id=3321441
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
高速なテンソル計算の自動生成フロー

テンソル演算の式(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
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
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
特徴6: 既存の資産の再利用ができる

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

39

まとめ

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

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

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

– 多様なテンソル演算を容易に実装できる

– 様々な環境での開発、実行、デプロイに対応していること

– 新規デバイス向けに命令の生成が可能であること

– デバイスに対する最適化が容易であること

– 既存の資産を再利用できること

40

課題と展望

TVMにも課題は多くある

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

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

→ Ansor, FlexTensor などの提案

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

→ ドキュメント、コミュニティサイトの充実が進んでいる

複数言語での実装による複雑さの増加 (C++とPythonのFFIを多用)

→ 一部 C++をRustに置き換える試み (本質的解決ではない)

エディタ機能でのサポート (FFI Navigator on VSCode)



41

参考

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

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

More Related Content

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