久保寺 陽子

AI

人工知能

人工知能
マシンラーニング

高度なプログラミングをすることなく、人間の心理と関連した認識機能を実行するために、経験を基にした機械の学習する能力

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

長期間にわたってより多くのデータを使用することにより、性能が向上するアルゴリズム

ディープ
ラーニング
多層ニューラル・ネット
ワークが膨大な量のデー
タから学ぶマシンラーニ
ングのサブセット2

マシンラーニング技術の分析
マシンラーニング
経験 (データ) から自主的に学ぶ計算手法

ディープラーニング

その他 (従来) の ML

多くの隠れたレイヤーへの階層的アプローチ– 画像や音声、自然言語などの正確に分類されたデータからフレームを得る。特徴は学習される。

極めて少ない (1 つまたは 2 つの) 隠れたレイヤーを使ってクラスタリング、回帰、分類を行う従来のマシンラーニングの手法。特徴エンジニアリングが必要。

訓練
モデル構築のための訓練•モデル構築時間は重要

推論
モデルを分類、予測、認識に適用
•
•

“dog”

簡単に分散処理基準: スループット、TCO @ scale
代表的なユーザー: CSP、HPC

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

代表的なユーザー: Enterprise、HPC

3インテルのコンピューター・ビジョン・ポートフォリオ
ソリューション

ツール

フレームワーク

ライブラリー

ハードウェア
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

4

インテル® ディープラーニング・ブースト
インテル® Xeon® スケーラブル・プロセッサー (開発コード名 Cascade Lake)

インテル® Xeon® スケーラブル・プロセッサーでは数値精度の低い命令を使って組み込まれたディープラーニングのアクセラレーションが可能
Q3’ 2018-Q4’ 2018

Q3’ 2017-Q3’ 2018

推論

INT8

FP32

精度

精度

インテル® Xeon® スケーラブル・
プロセッサー (開発コード名 Skylake)

INT8

インテル® Xeon®
スケーラブル・プロセッサー

Q4’ 2018- 2019

VNNI
サポート

INT8
インテル® Xeon®
スケーラブル・プロセッサー(開発コード名 Cascade Lake)

インテル® ディープラーニング・ブースト対応
インテル® Xeon® スケーラブル・プロセッサー

https://www.intel.com/content/www/us/en/now/your-data-on-intel/deep-learning-boost-video.html (英語)https://software.intel.com/en-us/articles/lower-numerical-precision-deep-learning-inference-and-training (英語)
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

5

VNNI

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

6

VNNI

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

7https://software.intel.com/content/www/us/en/develop/tools/dis
tribution-for-python.html (英語)Python* 向けインテル® ディストリビューションで Python* を高速化
科学計算、データ解析、マシンラーニング、ディープラーニング向けのハイパフォーマンスな Python*

高速なパフォーマンス

優れた生産性

エコシステムの互換性

パフォーマンス・ライブラリー、並列化、マルチスレッド化、言語拡張

事前ビルドの高速化されたパッケージ

Python* 3.7、conda、pip をサポート▪ インテル® MKL1 とインテル® oneDAL2により NumPy*/SciPy*/scikit-learn を高速化▪ 数値計算、マシンラーニング/ディープラーニング、HPC、データ解析向けの事前ビルドの最適化されたパッケージ▪ Python* 3.7 をサポート、最適化を
Anaconda* ディストリビューションに統合▪ scikit-learn、daal4py によるデータ解析、
マシンラーニング、ディープラーニング▪ 既存の Python* から簡単に移行可能 コード変更不要▪ Numba と Cython によるスケーリング▪ Matplotlib を含む▪ ディストリビューションおよび最適化されたパッケージは conda、pip、apt get、yum、
Docker* Hub から利用可能、さまざまなパ
フォーマンスの最適化を Anaconda* ディストリビューションに統合▪ 最適化された mpi4py、Dask & PySparkで動作▪ 商用開発を含むすべてのユーザーに無料で提供▪ 最適化はメインの Python* トランクに反映される▪ 最新のインテル® アーキテクチャー向けに最適化

オペレーティング・システム: Windows*、Linux*、macOS*3

インテル® アーキテクチャー・ベースのプラットフォーム

詳細: xlsoft.com/jp/products/intel/python/
最適化に関する注意事項

1 インテル® マス・カーネル・ライブラリー© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

3 インテル® Parallel Studio XE Composer Edition でのみ利用可能

2 インテル® oneAPI データ・アナリティクス・ライブラリー

9

ネイティブコードに近いパフォーマンスを実現▪ 科学計算、マシンラーニング、データ解析向けに
NumPy*/SciPy*/scikit-learn を高速化
▪ 既存の Python* から簡単に移行可能 - コード変更不要▪ 最新のインテル® プロセッサー向けの高度な最適化

バージョン 2020 の新機能
▪ Python* のバージョンを 3.7 に更新▪ インテル® DAAL を使用して高速化された scikit-learn の主要アルゴリズムによりマシンラーニングのパフォーマン
スを向上▪ 改良された daal4py パッケージを使用して Python* API
でインテル® DAAL 機能を利用するデータ・サイエンティス
トのニーズに対応

インテル® MKL を使用したネイティブ
コードに対するパフォーマンス効率

Python* 向けインテル® ディストリビューションで Python* を高速化
インテルによる Python* 向け最適化はネイティブコード scikit-learn に匹敵するパフォーマンスを達成 - インテル® Xeon® プロセッサー

Python* 向けインテル® ディストリビューション 2020

stock Python*Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, softwareor service activation. Learn more at intel.com, or from the OEM or retailer. Performance results are based on testing
as of Nov. 27, 2019 and may not reflect all publicly available security updates. See configuration disclosure for details.
No product can be absolutely secure. Software and workloads used in performance tests may have been optimized
for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured
using specific computer systems, components, software, operations and functions. Any change to any of those factors
may cause the results to vary. You should consult other information and performance tests to assist you in fully
evaluating your contemplated purchases, including the performance of that product when combined with otherproducts. For more complete information visit www.intel.com/benchmarks.
Configuration: Testing by Intel as of Nov. 27, 2019. Stock Python: python 3.7.5 h0371630_0 installed from conda, numpy 1.17.4, numba 0.46.0, llvmlite 0.30.0, scipy 1.3.2, scikit-learn 0.21.3 installed from pip; Intel Python: Intel®
Distribution for Python* 2020 Gold: python 3.7.4 hf484d3e_3, numpy 1.17.3 py37ha68da19_4, mkl 2020 intel_133, mkl_fft 1.0.15 py37ha68da19_3, mkl_random 1.1.0 py37ha68da19_0, numba 0.45.1 np117py37_1, llvmlite 0.29.0
py37hf484d3e_9, scipy 1.3.1 py37ha68da19_2, scikit-learn 0.21.3 py37ha68da19_14, daal 2020 intel_133, daal4py 2020 py37ha68da19_4; CentOS Linux 7.3.1611, kernel 3.10.0-514.el7.x86_64; Hardware: Intel(R) Xeon(R) Platinum
8280 CPU @ 2.70GHz (2 sockets, 28 cores/socket, HT: off), 256 GB of DDR4 RAM, 16 DIMMs of 16 GB@2666MHzIntel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets andother optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended foruse with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding thespecific instruction sets covered by this notice. Notice revision #20110804
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

10

Python* 向けの最も使われるマシンラーニング・パッケージ
https://scikit-learn.org/stable/index.html (英語)

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

11

インテル® DAAL で scikit-learn の最適化

scikit-learn• マシンラーニングで最も使用されるパッケージ• 異なるパラメーターで数百ものアルゴリズム• とても融通が利いて、使いやすいインターフェイス

DAAL4Py

インテル® DAAL は Python* API (ミドルウェア)を備える

インテル® DAAL

インテル® アーキテクチャーにおける高性能な分析とマシンラーニング・アルゴリズム

https://github.com/IntelPython/daal4py (英語)
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

12

Python* + ネイティブコードのチューニング
インテル® VTune™ プロファイラーで性能解析 (インテル® Parallel Studio XE に同梱)

課題
▪ Python* とネイティブコードが混在するアプリ
ケーションを 1 つのツールでプロファイル▪ 非効率なランタイム実行を検出

ソリューション
▪ Python*/C/C++ 混在コードと拡張を自動検出▪ パフォーマンス hotspot を行レベルで正確に識別

Insert screenshot image▪ 低オーバーヘッド、実行中のアプリケーション
へのアタッチ／デタッチ▪ パフォーマンスへの影響が大きい個所をチュー
ニング
インテル® VTune™ プロファイラーとインテル® Parallel Studio XE で可能最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

Python* とネイティブ関数の自動検出およびパフォーマンス解析

13

Python* 向けインテル® ディストリビューション 2020 のインストール
スタンドアロンの
インストーラーフル・インストーラーのダウンロード
https://software.intel.com/en-us/intel-distribution-for-python (英語)

3.7パッケージ・マネージャーの使用

Anaconda でアクセス
https://software.intel.com/content/www/us/en/develop/articles/usingintel-distribution-for-python-with-anaconda.html (英語)apt でアクセス
https://software.intel.com/content/www/us/en/develop/articles/installingintel-free-libs-and-python-apt-repo.html (英語)Yum でアクセス
https://software.intel.com/content/www/us/en/develop/articles/installingintel-free-libs-and-python-yum-repo.html(英語)その他PyPl、Docker でアクセス最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

14

https://github.com/IntelPython (英語)••

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

サンプルプログラムやベンチマークなど
DAAL4Py も提供

15https://www.xlsoft.com/jp/products/intel/perflib/daal/index.html

インテル® DAAL による解析とマシンラーニングのスピードアップ
マシンラーニングとビッグデータ解析のパフォーマンス
を高速化▪ アプリケーションがより速くより優れた予測を行えるように支援▪ 最高のパフォーマンスを引き出せるようにデータの取り込みとアルゴリズムの計算を最適化▪ 広範なアプリケーションのニーズを満たす、オフライン、ストリーミ
ング、分散型使用モデルをサポート▪ エッジデバイスとクラウドサービス間で解析ワークロードを分割してアプリケーション全体のスループットを最適化

バージョン 2020 の新機能
新しいアルゴリズム▪ ハイパフォーマンス多項 Adaboost、広く利用されている分類
アルゴリズム▪ 拡張勾配ブースティング機能、確率的分類と変数の重要度計算を提供▪ 拡張決定木機能、確率的分類と加重データを提供

詳細: xlsoft.com/jp/products/intel/perflib/daal/

前処理

変換

解析

モデリング

検証

意思決定

展開、
フィルタリング、正規化

集計、
次元縮小

サマリー統計
クラスタリングなど

マシンラーニング (訓練)、パラメーター推定、
シミュレーション

仮説検証、
モデルエラー

予測、決定木など

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

17

インテル® DAAL の処理モデル
バッチ処理

分散処理

オンライン処理

R1
D1
Dk-… D1

Dk

D2

1
追加

D3 D2 D1

R2

R

Si,Ri
Dk

R = F(D1,…,Dk)

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

Si+1 = T(Si,Di)
Ri+1 = F(Si+1)

Rk
R = F(R1,…,Rk)

18

インテル® DAAL のアルゴリズム
マシンラーニング

リッジ回帰
線形回帰

2019 Update 5 の新機能

DBSCAN

2019 Update 5 の新機能

LASSO

回帰
2020 の新機能

教師あり学習決定木

AdaBoost

ランダムフォレスト

Brown/Logit
ブースティング

勾配ブースティング

ナイーブベイズ分類

ロジスティック
回帰kNN
バッチ処理をサポートするアルゴリズム

教師なし学習K 平均法

EM (GMM)

協調
フィルタリング

交互最小 2 乗
(ALS)

アプリオリ

SVM

バッチおよび分散処理をサポートするアルゴリズム
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

19

インテル® DAAL のアルゴリズム
データ変換および解析
データセットの
基礎統計

補正と依存性

低次モーメント

コサイン距離行列の因数分解

SVD

次元縮小

外れ値検出

PCA

単変量

QR
相関距離

分位数

コレスキー

順序統計量

分散共分散
行列

tSVD

相関ルール
マイニング
(アプリオリ)

多変量

最適化ソルバー(SGD、AdaGrad、lBFGS、CD)

数学関数(exp、log、…)

バッチ処理をサポートするアルゴリズム
バッチ、オンライン、分散処理をサポートするアルゴリズム
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

20

インテル® DAAL による性能のスケール
CPU コア内▪ SIMD ベクトル化: 最新の命令セットに最適化、インテル® AVX2、インテル® AVX-512...
▪ 内部的には、インテル® MKL のシーケンシャル部分を採用

マルチコアやメニーコアへのスケール▪ インテル® スレッディング・ビルディング・ブロックによるスレッド化

クラスターへのスケール▪ ユーザーのアプリケーションによる分散処理 (MPI、MapReduce など)▪ インテル® DAAL の利用– 部分的で中間的な計算結果をサポートするデータ構造– 部分的で中間的な計算結果を全体の計算結果にまとめる関数
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

21

勾配ブースティングのパフォーマンス (数値が大きいほど高性能)
インテル® DAAL 2020 と DMLC XGBoost 0.9 の比較
60

54.8

スピードアップ

50
40
28.4

30

19.8

20
8.4

10

10.4
2.8

17.1
8.4 11.0

5.0

13.4

8.9 11.5

MNIST

MSRank2.3

0AbaloneLetters

Mortgage

Higgs

トレーニング

Airline
推論

Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. Performance results are based on testing
as of Nov. 11, 2019 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure. Software and workloads used in performance tests may have been optimized.
for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors
may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For
more complete information about performance and benchmark results, visit www.intel.com/benchmarks.
Configuration:. CPU configuration: c5.metal AWS Instance (2nd Generation Intel® Xeon® Scalable Processors 2 sockets, HT:on, Turbo:on, OS: Ubuntu 18.04.2 LTS, Total Memory 193 GB (12 slots/16GB/2933 MHz), BIOS: 1.0
Amazone EC2 (ucode: 0x5000017), OMP Environment: OMP_NUM_THREADS=48 OMP_PLACES={0}:96:1). SW: XGBoost 0.9 download from PIP, Intel DAAL: 2020 version. Python env: Python 3.6, Numpy 1.16.4, Pandas 0.25,
Scikit-lean 0.21.2. Parameters for XGBoost: on CPU = { 'alpha': 0.9, 'max_bin': 256, 'scale_pos_weight': 2, 'learning_rate': 0.1, 'subsample': 1, 'reg_lambda': 1, "min_child_weight": 0, 'max_depth': 8, 'max_leaves': 2**8, ‘tree_method’:'hist‘, 'predictor‘: 'cpu_predictor' }. Parameters for XGB on GPU { 'alpha': 0.9, 'max_bin': 256, 'scale_pos_weight': 2, 'learning_rate': 0.1, 'subsample': 1, 'reg_lambda': 1, "min_child_weight": 0, 'max_depth': 8, 'max_leaves': 2**8,‘tree_method’: ‘gpu_hist‘, 'predictor‘: ‘gpu_predictor' }. Input data format: Numpy array . objective functions: 'binary:logistic‘ for binary classification, ‘multi:softmax’ for multiclass, ‘reg:squarederror’ for regressions. Number of iterations:200 for MNIST, 100 for Mortgage, 1000 for others.
Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and otheroptimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use withIntel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specificinstruction sets covered by this notice. Notice revision #20110804
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

22

スピードアップインテル® DAAL 2020 と Apache Spark* MLlib のパフォーマンス
(数値が大きいほど高性能)
20
18
16
14
12
10
8
6
4
2
0

18.2

18.1
13.8

7.4
3.6
1

1

1

暗黙的 ALS

K 平均法

線形回帰

Apache Spark* MlLib

1

1

相関

PCA

インテル® DAALIntel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. Performance results are based on testing
as of Nov. 11, 2019 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure. Software and workloads used in performance tests may have been optimized.
for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors
may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For
more complete information visit www.intel.com/benchmarks.
Configuration: Testing by Intel as of Nov. 11, 2019. 7 x m5.2xlarge AWS instances, Intel® Data Analytics Acceleration Library 2020 (Intel® DAAL); Correlation (# samples = 10M, # features = 1000, (Intel® DAAL=35.2s,
MLLib=638.2s)), PCA (# samples = 10M, # features = 1000 (Intel® DAAL=35.2s, MLLib=639.8s)), implicit ALS (# users = 1M, # items = 1M, # factors = 100, # Iterations = 1 (Intel® DAAL=37.6s, MLLib=134.9s)), Linear Regression (#samples = 100M, # features = 50 (Intel® DAAL=16.3s, MLLib=224.5s)), k-means (# samples = 100M, # features = 50, # clusters = 10, # Iterations = 100 (Intel® DAAL=211s, MLLib=1567.3s))
Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and otheroptimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use withIntel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specificinstruction sets covered by this notice. Notice revision #20110804
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

23

OpenVINO™ ツールキット(Open Visual Inference & Neural Network Optimization)
https://www.xlsoft.com/jp/products/intel/openvino/index.html

OpenVINO™ ツールキットの概要
OpenVINO™ ツールキット
推論
エンジン

ライブラリーDL
ワークベンチ

ツール
画像処理

モデル・
オプティマイザー

訓練済み
モデル

個別に提供

ディープラーニング

OpenVINO™ ツールキットはインテル® アーキテクチャーに最適化され幅広い OS をサポート: Ubuntu*、CentOS*、Yocto*、Windows* 10、macOS*
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

25

インテル® ディープラーニング・デプロイメント・ツールキット
インテル® アーキテクチャーの性能を有効活用

モデル・オプティマイザー

推論エンジン▪ What it is: 準備段階 -> トレーニングされたモデルをインポート▪ What it is: 高レベルの推論 API▪ Why important: 従来のトポロジー変換で性能/スペースを最適化。ハードウェアがサポートするデータ型への変換では最大の性能向上が見込まれる▪ Why important: インターフェイスは各ハードウェア・タイプ
ごとに直接ロードされるプラグインとして実装。プログラマー
が複数のコード経路を実装、維持することなく最高の性能を提供することが可能
MKL-DNN

訓練済み
モデル
Caffe
TensorFlow*

MxNet*ONNX*

CPU プラグイン
すべてのターゲットに合うように変換 & 最適化

モデル・オプティマイザー変換 & 最適化

IR

IR .data

ロード、推論IR = 中間表現フォーマット

PyTorch*GPU = インテグレーテッド・グラフィックス・プロセシング・ユニット/インテル® プロセッサー・グラフィックスを搭載したインテル® CPU

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

clDNN

推論エンジン異なるプラット
フォーム上で最適化された推論を行う共通 API(C++、Python*)GPU プラグイン
DLA

FPGA プラグイン
インテル® Movidius™
Myriad™ プラグイン

GNA プラグイン
HDDL プラグイン

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

26

モデル・オプティマイザーによる性能向上
モデル・オプティマイザー
解析
訓練済み
モデル

数値化

中間表現フォーマット (IR)

トポロジーの最適化
変換▪ 使い勝手の良い Python* ベースのワークフローはフレームワークの再構築を要求しない▪ サポートされているさまざまなフレームワークからモデルを読み込む - Caffe、TensorFlow*、MXNet*、ONNX*、Kaldi*▪ Caffe、MXNet*、TensorFlow* の 100 以上のモデルを検証済み、ONNX* model zoo のすべてのモデルをサポート▪ Kaldi* のサポートにより、モデル・オプティマイザーは画像認識以外のネットワークでの推論を拡張▪ 中間表現フォーマット (IR) は標準レイヤーを使用しており、ユーザーが提供するカスタムレイヤーは Caffe 不要▪ サポートされていないレイヤーの場合には、元のフレームワークにフォールバックが可能だが、オリジナルのフレームワークが必要最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

27

ユーザープログラムからの使用方法
推論エンジン
訓練済み .caffemodel
NNモデルデータ.prototxt

推論エンジン
ネットワークモデル・
オプティマイザー.xml

Infer()
LoadNetwork()

出力

.bin
推論エンジン
中間表現フォーマット

ユーザープログラム

解析と結果の処理モデル
入力

CNNNetwork

CNNNetReader

VideoCapture<OpenCV>

ReadNetwork()
ReadWeights()

推論エンジンとの利用は簡単!
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

28

ハイエンドモデル

FPGA
エントリーモデルiGPU

OpenVINO™ 利用の同じソフトウェア

開発効率を上げる推論エンジンの柔軟性

どの PC でも評価やPoC を開始できる• エントリーからハイエンドまで、異なる
ハードウェア構成を同じソフトウェアでサポート• 容易なソフトウェア開発とメンテナンス
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

必要に応じていつでもアクセ
ラレーターに切り替え• 詳細なワークロードの評価なしでプロジェクトがスタート可能• 推論エンジンは他のディープラーニン
グ・ソリューションとは異なりハード
ウェア依存性が少ない29

今のデバイスに付加価値を

既存のアプリケーション

既存のアプリ
ケーション

GUI

GUI

CPU

•
•

iGPU

DL
ワークロードCPU

iGPU

推論エンジンは、内蔵 GPU を利用することによって、既存のアプリケーション
への影響を最小限におさえながらユーザーの機能追加を可能に追加費用やデバイスは不要

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

30

推論エンジンで最適なモデル性能を実現▪ 幅広いインテル® アーキテク
チャー (CPU/GEN/FPGA) をサポートする最適化された推論▪ ヘテロジニアスなハードウェア・
タイプにまたがったレイヤーの実行をサポート▪ 非同期実行により性能を向上▪ 次世代のインテル® アーキテクチャー・ベースのプロセッサー
向けの大規模開発
GPU = インテグレーテッド・グラフィックス・プロセシング・ユニット/
インテル® プロセッサー・グラフィックスを搭載したインテル® CPU
GNA = ガウス混合モデルおよびニューラル・ネットワーク・アクセラレーター

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

アプリケーション/サービス

推論
エンジン
ランタイム

プラグイン・アーキテクチャー▪ すべてのインテル® アーキテク
チャーをサポートする簡単で統一された API

推論エンジン共通 API

１つのclDNN
API ☺

インテル®
Movidius™
プラグイン

FPGA
プラグイン

インテル® MKL
(MKL-DNN)
プラグイン

プラグイン

DLA

組込み関数

OpenCL*

Movidius™ API

GNA APIインテル®
Arria® 10
FPGA

インテル® Xeon® プロセッサー
インテル® Core™ プロセッサー
Intel Atom® プロセッサー

インテル®
グラフィックス
(GPU)

インテル®
Movidius™
Myriad™ 2

インテル®
GNA

GNA
プラグイン

モデルの変換 & 結果を左右するデータ & インテリジェンス
OpenCL および OpenCL ロゴは、Apple Inc. の商標であり、Khronos の使用許諾を受けて使用しています。

31

各モデルにおける OpenVINO™ ツールキットとインテル®
アーキテクチャーによるディープラーニング・ワークロードの性能向上
7.73x

性能向上比

フレームレート (FPS) による比較

標準 Caffe
ベースラインモデル (バッチサイズ)
標準 Caffe

OpenCVOpenVINO™ on CPU

OpenVINO™ on CPU + インテル® グラフィックス (GPU)/(FP16)

インテルのハードウェアではアクセラレーターなしでも高速
1Depending on workload, quality/resolution for FP16 may be marginally impacted. A performance/quality tradeoff from FP32 to FP16 can affect accuracy; customers are encouraged to experiment to find what works best for their situation.

The benchmark results reported in this deck may need to be revised as additional testing is conducted. Performance results are based on testing as of April 10, 2018 and may not reflect all publicly
available security updates. See configuration disclosure for details. No product can be absolutely secure. For more complete information about performance and benchmark results, visit www.intel.com/benchmarks. Configuration: Testing byIntel as of April 10, 2018. Intel® Core™ i7-6700K CPU @ 2.90GHz fixed, GPU GT2 @ 1.00GHz fixed Internal ONLY testing, Test v312.30 – Ubuntu* 16.04, OpenVINO™ 2018 RC4. Tests were based on various parameters such as model used (theseare public), batch size, and other factors. Different models can be accelerated with different Intel hardware solutions, yet use the same Intel software tools.

最適化に関する注意事項

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These
optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any

optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this fixed product are intended for use with Intel© 2020 Intel Corporation. 無断での引用、転載を禁じます。
microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804

32

各モデルにおける OpenVINO™ ツールキットとインテル®
アーキテクチャーによるディープラーニング・ワークロードの性能向上
フレームレート (FPS) による比較

20

19.9x1

18

性能向上比

16
14
12
10
8
6
4

標準 Caffe
ベースライン

20
GoogLeNet v1

Vgg16*

Squeezenet* 1.1

モデル (バッチサイズ)
Std. Caffe
Caffeon
onCPU
CPU
標準

OpenCV on CPU

GoogLeNet v1(32)

OpenVINO on
OpenVINO™
on CPUCPU

Vgg16* (32)

OpenVINO™ on CPU +インテル®
グラフィックス
OpenVINO
on GPU(GPU)/(FP16)Squeezenet* 1.1(32)

OpenVINO on
OpenVINO™
onFPGACPU + インテル® FPGA

インテル® FPGA でさらに大きな性能向上
1Depending on workload, quality/resolution for FP16 may be marginally impacted. A performance/quality tradeoff from FP32 to FP16 can affect accuracy; customers are encouraged to experiment to find what works best for their situation.

Performance results are based on testing as of June 13, 2018 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure. For more complete information about
performance and benchmark results, visit www.intel.com/benchmarks. Configuration: Testing by Intel as of June 13, 2018. Intel® Core™ i7-6700K CPU @ 2.90GHz fixed, GPU GT2 @ 1.00GHz fixed Internal ONLY testing, Test v3.15.21 – Ubuntu*
16.04, OpenVINO 2018 RC4, Intel® Arria® 10 FPGA 1150GX. Tests were based on various parameters such as model used (these are public), batch size, and other factors. Different models can be accelerated with different Intel hardware
solutions, yet use the same Intel software tools.

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These
optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any
optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intelmicroprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User andReference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804

33

OpenVINO™ ツールキットのセミナー/ワークショップ
https://www.xlsoft.com/jp/products/intel/tech/seminar/openvino.html（無料）• レベル別に分かれたコース設定: 一般のディープラーニング・フレームワークで構築した新たな学習済みモデルから、OpenVINO™ ツールキットによる推論ア
プリケーションとして実装するまでの流れを学習可能• ベーシックコース: ツールの概要を学習し、サンプルコー
ドをベースにデモが動かせるレベル• アドバンスド・コース: ベーシックコースの受講後に、独自のモデルを構築・最適化して動かせるレベル• ワークショップ: 実際に手を動かしながら順を追ってツールの使い方を学習するためのハンズオン・トレーニングを実施※ベーシックコース、 アドバンスド・コースは座学のみのコース
スライド資料は、セミナー開催後に電子データのダウンロード URL
のみを案内する予定
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

34

インテル® パフォーマンス・ライブラリーの統合•

ディープ・ニューラル・ネットワーク向けインテル® マス・カーネル・ライブラリー(インテル® MKL-DNN)••

インテル® MKL-DNN、 Deep Neural Network Library (DNNL) → インテル® oneAPI ディープ・
ニューラル・ネットワーク・ライブラリー (インテル® oneDNN)•

変更点: ライブラリー名 → インテル® oneDNN、
リポジトリー “intel/mkl-dnn” → “opeapi-src/oneDNN”•

API、環境変数、ビルドオプションは現時点で変更なし

https://github.com/oneapi-src/oneDNN (英語)インテル® Machine Learning Scaling Library (インテル® MLSL)•

インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (インテル® oneCCL) に移行•

https://oneapi-src.github.io/oneCCL (英語)
分散訓練フレームワーク Horovod に統合
https://github.com/horovod/horovod/blob/master/docs/oneccl.md (英語)•

機械学習フレームワーク Pytorch* に統合
https://github.com/intel/torch-ccl (英語)

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

36

oneAPI とは?
https://software.intel.com/content/www/us/en/develop/tools/oneapi.html (英語)
過去のセミナーでも紹介
https://www.isus.jp/event/

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

37

Python* 向けインテル® ディストリ
ビューション

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

出典: https://www.isus.jp/event/38

ベータ版インテル® AI アナリティクス・ツールキット (Linux* のみ)

機能
•

•
•

最適化されたディープ・ラーニング・フレー
ムワーク
高性能な Python*
データ解析 & マシンラーニングの強化

入手先
https://software.intel.com/content/www/us/en/
develop/tools/oneapi.html (英語)

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

39

最適化に役立つ情報 さあ、始めよう
最適化に役立つ情報
iSUS (IA Software User Society)▪

インテル® ソフトウェア開発製品の日本語版や日本語
ヘルプの提供▪

インテル コーポレーションのインテル® ソフトウェア・
ネットワークの記事の日本語化

最適化の近道登録 (英語)TEC ウェビナーを視聴する

インテル® Parallel Studio XE▪ 概要、機能、サポート、コードサンプル (英語)▪ トレーニング資料、Tech.Decoded ウェビナー (英語)、HOW TO ビデオと記事 (英語)
▪ お客様の声 (英語) & ケーススタディー▪ その他のインテル® ソフトウェア開発製品

インテル® Code Modernization Program▪ 概要 (英語)▪ ライブ・トレーニング (英語)intel.ly/2PdkNhN (英語)▪ リモートアクセス
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

40

法務上の注意書きと最適化に関する注意事項
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark*などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。
さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
性能の測定結果はシステム構成の日付時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。
インテルは、サードパーティーのデータについて管理や監査を行っていません。原典を確認し、ほかの情報も参考にして、参照しているデータが正確かどうかを確認してください。
インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。実際の性能はシステム構成によって異なります。絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。詳細については、各システムメーカーまたは販売店にお問い合わせいただくか、http://www.intel.co.jp/ を参照してください。
インテルは、明示されているか否かにかかわらず、いかなる保証もいたしません。ここにいう保証には、商品適格性、特定目的への適合性、および非侵害性の黙示の保証、ならびに履行の過程、取引の過程、または取引での使用から生じるあらゆる保証を含みますが、これらに限定されるわけではありません。
Intel、インテル、Intel ロゴ、Intel Inside、Intel Inside ロゴ、Arria、Intel Atom、Intel Core、Movidius、Myriad、Intel Nervana、Xeon、OpenVINO、Intel RealSense、VTune
は、アメリカ合衆国および / またはその他の国における Intel Corporation またはその子会社の商標です。
最適化に関する注意事項
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。
これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロ
セッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。
注意事項の改訂 #20110804
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

41