• 検索結果がありません。

インテル FPGA の Deep Learning Acceleration Suite とマイクロソフトの Brainwave を HW 視点から比較してみる

N/A
N/A
Protected

Academic year: 2021

シェア "インテル FPGA の Deep Learning Acceleration Suite とマイクロソフトの Brainwave を HW 視点から比較してみる"

Copied!
65
0
0

読み込み中.... (全文を見る)

全文

(1)

インテル FPGA の Deep Learning

Acceleration Suite とマイクロソフトの

Brainwave を HW 視点から比較してみる

竹村 幸尚

インテル株式会社

プログラマブル・ソリューションズ事業本部

シニア・テクノロジー・スペシャリスト

DA22

(2)
(3)
(4)

FPGAの性能向上

(5)

CPU 対 FPGA

FPGA: 空間計算

FPGA

データ 命令 命令 命令 データ 命令 命令 命令 CPU: 時間的計算

CPU

命令

(6)

FPGA アーキテクチャー: 基本エレメント

(7)

FPGA アーキテクチャー: 基本エレメント

1-bit configurable

operation

Configured to perform any

1-bit operation:

AND, OR, INV, XOR, etc.

基本エレメント

1-bit register

(store result)

(8)

FPGA アーキテクチャー: インターコネクト

基本エレメントは

フレキシブルなインターコネクト

(配線)に囲まれている

(9)

FPGA アーキテクチャー: インターコネクト

カスタム回路は基本エレメントを

接続することで実現できる

(10)

32-bit sqrt

Your custom 64-bit

bit-shuffle and encode

16-bit add

(11)

FPGA アーキテクチャー: メモリーブロック

メモリー

ブロック

20 Kb

addr

data_in

data_out

(12)

FPGA アーキテクチャー: メモリーブロック

メモリー

ブロック

20 Kb

addr

data_in

data_out

沢山の小型キャッシュ

キャッシュ

大型

(13)

data_in

data_out

(14)
(15)
(16)
(17)

FPGAの取り組み

Catapult v0

Catapult v1

スケール v1

Catapult v2

2011

2012

2013

2014

2015

2016

...

Ignite

本番展開

(18)

Hardware Microservices on FPGAs [MICRO’16]

Web search ranking

Traditional software (CPU) server plane

QPI CPU QSFP 40Gb/s

ToR

FPGA CPU 40Gb/s QSFP QSFP

Hardware acceleration plane Web search ranking Deep neural networks SDN offload SQL CPUs FPGAs Routers

(19)

DNN のための シリコンレベル の選択肢

DNN Processing Units

効率性

柔軟性

Soft DPU (FPGA) Contr ol Unit (CU) Register s Arithmet ic Logic Unit (ALU) CPUs GPUs ASICs Hard DPU Cerebras Google TPU Graphcore Groq Intel Nervana Movidius Wave Computing Etc. BrainWave Baidu SDA Deephi Tech ESE Teradeep Etc.

(20)

Project BrainWave

f

f

f

l0

l1

f

f

f

l0

Pretrained DNN モデル

CNTK などで

ハードウェア マイクロサービス

スケーラブルな DNN

BrainWave

Soft DPU

Instruction Decoder & Ctrl

Neural FU

ネットワークスイッチ FPGA

(21)

BrainWave Stack

Pretrained DNN モデル を ソフト DPU にコンパイルするための

フレームワーク中立の連合コンパイラとランタイム

狭精度 DNN 推論のための適応型 ISA

変化目まぐるしいAI アルゴリズムをサポートする柔軟性と拡張性

BrainWave Soft DPU マイクロアーキテクチャ

高精度、低遅延バッチに最適

Intel の FPGA を スケールする HW マイクロサービスに展開

[マイクロ ' 16]

FPGA 上でモデルパラメータを完全に永続化するオンチップメモリは、

多数の FPGA にまたがってスケーリングすることにより、

大規模なモデルをサポート

(22)

Brainwave コンパイラとランタイム

FPGA0

FPGA1

Add500 1000-dim ベクトル 1000-dim ベクトル 分割 500x500 マトリックス MatMul500 500x500 マトリックス

MatMul500 MatMul500 MatMul500 500x500 マトリックス Add500 Add500 Sigmoid500 Sigmoid500 分割 Add500 500 500 concat 500 500 500x500 マトリックス ターゲット コンパイラ FPGA ターゲット コンパイラ CPU-CNTK フロント ポータブル IR ターゲット コンパイラ CPU-カフェ トランスフォーム IRs グラフスプリッタ と オプティマイザ 展開パッケージ Caffe モデル FPGA ハードウェア マイクロサービス CNTK モデル Tensorflowモデル

(23)

一般的なシナリオ

=

O(N

2

) data

O(N

2

) compute

入力アクティベーション 出力前のアクティベーション N ウェイトカーネル

O(N

3

) data

O(N

4

K

2

) compute

=

(24)

従来の高速化アプローチ:

ローカルのオフロードとストリーミング

FPGA

2xCPU

DRAM で初期化された

モデルパラメータ

(25)

従来の高速化アプローチ:

ローカルのオフロードとストリーミング

FPGA

2xCPU

DRAM で初期化された

モデルパラメータ

(26)

バッチ処理による HW 使用率の向上

バッチサイズ

ハードウェア

利用

(%)

FPGA

(27)

バッチ処理による HW 使用率の向上

バッチサイズ

99回目

待ち時

最大

許可

遅延

バッチサイズ

ハードウェア

利用

(%)

バッチ処理により HW の使用率が向上するが、待ち時間は増加

(28)

バッチ処理による HW 使用率の向上

バッチサイズ

99回目

の待ち

時間

最大

許可

遅延

バッチサイズ

ハードウェア

利用

(%)

バッチ処理により HW の使用率が向上するが、待ち時間が増加

(29)

代替: "永続的な" ニューラルネット

FPGA

2xCPU

(30)

代替: "永続的な" ニューラルネット

2xCPU

(31)

代替: "永続的な" ニューラルネット

(32)

代替: "永続的な" ニューラルネット

(33)
(34)

Inter-Layer パイプラインの並列処理

2

CPU CPU2 CPU2 CPU2 CPU2 CPU2 CPU2 CPU2

LST M LST M LST M LST M LST M LST M LST M LST M

(35)
(36)

FPGA

MVU カーネル

Matrix Vector Unit

+ + × × + × × + + × × + × × +

(37)

インテル® OpenVINO™

ツールキット

(38)

ディープラーニング・トポロジーの推論処理

“head”

1

“head”

2

“head”

10

ニューラルネット

「本体」

イメージ

ほとんどの計算は、ここで実行される

画像認識: CNN (ResNet)

音声認識・言語翻訳

特徴

インデックスの特徴

ベクトル

タグ

物体検出

後処理

サイズの変更 /

クロップ

イメージ

前処理

(39)

OpenVINO™ ツールキット概要

OpenVINO™ Toolkit

OpenVX

Intel OVX

Kernel

Extensions

Libraries

Inference

Engine

Model

Optimizer

Tools

画像処理とディープ・ラーニングを使用した画像認識をサポート

インテル・アーキテクチャに最適化された、ヘテロジニアス対応ライブラリ

User program

Algorithms

OpenCV

Pre-trained

DL models

ディープラーニング

デプロイメント・

ツールキット

画像処理

(40)

全インテル® アーキテクチャーで訓練済のモデルをデプロイ可能

CPU、GPU、FPGA、など

最良の実行となるよう最適化

ユーザーによる検証と調整が可能

全デバイスで使いやすいランタイム API

Caffe*

TensorFlow*

MxNet*

IR

.bin .xml

推論エンジ

共通

AP

I (C

++)

ロード・推論

CPU プラグイン

GPUプラグイン

FPGAプラグイン

モデル・

オプティマ

イザー

所定のターゲットを変換・

最適化

ディープ・ラーニング・デプロイメント・ツールキット

ONNX*

Myriadプラグイン

(41)

再掲:Brainwave コンパイラとランタイム

ターゲット コンパイラ FPGA ターゲット コンパイラ CPU-CNTK フロント ポータブル IR ターゲット コンパイラ CPU-カフェ トランスフォーム IRs グラフスプリッタ と オプティマイザ 展開パッケージ Caffe モデル FPGA ハードウェア マイクロサービス CNTK モデル Tensorflowモデル

(42)
(43)

インテル® FPGA DLAS の機能

一般的なトポロジーに向けたCNN アクセラ

レーション・エンジン

グラフ・ループ・アーキテクチャー

AlexNet、GoogleNet、LeNet、SqueezeNet、

VGG16、ResNet、Yolo、SSD、LSTM など

ソフトウェア・デプロイメント

FPGA のコンパイルは不要

ランタイムでのリコンフィグレーションが可能

カスタマイズされたハードウェア開発

パラメーターを使用したカスタム・アーキテクチャーの

作成

OpenCL™ フローを使用したカスタム・プリミティブ

畳み込み

PE アレイ

クロスバー

prim prim prim カスタム

DDR

メモリー 読み取り/書き込み

特徴マップキャッシュ

DDR

コンフィグレーション・エンジン

(44)

DLA アーキテクチャー: 高パフォーマンス設計

FPGA 上で最大限の並列化を実現

Filter Parallelism (プロセッシング・エレメント)

Input-Depth Parallelism

Winograd Transformation

Batching

Feature Stream Buffer

Filter Cache

FPGA ビットストリームを選択

Data Type / Design Exploration

Primitive Support

ReLU

Convolution /

Fully

Connected

Norm

MaxPool

ストリーム・

バッファー

畳み込み PE アレイ

クロスバー

ReLU PoolMax

DDR メモリー 読み取り/ 書き込み 特徴マップキャッシュ DDR DDR DDR コンフィグレーショ ン・エンジン Norm

実行

(45)

ReLU

Convolution /

Fully Connected

Norm

MaxPool

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・

(46)

ReLU

Convolution /

Fully Connected

Norm

MaxPool

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(47)

ReLU

Convolution /

Fully Connected

Norm

MaxPool

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(48)

ReLU

Convolution /

Fully Connected

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ストリーム・バッファー

出力

入力

(49)

ReLU

Convolution /

Fully Connected

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(50)

ReLU

Convolution /

Fully Connected

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(51)

ReLU

Convolution /

Fully Connected

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(52)

ReLU

Convolution /

Fully Connected

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(53)

Convolution /

Fully Connected

AlexNet Graph

Conv

ReLu Norm MaxPool Fully Conn.

ブロックはランタイムでリコンフィグレーションおよびバイパスが可能

ストリーム・バッファー

出力

入力

(54)

アーキテクチャー詳細

ReLU

Output

Writer 1

Filter

Reader

PE 1

Norm

PE 2

MaxPool

PE 3

PE 23

Input

Reader

DDR

PE

Sequencer

Output

Writer 2

Convolution/全結合 (1D systolic array of 24 PEs)

PE 24

Stream Buffer

PE Feeder

Bias

Reader

DDR ring interconnect

(55)

余談:Systolic Array

Arria 10

1150

Load B

PE

PE

drain

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

feeder

feeder

feeder

feeder

Load A

feeder feeder feeder feeder

Drain C

DDR4

drain drain

(56)

Convolution の効率的な並列処理

並列畳み込み

同じConvolution層の異なるフィルター

が別のプロセッシング・エレメント (PE) で

並列的に処理されます

ベクトル演算

特徴マップの深度全体

PE アレイ・ジオメトリーは、既定

のトポロジーのハイパーパラメーター

にカスタマイズ可能です

FPGA

ダブルバッファー

On-Chip RAM

フィルター (on-chip RAM)

フィル

ター並列処理

(出力深度

)

外部 DDR

56

(57)

Winograd 変換

より少ない乗算で畳み込みを実行します

FPGA 上でより多くの畳み込みを可能にします

6 つの入力特徴エレメントと 3 つのフィルター・エレメン

トを必要とします

標準的な畳み込みには、12 回の乗算が必要です

変換された畳み込みに必要な乗算は 6 回です

ReLU

Convolution /

Fully

Connected

Norm

MaxPool

Winograd 変換

ストリーム・バッファー

Winograd 変換

(58)

フィーチャ・キャッシュ

特徴データはオンチップにキャッシュ

並列処理エレメントのデイジーチェーンにストリームされる

ダブルバッファー

畳み込みとキャッシュの更新が同時進行

1つのサブグラフの出力が他のサブグラフの入力に

不必要な外部メモリーへのアクセスを解消

ダブルバッファー

オンチップ RAM

ストリーム・

バッファー・サイズ

(59)

フィルター・キャッシュ

フィルター・ウェイトは、各プロセッシング・エレメントにキャッシュ

プリフェッチをサポートするためにダブルバッファーを使用

1つのセットが出力特徴マップの計算に使用されている間、別のセットがプリフェッチされる

(60)

DLA アーキテクチャーの選択

必要条件を満たす最適な FPGA イメージを選択

(61)

異なるトポロジーに対するサポート

機能とパフォーマンスはトレードオフ

畳み込み PE アレイ

クロスバー

ReLU

Norm

MaxPool

メモリー

読み取り/

書き込み

特徴マップキャッシュ

コンフィグレー ション・ エンジン

畳み込み PE アレイ

クロスバー

ReLU Norm MaxPool

メモリー

読み取り/

書き込み

特徴マップキャッシュ

コンフィグレー ション・ エンジン LRN Permute Concat Flatten SoftMax Reshape

vs

(62)

サポートされるプリミティブとトポロジー

トポロジー

✓ サポート有 ✓ リクエストに応じてサポート有 ✓ 将来的にサポートを予定

プリミティブ

✓AlexNet ✓GoogleNet v1 ✓SSD ✓ResNet18 ✓SSD ✓ResNet50 ✓ResNet101 ✓SqueezeNet ✓SSD ✓VGG16 ✓Tiny Yolo ✓LeNet ✓batch norm ✓concat ✓flatten

✓max pool ✓relu, leaky relu ✓ lrn normalization

✓average pool ✓scale ✓ softmax

✓inner product ✓permute ✓ prelu

✓reshape ✓detection output ✓conv

✓prIOrbox ✓fully connected ✓eltwise

✓bias ✓group conv ✓depthwise conv

✓local conv ✓sigmoid ✓elu

✓power ✓crop ✓proporal

✓slice ✓depthwise conv ✓roi pooling

✓dilated conv

(63)

精度を下げてデザインを検討してみる

パフォーマンスと精度はトレードオフ

精度を下げることで、より多くの処理が並列的に実行可能

より小さい浮動小数点形式を使用するための、ネットワークの再トレーニングは不要

FP11 は INT8/9 よりもメリットがある

再トレーニング不要、より良いパフォーマンス、精度の損失が少ない

FP11

FP10

FP9

FP8

Sign、指数5ビット、仮数10ビット

FP16

Sign、指数5ビット、仮数5ビット

Sign、指数5ビット、仮数4ビット

Sign、指数5ビット、仮数3ビット

Sign、指数5ビット、仮数2ビット

(64)

経験

ツール

フレームワーク

ライブラリ

ハードウエア

Intel® Distribution for Python* Mlib BigDL

OpenVINO™

Toolkit

Intel® Nervana™ Cloud and Appliance

Intel Nervana Deep Learning Studio

Intel® Data Analytics

Acceleration Library (DAAL) Intel® Math Kernel Library (Intel® MKL, MKL-DNN)

Intel Nervana Graph¥

Memory and Storage Networking

¥Future

*Other names and brands may be claimed as the property of others.

Compute – CPU, iGPU, VPU, FPGA,

(65)

法的注意事項および免責条項

本資料に記載されている情報は、開発中の製品、サービス、プロセスに関するものです。 ここに記載されているすべての情報は、予告 なく変更されることがあります。 インテルの最新の予測、スケジュール、仕様、およびロードマップをご希望の方は、インテルの担当者までお問い合わせください。 インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化 が必要となる場合があります。詳細については、intel.com を参照するか、OEM や販売店にお問い合わせください。絶対的なセキュリ ティーを提供できるコンピューター・システムはありません。 テストでは、特定のシステムでの個々のテストにおけるコンポーネントの性能を文書化しています。ハードウェア、ソフトウェア、シス テム構成などの違いにより、実際の性能は掲載された性能テストや評価とは異なる場合があります。購入を検討される場合は、ほかの情 報も参考にして、パフォーマンスを総合的に評価することをお勧めします。性能やベンチマーク結果について、さらに詳しい情報をお知 りになりたい場合は、http://www.intel.com/performance (英語) を参照してください。 インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化 が必要となる場合があります。実際の性能はシステム構成によって異なります。絶対的なセキュリティーを提供できるコンピューター・ システムはありません。詳細については、各システムメーカーまたは販売店にお問い合わせいただくか、http://www.intel.co.jp/ を参照 してください。 本資料は、(明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず) いかなる知的財産権のライセンスも許諾する ものではありません。

OpenCL および OpenCL ロゴは Apple Inc. の商標であり、Khronos の許可を得て使用しています。

Intel、インテル、Intel ロゴ、Intel Inside、Intel Inside ロゴ、Arria、Avalon、Cyclone、Nios、 Stratix は、アメリカ合衆国および/また はその他の国における Intel Corporation またはその子会社の商標です。

* その他の社名、製品名などは、一般に各所有者の表示、商標または登録商標です。 © 2018 Intel Corporation. 無断での引用、転載を禁じます。

参照

関連したドキュメント

自ら将来の課題を探究し,その課題に対して 幅広い視野から柔軟かつ総合的に判断を下す 能力 (課題探究能力)

を軌道にのせることができた。最後の2年間 では,本学が他大学に比して遅々としていた

の点を 明 らか にす るに は処 理 後の 細菌 内DNA合... に存 在す る

点から見たときに、 債務者に、 複数債権者の有する債権額を考慮することなく弁済することを可能にしているものとしては、

印刷物をみた。右側を開けるのか,左側を開け

さらに, 会計監査人が独立の立場を保持し, かつ, 適正な監査を実施してい るかを監視及び検証するとともに,

*2 施術の開始日から 60 日の間に 1

電子式の検知機を用い て、配管等から漏れるフ ロンを検知する方法。検 知機の精度によるが、他