インテル® ソフトウェア開発ツールで始める

コードの現代化と最適化
最適化済みのライブラリー群の活用2019 年 4 月
iSUS 編集長
すがわら きよふみ内容インテル® パフォーマンス・ライブラリー







インテル® Distribution for Python*
インテル® マス・カーネル・ライブラリー (インテル® MKL)
インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP)
インテル® スレッディング・ビルディング・ブロック (インテル® TBB)
インテル® Data Analytics Acceleration Library (インテル® DAAL)© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

2

インテル® Parallel Studio XE のコンポーネント
包括的なソフトウェア開発ツールスイート

Composer Edition
ビルド
コンパイラーとライブラリー
インテル®
C/C++、Fortranコンパイラーインテル® MKL1
インテル® DAAL2
インテル® TBB3
C++ スレッド・ライブラリー

インテル® IPP4
画像、信号、データ処理

インテル® Distribution for Python*
ハイパフォーマンスな Python*

Professional Edition

Cluster Edition
スケール
クラスターツール

解析
解析ツール
インテル® VTune™
Amplifierインテル® MPI ライブラリー

パフォーマンス・プロファイラー

インテル® Inspector
メモリー/スレッドのデバッガー

メッセージ・パッシング・インターフェイス・ライブラリーインテル® Trace Analyzer &Collector
MPI チューニングと解析

インテル® Advisor
ベクトル化の最適化、スレッドのプロトタイプ生成、
フローグラフ解析

インテル® Cluster Checker
クラスター診断エキスパート・システム

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

インテル® アーキテクチャー・ベースのプラットフォーム© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

1 インテル® マス・カーネル・ライブラリー
2 インテル® データ・アナリティクス・アクセラレーション・ライブラリー
3 インテル® スレッディング・ビルディング・ブロック
4 インテル® インテグレーテッド・パフォーマンス・プリミティブ
53

インテル® Distribution for Python* で Python* を高速化

科学計算、データ解析、マシンラーニング、ディープラーニング向けのハイパフォーマンスな Python*

高速なパフォーマンス

優れた生産性

エコシステムの互換性

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

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

Python* 2.7/3.6、conda、pip をサポート

 インテル® MKL とインテル® DAAL により
NumPy*/SciPy*/scikit-learn を高速化

 数値計算、マシンラーニング/ディープラーニ
ング、HPC、データ解析向けの事前ビルドの最適化されたパッケージ Python* 2.7/3.6 をサポート、最適化を
Anaconda* ディストリビューションに統合

 Numba* と Cython* によるスケーリング

 Jupyter* Notebook、Matplotlib を含む

 ディストリビューションおよび最適化されたパッケージは conda、pip、apt get、yum、
DockerHub から利用可能、さまざまなパフォー
マンスの最適化を Anaconda* ディストリビュー
ションに統合 最適化された mpi4py、Dask & PySpark で動作 商用開発を含むすべてのユーザーに無料で提供 最適化はメインの Python* トランクに反映される scikit-learn、pyDAAL、TensorFlow*、
Caffe* によるデータ解析、マシンラーニング、
ディープラーニング 既存の Python* から簡単に移行可能 - コー
ド変更不要

 最新のインテル® アーキテクチャー向けに最適化

 インテル® Parallel Studio XE を通してプライ
オリティー・サポートが受けられる

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

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

詳細: isus.jp/python-distribution/© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

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

44

インテル® Distribution for Python* で Python* を高速化
ネイティブコードに近いパフォーマンスを実現 scikit-learn を利用した高速なマシンラーニング:
インテル® DAAL により高速化されたサポート・ベクトル・
マシン (SVM) と K 平均法の予測
 マシンラーニング XGBoost ライブラリーを含む(Linux* のみ) コマンドラインのスタンドアロン・インストールとしても
利用可能

100%

ネイティブコードに対するパフォーマンス効率バージョン 2019 の新機能

インテル® Distribution for Python* 2019 の 科学計算、マシンラーニング、データ解析向けに
NumPy*/SciPy*/scikit-learn を高速化
 既存の Python* から簡単に移行可能 - コード変更不要
 最新のインテル® プロセッサー向けの高度な最適化

インテル® Distribution for Python* 2019 はネイティブコード
scikit-learn に匹敵するパフォーマンスを達成
stock Python* パッケージとの比較 - インテル® Xeon® プロセッサー

90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
10K x 1K

10K x 1K

cosine dist correlation dist kmeans.fit kmeans.predictlinear_reg.fit
linear_reg.predict
ridge_reg.fit
ridge_reg.predict svm.fit(binary)

1K x 15K

1K x 15K

1M x 50

svm.predict(binary)stock Python*

1M x 50

1M x 50

1M x 50

1M x 50

1M x 50

インテル® Distribution for Python* 2019

パフォーマンス結果は 2018 年 7 月 9 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、
パフォーマンス・ベンチマーク・テストの開示 (英語) を参照してください。2018 年 7 月 9 日時点のインテルによるテスト。システム構成: stock Python*: python 3.6.6 hc3d631a_0 を conda でインストール。numpy 1.15、numba 0.39.0、llvmlite 0.24.0、scipy 1.1.0、
scikit-learn 0.19.2 を pip でインストール。インテル® Distribution for Python* 2019 Gold: python 3.6.5 intel_11、numpy 1.14.3 intel_py36_5、mkl 2019.0 intel_101、mkl_fft 1.0.2 intel_np114py36_6、mkl_random 1.0.1 intel_np114py36_6、numba
0.39.0 intel_np114py36_0、llvmlite 0.24.0 intel_py36_0、scipy 1.1.0 intel_np114py36_6、scikit-learn 0.19.1 intel_np114py36_35。Linux* OS: CentOS* 7.3.1611、カーネル 3.10.0-514.el7.x86_64。ハードウェア: インテル® Xeon® Gold 6140 プロセッサー@ 2.30GHz (2 ソケット、18 コア/ソケット、ハイパースレッディング無効)、256GB DDR4 RAM、16 DIMM (16GB @ 2666MHz)。
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂#20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

5

インテルの最適化によりアプリケーションのパフォーマンスを向上
インテル® Distribution for Python* — ブラックショールズ方程式で優れたパフォーマンスを達成

28 倍

350

スピードアップ

操作数/秒 (百万単位)

300
250
200
150

5倍

100

スピードアップ

50
0stock NumPy*

インテル® Distribution forstock NumPy*

Python* 2019インテル® Core™ i7 プロセッサー

問題サイズ = 16777216

インテル® Distribution for
Python* 2019インテル® Xeon® プロセッサー

パフォーマンス結果は 2018 年 7 月 9 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。 性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、
ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、パフォーマンス・ベンチマーク・テストの開示 (英語) を参照してください。
2018 年 7 月 9 日時点のインテルによるテスト。システム構成: stock Python*: python 3.6.6 hc3d631a_0 を conda でインストール。numpy 1.15、numba 0.39.0、llvmlite 0.24.0、scipy 1.1.0、scikit-learn 0.19.2 を pip でインストール。インテル® Distribution for
Python* 2019 Gold: python 3.6.5 intel_11、numpy 1.14.3 intel_py36_5、mkl 2019.0 intel_101、mkl_fft 1.0.2 intel_np114py36_6、mkl_random 1.0.1 intel_np114py36_6、numba 0.39.0 intel_np114py36_0、llvmlite 0.24.0 intel_py36_0、scipy 1.1.0
intel_np114py36_6、scikit-learn 0.19.1 intel_np114py36_35。Linux* OS: CentOS* 7.4.1708、カーネル 3.10.0-693.el7.x86_64。ハードウェア: インテル® Core™ i7-7567U プロセッサー @ 3.50GHz、32GB DDR4 RAM、2 DIMM (16GB @ 2133MHz)。
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

6
6

ほかに確認すべき点
最適化された Python* 以外の Python*/C/C++
アプリケーション・コードの効率は?
パフォーマンス低下の原因が明らかでないものはないか?
パフォーマンス解析により解明できる© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

7

パフォーマンス向上のための Python* + ネイティブコードのチューニング
インテル® VTune™ Amplifier によるパフォーマンス解析 (インテル® Parallel Studio XE に含まれる)課題
 Python* とネイティブコードが混在するアプリ
ケーションを 1 つのツールでプロファイル
 非効率的なランタイム実行を検出

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

 低オーバーヘッド、実行中のアプリケーション
へのアタッチ/デタッチ
 パフォーマンスへの影響が大きい個所をチュー
ニング
Python* とネイティブ関数の自動検出およびパフォーマンス解析
インテル® VTune™ Amplifier とインテル® Parallel Studio XE で利用可能

8© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

問題のコードを素早く正確に診断
Python* からネイティブ関数への呼び出しの詳細

ボトルネックのコード行を正確に特定© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

9詳細な解析により詳しい情報を提供

Python* とネイティブコードのコールスタックのリスト

詳細なタイムライン解析© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

10インテル® MKL による高速でスケーラブルなコード 高度に最適化、スレッド化、ベクトル化された数学関数により、科学、工学、金融、マシンラーニング・アプリ
ケーションにおける計算を高速化
 密/スパース線形代数 (BLAS、LAPACK、PARDISO)、
FFT、ベクトル演算、サマリー統計、ディープラーニン
グ、スプラインなどの主な機能を提供
 コードを分岐せずに各プロセッサー向けに最適化されたコードを自動ディスパッチ
 シングルコアのベクトル化およびキャッシュ効率を向上する最適化 マルチコアとメニーコアの自動並列化
 コアからクラスターにスケーリング 無料およびロイヤルティー・フリーで利用可能 最小限の労力で優れたパフォーマンスを達成

インテル® MKL に含まれる機能
密/スパース線形代数
高速フーリエ変換
ベクトル演算ベクトル RNG

高速ポアソンソルバー
その他© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

11

インテル® MKL 2019 の新機能
JIT 高速小行列乗算
 JIT 機能によりインテル® AVX2 およびインテル® AVX-512 向け S/DGEMM の速度を向上

スパース QR ソルバー
 スパース線形方程式、スパース線形最小 2 乗問題、固有値問題、ランクと null 空間の決定などのソルバー

多項式向け乱数生成
 金融、地質学、生物学分野向けに高度に最適化された多項式乱数ジェネレーター© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

1212

インテル® MKL の機能
線形代数

FFT

BLAS

ベクトル
RNG

サマリー
統計

ベクトル
演算

合同数

尖度

三角

多次元

LAPACK

Wichmann-Hill

その他
スプライン

双曲線
変化係数

ScaLAPACK
メルセンヌツイスター

スパース BLAS

FFTW

指数

順序統計量

インターフェイス
Sobol

反復法スパース
ソルバー

対数

信頼領域

最小/最大

Neiderreiter

PARDISO

累乗

クラスター FFT
クラスター・スパース・
ソルバー

補間

高速ポアソン
非決定的

分散/共分散© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

累乗根

ソルバー

13
13

チューニングされた ISA 固有のコードパスに自動ディスパッチ
コア数の増加  スレッド数の増加  ベクトル幅の増加

インテル®
インテル®
Xeon®
Xeon®
プロセッサー プロセッサー
64 ビット5100 番台

インテル®
Xeon®
プロセッサー
5500 番台

インテル®
Xeon®
プロセッサー
5600 番台

インテル®
インテル® Xeon®
Xeon®
プロセッサープロセッサーE5-2600 v3
E5-2600 v2
製品ファミリー
製品ファミリー v4 製品ファミリー

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

最大コア数

1

2

4

6

12

18-22

28

最大スレッド数

2

2

8

12

24

36-44

56

SIMD 幅

128

128

128

128

256

256

512

ベクトル ISA

インテル®
SSE3

インテル®
SSE3

インテル® SSE4、
インテル® SSE4.1

インテル®
SSE4.2

インテル®
AVX

インテル®
AVX2

インテル®
AVX-512

1. 発売済みおよび出荷済み製品の製品仕様は ark.intel.com/ja を参照してください。

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

14
14

コア、マルチコア、メニーコア、さらにその先へ
自動でパフォーマンスをスケーリング
インテル® MKL

計算リソースのパフォーマンスを引き出す‒ コア: ベクトル化、プリフェッチ、キャッシュ効率‒ マルチコア/メニーコア (プロセッサー/ソケット) レベルの並列化‒ マルチソケット (ノード) レベルの並列化‒ クラスター・スケーリング© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

15
15

インテル® MKL によりインテル® Xeon® プロセッサー向けに最適化された DGEMM、SGEMM
DGEMM、インテル® Xeon® Platinum 8180 プロセッサー 2.50GHz

SGEMM、インテル® Xeon® Platinum 8180 プロセッサー 2.50GHz

2000
1000

問題サイズ (M = N = K)
16 スレッド

28 スレッド

20000

15000

9000

10000

8000

7000

6000

5000

4000

3072

3000

2560

2048

2000

1536

1500

1024

800

1000

512

0

6000
4000
2000
0

256
512
800
1000
1024
1500
1536
2000
2048
2560
3000
3072
4000
5000
6000
7000
8000
9000
10000
15000
20000
30000

3000

パフォーマンス (GFLOPS/秒)

8000

256

パフォーマンス (GFLOPS/秒)

4000

56 スレッド

問題サイズ (M = N = K)
16 スレッド

28 スレッド

56 スレッド

パフォーマンス結果は 2018 年 7 月 9 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。 性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、
ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、パフォーマンス・ベンチマーク・テストの開示 (英語) を参照してください。
2018 年 7 月 9 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8180 プロセッサー、2x28 コア、2.50GHz、192GB DDR4-2666。インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイク
ロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

16

インテル® IPP により画像、ビジョン、信号、セキュリティー、ストレージ・アプリケーションのパフォーマンスを向上
画像、信号、データ処理および暗号化計算を高速化•

マルチコア、マルチ OS、マルチプラットフォームに対応した計算集約型の高度に最適化された関数•

ハイパフォーマンスで、使いやすい、プロダクション環境対応の API により素早くアプリケーション・パフォーマンスを向上•

ソフトウェアの開発と保守にかかる費用を軽減し、開発期間を短縮バージョン 2019 の新機能•

大規模データストレージの課題への対応を支援する ZFP 浮動小数点データ圧縮関数 (石油/ガス分野向け)•

bzip2 ソース 1.0.6 の最適化パッチファイル•

エントロピーが高いデータの LZ4 圧縮/展開パフォーマンスを向上•

RBG イメージから CIE Lab 色モデル (およびその逆) に変換する新しい色変換関数•

インテル® AVX-512 (英語) およびインテル® AVX2 (英語) 命令セット向けの最適化を拡張•

インテル® IPP Cryptography ライブラリーのオープンソース・ディストリビューション

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

詳細: isus.jp/intel-ipp/
17

インテル® IPP

ハイパフォーマンスで、使いやすい、プロダクション環境対応の API

画像処理

データ圧縮
信号処理

コンピューター・
ビジョン

暗号化
ベクトル演算カラー変換

信号ドメイン

画像ドメイン

文字列処理
データドメイン

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

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

1インテル® Parallel Studio XE Composer Edition でのみ利用可能© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

18
18

データ圧縮のパフォーマンスを向上
インテル® IPP 2019 と LZ4、Zlib、LZO ライブラリーのデータ圧縮パフォーマンスの比較
2.5
2.3x

2.3x

2

1.9x

1.5

1.6x

1

1.2x
1

1.2x
1

1

1.2x

1

1

1.6x
1

1

1

0.5
0
lz4 1.8.2

lz4-hc 1.8.2(min)lz4-hc 1.8.2(default)

lz4-hc 1.8.2(max)

オリジナル・ライブラリー

zlib 1.2.11 (fast)

zlib 1.2.11(default)

zlib 1.2.11 (best) lzo 2.09 (1c-2)

インテル® IPP 2019

パフォーマンス結果は 2018 年 8 月 15 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、
ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、パフォーマンス・ベンチマーク・テストの開示 (英語) を参照してください。
2018 年 8 月 15 日時点のインテルによるテスト。システム構成: ハードウェア: インテル® Core™ i5-7600 プロセッサー @ 3.50GHz、4 コア、ハイパースレッディング無効。キャッシュ: L1=32KB、L2=256KB、L3=6MB。メモリー: 64GB。Linux* OS: Red Hat* EnterpriseLinux* Server 7.2。インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミン
グ SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、
インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・
リファレンス・ガイドを参照してください。注意事項の改訂 #20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

19

データ展開のパフォーマンスを向上
インテル® IPP 2019 と LZ4、Zlib、LZO ライブラリーのデータ展開パフォーマンスの比較
2.5
2

2.1x

2.1x

2.1x

1.5

1.7x

1.5x
1

1.2x
1

1

1

1.2x

1.2x
1

1

1

1

1

0.5
0
lz4 1.8.2

lz4-hc 1.8.2

lz4-hc 1.8.2

lz4-hc 1.8.2(min)(default)(max)

オリジナル・ライブラリー

zlib 1.2.11 (fast)

zlib 1.2.11

zlib 1.2.11 (best) lzo 2.09 (1c-2)(default)
インテル® IPP 2019

パフォーマンス結果は 2018 年 8 月 15 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、
ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、パフォーマンス・ベンチマーク・テストの開示 (英語) を参照してください。
2018 年 8 月 15 日時点のインテルによるテスト。システム構成: ハードウェア: インテル® Core™ i5-7600 プロセッサー @ 3.50GHz、4 コア、ハイパースレッディング無効。キャッシュ: L1=32KB、L2=256KB、L3=6MB。メモリー: 64GB。Linux* OS: Red Hat* EnterpriseLinux* Server 7.2。インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミン
グ SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、
インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・
リファレンス・ガイドを参照してください。注意事項の改訂 #20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

20

インテル® TBB による高度なスレッド化
スレッド化を利用してマルチコア・パフォーマンスとヘテロジニ
アス・コンピューティングを活用
 CPU、GPU、FPGA にわたって計算負荷の高い作業を並列処理 — C++
で高レベルのシンプルなソリューションを提供
 並列プログラミング向けの最も機能が豊富で包括的なソリューション
 優れた移植性、構成の容易性、コスト、アプローチを備えた将来にわたるスケーラビリティー

バージョン 2019 の新機能

フローグラフの新機能により並列性とヘテロジニアスへの対応が向上(タスク・アナライザーと OpenCL* デバイス選択を向上)

新しいテンプレートにより C++11 多次元配列を最適化

C++17 Parallel STL、OpenCL*、Python* conda 言語をサポート

Windows*、Linux*、Android*、macOS* のサポートを拡張© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

詳細: isus.jp/intel-tbb/
21

インテル® TBB のコンポーネント© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

22

ヘテロジニアス・サポート
インテル® TBB

T1

T0

ヘテロジニアス調整レイヤーとしてインテル® TBB のフロー
グラフは最適化の可能性を保持し、既存のモデルで構成+

インテル® TBBOpenVX*
OpenCL*
COI/SCIF
…

T3

T3

T2

T4

T4

T5

CPU、統合 GPU など

ライブラリー実装の構成レイヤーとしてのインテル® TBB
 1 つのスレッドエンジンで CPU 側の全処理に対応

調整レイヤーとしてのインテル® TBB フローグラフ
 ヘテロジニアス・ハードウェアとソフトウェアを繋ぎ合わせる ブロック間の並列性を示し、統合を容易にする© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

23

インテル® TBB 2019 の優れたパフォーマンス・スケーラビリティー

スピードアップ

インテル® Xeon® プロセッサー

ハードウェア・スレッド数
パフォーマンス結果は 2018 年 7 月 31 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能やベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロ
セッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合
は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、www.intel.com/benchmarks (英語) を参照してください。2018 年 7 月 31 日時点のインテルによるテスト。システム構成: ソフトウェア: インテル® 64 対応インテル® C++ コンパイラー 18.0、インテル® TBB 2019。ハードウェア: 2x インテル® Xeon® Gold 6152 プロセッサー @ 2.10GHz、192GB RAM。Linux* OS: CentOS* 7.4 1708 (Core)、カーネル 3.10.0693.e17.x86_64。注: sudoku、primes、tachyon はインテル® TBB に含まれているコードを使用。
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

24

インテル® DAAL による解析とマシンラーニングのスピードアップ
 インテル® アーキテクチャー・ベースのデバイスで動作しているデータセンターからエッジまで古典的なマシンラーニングと解析パフォーマンス向けに高度にチューニングされた関数バージョン 2019 の新機能
新しいアルゴリズム

 最高のスループット・パフォーマンスを引き出せるように、データの取り込みと結果の計算を同時に処理

 ロジスティック回帰、最も広く利用されている分類アルゴリズム

 広範なアプリケーションのニーズを満たす、バッチ、ストリー
ミング、分散型使用モデルをサポート

 拡張勾配ブースティング機能、不正確な分割計算とユーザー定義のコールバックのキャンセルなどの柔軟性を拡張 Python*、C++、Java* API および Spark* や Hadoop* などの一般的なデータソースへのコネクターを含む

 ユーザー定義のデータ変更プロシージャー、広範な特徴抽出および変換手法をサポート

詳細: isus.jp/intel-daal/

前処理

変換

解析

モデリング

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

集計、
次元縮小

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

マシンラーニング (訓練)、パラメーター推定、
シミュレーション© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

検証

仮説検証、
モデルエラー

意思決定

予測、
決定木など
25

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

相関と
依存関係

行列の
因数分解

次元縮小

外れ値検出

単変量

低次
モーメント

コサイン
距離

SVD

PCA

四分位数

相関距離

QR

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

順序
統計量

分散共分散
行列

コレスキー

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

多変量

数学関数(exp、log、…)

バッチ処理をサポートするアルゴリズム

バッチ、オンライン、分散処理をサポートするアルゴリズム© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

26

インテル® DAAL のパフォーマンス・スケーリング
インテル® DAAL

CPU コア内• SIMD ベクトル化: 最新の命令セット、インテル® AVX2、インテル® AVX-512 向けに最適化• シーケンシャルなインテル® MKL に内部的に依存
マルチコアまたはメニーコアにスケーリング• インテル® TBB のスレッド化
クラスターにスケーリング• ユーザー・アプリケーション (MPI、MapReduce など) で分散処理を実行• インテル® DAAL で提供− 部分結果および中間結果向けのデータ構造− 部分結果または中間結果をグローバル結果に統合する関数© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

27

処理モードインテル® DAAL

バッチ処理

オンライン処理

分散処理
R1
D1

Dk

Dk-… D1

D2

1

アペンド

D3 D2 D1

R2

R

Si,Ri
Dk

R = F(D1,…,Dk)

Si+1 = T(Si,Di)
Ri+1 = F(Si+1)© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

Rk
R = F(R1,…,Rk)

28
28

インテル® DAAL 2019 と XGBoost のパフォーマンスの比較
スピードアップ (インテル® DAAL/XGBoost)

14
12

回帰

分類

10
8
6
4
2
0
HIGGS

MLSR
訓練

スライス位置調整
予測

年予測

XGBoost オープンソース・プロジェクト
パフォーマンス結果は 2018 年 7 月 9 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。 性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、パフォーマンス・ベンチマーク・テストの開示 (英語) を参照してください。
2018 年 7 月 9 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8180 プロセッサー、2x28 コア、2.50GHz、192GB、12x16GB DDR4-2666。インテル® DAAL 2019。Red Hat* Enterprise Linux* 7.2。インテル® コンパイラーでは、インテル®
マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命
令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。
インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂#20110804© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

29

ハイパフォーマンスな実装を支援するツール
インテル® Parallel Studio XE
クラスター
でスケーリ
ングできる
か?

N

インテル® MPI ライブラリーとインテル® MPI Benchmarks

MPI
チューニングY
インテル® コンパイラー
効率良くスレッド化されて
いるか?

Y

ベクトル化

N

メモリー帯域幅に影響されるか?

N

Y

スレッド化

帯域幅の
最適化

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® MKL
インテル® IPP
(メディアおよびデータ・ライブラリー)
インテル® DAALOpenMP*
インテル® TBB
(スレッド・ライブラリー)

30

関連情報
 ハイパフォーマンス・ビッグデータ・コンピューティング向け Harp-DAAL
https://jp.xlsoft.com/documents/intel/magazine/Intel_ParallelUniverse_Issue32_JPN.pdf#page=31

 インテル® MKL のベクトル化された圧縮行列関数による代数計算の高速化
https://jp.xlsoft.com/documents/intel/magazine/Intel_ParallelUniverse_Issue31_JPN.pdf#page=29

 インテル® Advisor の Python* APIによりパフォーマンスの詳細を得る
https://jp.xlsoft.com/documents/intel/magazine/Intel_ParallelUniverse_Issue31_JPN.pdf#page=47

 インテル® DAAL による R の線形回帰の高速化
https://jp.xlsoft.com/documents/intel/magazine/Intel_ParallelUniverse_Issue29_JPN.pdf#page=58

 インテル® DAAL を利用して実際のマシンラーニングの問題を解く
https://jp.xlsoft.com/documents/intel/magazine/Intel_ParallelUniverse_Issue28_JPN.pdf#page=26

 インテル® IPP を利用した画像識別の最適化
https://jp.xlsoft.com/documents/intel/magazine/Intel_ParallelUniverse_Issue24_JPN.pdf#page=62© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

31