狠狠撸

狠狠撸Share a Scribd company logo
インテル株式会社 プログラマブル?ソリューションズ事業本部
シニア?テクノロジー?スペシャリスト
竹村 幸尚
Programmable Solutions Group 2
ディープラーニング?トポロジーの推論処理
“head”
1
“head”
2
“head”
10
ニューラルネット
「本体」
イメージ
…ほとんどの計算は、ここで実行される
画像認識: CNN (ResNet)
音声認識?言語翻訳
特徴
インデックスの
特徴ベクトル
タグ
物体検出
後処理
インテル? FPGA DLAS
サイズの変更
/ クロップ
イメージ
前処理
Programmable Solutions Group 3
OpenVINO? ツールキット
OpenVX および OpenVX ロゴは、Khronos Group Inc. の商標です。
OpenCL および OpenCL ロゴは、Apple Inc. の商標であり、Khronos者の許可を得て使用しています。
Open VINO? ツールキットとは
コンポーネント?ツール
tools従来型コンピューター?ビジョン – 全 SDK バージョン
最適化されたコンピューター?ビジョン?ライブラリー
GPUCPU FPGA VPU
訓練済み
モデル
インテル? FPGA DLAS
プロセッサーのグラフィックス性能を向上
GPU = インテル? インテグレーテッド?グラフィックス?プロセッシング?ユニットを持つ CPU
VPU = Movidius? ビジョン?プロセッシング?ユニット
インテル? ディープラーニング?
デプロイメント?ツールキット
モデル?オプティマイザー
変換、最適化
IR
推論エンジン
最適化された推論
OpenCV* OpenVX*
OpenCL?
インテル? インテグレーテッド?グラ
フィックスのドライバーとランタイム
インテル? メディア
SDK (オープンソース版)
ビットストリーム
FPGA ランタイム環境 (RTE)
(インテル? FPGA SDK for OpenCL? から)
Programmable Solutions Group 4
? 全インテル? アーキテクチャーで訓練済のモデルをデプロイ可能にします
– CPU、GPU、FPGA、など
? 最良の実行となるよう最適化します
? ユーザーによる検証と調整が可能です
? 全デバイスで使いやすいランタイム API
Caffe*
TensorFlow*
MxNet* .bin
IR
.xml
推論エンジン
共通API(C++)
ロード?推論
CPU プラグイン
GPUプラグイン
FPGAプラグイン
モデル?オ
プティマイ
ザー
拡張性 (C++)
拡張性 (OpenCL)
所定のターゲットを
変換?最適化します
ディープ?ラーニング?デプロイメント?ツール
キット (DLDT)
ONNX*
Programmable Solutions Group 5
インテル? FPGA DLAS の機能
? 一般的なトポロジーに向けたCNN (畳み込みニュー
ラル?ネットワーク) アクセラレーション?エンジ
ンは、グラフ?ループ?アーキテクチャーで実行
されます
– AlexNet、GoogleNet、LeNet、SqueezeNet、
VGG16、ResNet、Yolo、SSD、LSTM など
? ソフトウェア?デプロイメント
– FPGA のコンパイルは不要です
– ランタイムでのリコンフィグレーションが可能です
? カスタマイズされたハードウェア開発
– パラメーターを使用したカスタム?アーキテク
チャーの作成
– OpenCL? フローを使用したカスタム?プリミティ
ブ
畳み込み
PE アレイ
クロスバー
prim prim prim カスタム
DDR
メモリー
読み取り/書き込み
特徴マップキャッシュ
DDR
コンフィグレーション?
エンジン
Programmable Solutions Group 6
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
Max
Pool
DDR
メモリー
読み取り/
書き込み
特徴マップキャッシュ
DDR
DDR
DDR
コンフィグ
レーション?
エンジンNor
m
実行
Programmable Solutions Group
CNN の計算
Inew ? ?
= ?
?′=?1
1
?
?′=?1
1
Iold ? + ?′ ? + ?′ × F ?′ ?′
入力特徴マップ
(2D イメージのセット)
フィルタ
(3D スペース)
出力特徴マップ
複数のフィルタに繰り返し実行
することで、出力特徴マップの
「層」を複数作成します
7
Programmable Solutions Group 8
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
Norm MaxPool
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?
バッファー
Programmable Solutions Group 9
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
Norm MaxPool
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
Programmable Solutions Group 10
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
Norm MaxPool
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
Programmable Solutions Group 11
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ストリーム?バッファー
出力
入力
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
Programmable Solutions Group 12
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
Programmable Solutions Group 13
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
MaxPool
Programmable Solutions Group 14
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
Programmable Solutions Group 15
DLA のグラフ?マッピング
ReLU
Convolution /
Fully Connected
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
Programmable Solutions Group 16
DLA のグラフ?マッピング
Convolution /
Fully Connected
AlexNet Graph
Conv ReLu Norm MaxPool Fully Conn.
ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
ストリーム?バッファー
出力
入力
Programmable Solutions Group 20
フィーチャ?キャッシュ
特徴データはオンチップにキャッシュされます
? 並列処理エレメントのデイジーチェーンにストリームされ
ます
? ダブルバッファーされます
– 畳み込みとキャッシュの更新が同時進行します
– 1つのサブグラフの出力が他のサブグラフの入力となります
– 不必要な外部メモリーへのアクセスを解消します
ダブルバッファー
オンチップ RAM
ストリーム?
バッファー?サイズ
Programmable Solutions Group 21
フィルター?キャッシュ
フィルター?ウェイトは、各プロセッシング?エレメントにキャッシュされます
? プリフェッチをサポートするためにダブルバッファーされます
– 1つのセットが出力特徴マップの計算に使用されている間、別のセットがプリフェッチされます
DDR
Conv Conv
DDR
Programmable Solutions Group 22
DLA アーキテクチャーの選択
? 必要条件を満たす最適な FPGA イメージを選択します
? 必要に応じてカスタムの FPGA イメージを作成します
Programmable Solutions Group 23
異なるトポロジーに対するサポート
機能とパフォーマンス間にはトレードオフが存在します
畳み込み PE アレイ
クロスバー
ReLU Norm MaxPool
メモリー
読み取り/書き込み
特徴マップキャッシュ
コンフィグレー
ション?エンジン
畳み込み PE アレイ
クロスバー
ReLU Norm MaxPool
メモリー
読み取り/書き込み
特徴マップキャッシュ
コンフィグレー
ション?エンジン
LRN
Permute
Concat
Flatte
n
SoftMa
x
Reshap
e
vs
Programmable Solutions Group 24
サポートされるプリミティブとトポロジー
トポロジー
? サポート有
? リクエストに応じてサポート有
? 将来的にサポートを予定
プリミティブ
?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
?tanh ?deconv
?AlexNet
?GoogleNet v1 ?SSD
?ResNet18 ?SSD
?ResNet50
?ResNet101
?SqueezeNet ?SSD
?VGG16
?Tiny Yolo
?LeNet
Programmable Solutions Group 25
精度を下げてデザインを検討してみる
パフォーマンスと精度の間にはトレードオフが存在します
? 精度を下げることで、より多くの処理が並列的に実行可能となります
? より小さい浮動小数点形式を使用するための、ネットワークの再トレーニングは不要です
? FP11 は INT8/9 よりもメリットがあります
– 再トレーニング不要、より良いパフォーマンス、精度の損失が少ない
FP11
FP10
FP9
FP8
Sign、指数5ビット、仮数10ビットFP16
Sign、指数5ビット、仮数5ビット
Sign、指数5ビット、仮数4ビット
Sign、指数5ビット、仮数3ビット
Sign、指数5ビット、仮数2ビット
Programmable Solutions Group
ライブラ
リー
インテル? ディープラーニ
ング?デプロイメント?
ツールキット
ツール
フレーム
ワーク
インテル? DAAL
ハード
ウェア メモリー & ストレージ ネットワーキング
インテル?
Distribution for
Python
Mlib
BigDL
インテル? Nervana? Graph
インテル? AI (人工知能) ポートフォリオ
体験
アソシアティブ?
メモリーベース
OpenVINO? ツールキット
ビジュアル?インテリ
ジェンス
インテル? FPGA
DLAS
インテル? Math Kernel
Library
(MKL、MKL-DNN)
コンピュート
More
*
26
Programmable Solutions Group 27
性能に関する免責条項
インテル? テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、または
サービスの有効化が必要となる場合があります。実際の性能はシステム構成によって異なります。絶対的なセキュリ
ティーを提供できるコンピューター?システムはありません。詳細については、各システムメーカーまたは販売店にお
問い合わせいただくか、http://www.intel.co.jp/ を参照してください。
テストでは、特定のシステムでの個々のテストにおけるコンポーネントの性能を文書化しています。ハードウェア、ソ
フトウェア、システム構成などの違いにより、実際の性能は掲載された性能テストや評価とは異なる場合があります。
購入を検討される場合は、ほかの情報も参考にして、パフォーマンスを総合的に評価することをお勧めします。性能や
ベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語)
を参照してください。
本資料には、開発中の製品、サービス、プロセスに関する情報が含まれています。ここに記載されているすべての情報
は、予告なく変更されることがあります。最新の予測、スケジュール、仕様、およびロードマップをご希望の方は、イ
ンテルの担当者までお問い合わせください。
?2018 Intel Corporation. Intel、インテル、Intel ロゴ、Arria は、アメリカ合衆国および / またはその他の国における
Intel Corporation またはその子会社の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテルFPGAのDeep Learning Acceleration SuiteとマイクロソフトのBrainwaveをHW視点から比較してみる Intel編

More Related Content

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

  • 2. Programmable Solutions Group 2 ディープラーニング?トポロジーの推論処理 “head” 1 “head” 2 “head” 10 ニューラルネット 「本体」 イメージ …ほとんどの計算は、ここで実行される 画像認識: CNN (ResNet) 音声認識?言語翻訳 特徴 インデックスの 特徴ベクトル タグ 物体検出 後処理 インテル? FPGA DLAS サイズの変更 / クロップ イメージ 前処理
  • 3. Programmable Solutions Group 3 OpenVINO? ツールキット OpenVX および OpenVX ロゴは、Khronos Group Inc. の商標です。 OpenCL および OpenCL ロゴは、Apple Inc. の商標であり、Khronos者の許可を得て使用しています。 Open VINO? ツールキットとは コンポーネント?ツール tools従来型コンピューター?ビジョン – 全 SDK バージョン 最適化されたコンピューター?ビジョン?ライブラリー GPUCPU FPGA VPU 訓練済み モデル インテル? FPGA DLAS プロセッサーのグラフィックス性能を向上 GPU = インテル? インテグレーテッド?グラフィックス?プロセッシング?ユニットを持つ CPU VPU = Movidius? ビジョン?プロセッシング?ユニット インテル? ディープラーニング? デプロイメント?ツールキット モデル?オプティマイザー 変換、最適化 IR 推論エンジン 最適化された推論 OpenCV* OpenVX* OpenCL? インテル? インテグレーテッド?グラ フィックスのドライバーとランタイム インテル? メディア SDK (オープンソース版) ビットストリーム FPGA ランタイム環境 (RTE) (インテル? FPGA SDK for OpenCL? から)
  • 4. Programmable Solutions Group 4 ? 全インテル? アーキテクチャーで訓練済のモデルをデプロイ可能にします – CPU、GPU、FPGA、など ? 最良の実行となるよう最適化します ? ユーザーによる検証と調整が可能です ? 全デバイスで使いやすいランタイム API Caffe* TensorFlow* MxNet* .bin IR .xml 推論エンジン 共通API(C++) ロード?推論 CPU プラグイン GPUプラグイン FPGAプラグイン モデル?オ プティマイ ザー 拡張性 (C++) 拡張性 (OpenCL) 所定のターゲットを 変換?最適化します ディープ?ラーニング?デプロイメント?ツール キット (DLDT) ONNX*
  • 5. Programmable Solutions Group 5 インテル? FPGA DLAS の機能 ? 一般的なトポロジーに向けたCNN (畳み込みニュー ラル?ネットワーク) アクセラレーション?エンジ ンは、グラフ?ループ?アーキテクチャーで実行 されます – AlexNet、GoogleNet、LeNet、SqueezeNet、 VGG16、ResNet、Yolo、SSD、LSTM など ? ソフトウェア?デプロイメント – FPGA のコンパイルは不要です – ランタイムでのリコンフィグレーションが可能です ? カスタマイズされたハードウェア開発 – パラメーターを使用したカスタム?アーキテク チャーの作成 – OpenCL? フローを使用したカスタム?プリミティ ブ 畳み込み PE アレイ クロスバー prim prim prim カスタム DDR メモリー 読み取り/書き込み 特徴マップキャッシュ DDR コンフィグレーション? エンジン
  • 6. Programmable Solutions Group 6 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 Max Pool DDR メモリー 読み取り/ 書き込み 特徴マップキャッシュ DDR DDR DDR コンフィグ レーション? エンジンNor m 実行
  • 7. Programmable Solutions Group CNN の計算 Inew ? ? = ? ?′=?1 1 ? ?′=?1 1 Iold ? + ?′ ? + ?′ × F ?′ ?′ 入力特徴マップ (2D イメージのセット) フィルタ (3D スペース) 出力特徴マップ 複数のフィルタに繰り返し実行 することで、出力特徴マップの 「層」を複数作成します 7
  • 8. Programmable Solutions Group 8 DLA のグラフ?マッピング ReLU Convolution / Fully Connected Norm MaxPool AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム? バッファー
  • 9. Programmable Solutions Group 9 DLA のグラフ?マッピング ReLU Convolution / Fully Connected Norm MaxPool AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力
  • 10. Programmable Solutions Group 10 DLA のグラフ?マッピング ReLU Convolution / Fully Connected Norm MaxPool AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力
  • 11. Programmable Solutions Group 11 DLA のグラフ?マッピング ReLU Convolution / Fully Connected AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ストリーム?バッファー 出力 入力 ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です
  • 12. Programmable Solutions Group 12 DLA のグラフ?マッピング ReLU Convolution / Fully Connected AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力
  • 13. Programmable Solutions Group 13 DLA のグラフ?マッピング ReLU Convolution / Fully Connected AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力 MaxPool
  • 14. Programmable Solutions Group 14 DLA のグラフ?マッピング ReLU Convolution / Fully Connected AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力
  • 15. Programmable Solutions Group 15 DLA のグラフ?マッピング ReLU Convolution / Fully Connected AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力
  • 16. Programmable Solutions Group 16 DLA のグラフ?マッピング Convolution / Fully Connected AlexNet Graph Conv ReLu Norm MaxPool Fully Conn. ブロックはランタイムでリコンフィグレーションおよびバイパスが可能です ストリーム?バッファー 出力 入力
  • 17. Programmable Solutions Group 20 フィーチャ?キャッシュ 特徴データはオンチップにキャッシュされます ? 並列処理エレメントのデイジーチェーンにストリームされ ます ? ダブルバッファーされます – 畳み込みとキャッシュの更新が同時進行します – 1つのサブグラフの出力が他のサブグラフの入力となります – 不必要な外部メモリーへのアクセスを解消します ダブルバッファー オンチップ RAM ストリーム? バッファー?サイズ
  • 18. Programmable Solutions Group 21 フィルター?キャッシュ フィルター?ウェイトは、各プロセッシング?エレメントにキャッシュされます ? プリフェッチをサポートするためにダブルバッファーされます – 1つのセットが出力特徴マップの計算に使用されている間、別のセットがプリフェッチされます DDR Conv Conv DDR
  • 19. Programmable Solutions Group 22 DLA アーキテクチャーの選択 ? 必要条件を満たす最適な FPGA イメージを選択します ? 必要に応じてカスタムの FPGA イメージを作成します
  • 20. Programmable Solutions Group 23 異なるトポロジーに対するサポート 機能とパフォーマンス間にはトレードオフが存在します 畳み込み PE アレイ クロスバー ReLU Norm MaxPool メモリー 読み取り/書き込み 特徴マップキャッシュ コンフィグレー ション?エンジン 畳み込み PE アレイ クロスバー ReLU Norm MaxPool メモリー 読み取り/書き込み 特徴マップキャッシュ コンフィグレー ション?エンジン LRN Permute Concat Flatte n SoftMa x Reshap e vs
  • 21. Programmable Solutions Group 24 サポートされるプリミティブとトポロジー トポロジー ? サポート有 ? リクエストに応じてサポート有 ? 将来的にサポートを予定 プリミティブ ?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 ?tanh ?deconv ?AlexNet ?GoogleNet v1 ?SSD ?ResNet18 ?SSD ?ResNet50 ?ResNet101 ?SqueezeNet ?SSD ?VGG16 ?Tiny Yolo ?LeNet
  • 22. Programmable Solutions Group 25 精度を下げてデザインを検討してみる パフォーマンスと精度の間にはトレードオフが存在します ? 精度を下げることで、より多くの処理が並列的に実行可能となります ? より小さい浮動小数点形式を使用するための、ネットワークの再トレーニングは不要です ? FP11 は INT8/9 よりもメリットがあります – 再トレーニング不要、より良いパフォーマンス、精度の損失が少ない FP11 FP10 FP9 FP8 Sign、指数5ビット、仮数10ビットFP16 Sign、指数5ビット、仮数5ビット Sign、指数5ビット、仮数4ビット Sign、指数5ビット、仮数3ビット Sign、指数5ビット、仮数2ビット
  • 23. Programmable Solutions Group ライブラ リー インテル? ディープラーニ ング?デプロイメント? ツールキット ツール フレーム ワーク インテル? DAAL ハード ウェア メモリー & ストレージ ネットワーキング インテル? Distribution for Python Mlib BigDL インテル? Nervana? Graph インテル? AI (人工知能) ポートフォリオ 体験 アソシアティブ? メモリーベース OpenVINO? ツールキット ビジュアル?インテリ ジェンス インテル? FPGA DLAS インテル? Math Kernel Library (MKL、MKL-DNN) コンピュート More * 26
  • 24. Programmable Solutions Group 27 性能に関する免責条項 インテル? テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、または サービスの有効化が必要となる場合があります。実際の性能はシステム構成によって異なります。絶対的なセキュリ ティーを提供できるコンピューター?システムはありません。詳細については、各システムメーカーまたは販売店にお 問い合わせいただくか、http://www.intel.co.jp/ を参照してください。 テストでは、特定のシステムでの個々のテストにおけるコンポーネントの性能を文書化しています。ハードウェア、ソ フトウェア、システム構成などの違いにより、実際の性能は掲載された性能テストや評価とは異なる場合があります。 購入を検討される場合は、ほかの情報も参考にして、パフォーマンスを総合的に評価することをお勧めします。性能や ベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。 本資料には、開発中の製品、サービス、プロセスに関する情報が含まれています。ここに記載されているすべての情報 は、予告なく変更されることがあります。最新の予測、スケジュール、仕様、およびロードマップをご希望の方は、イ ンテルの担当者までお問い合わせください。 ?2018 Intel Corporation. Intel、インテル、Intel ロゴ、Arria は、アメリカ合衆国および / またはその他の国における Intel Corporation またはその子会社の商標です。 * その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。