メモリー・アクセス・プロファイル - xlsoft … › documents › intel › vtune ›...

27
メモリー・アクセス・プロファイル: 一般的なパフォーマンス・ボトルネックの特定と修正 インテル コーポレーション Jackson Marusarz https://software.intel.com/en-us/videos/memory-access-profiling-fix-common-performance-bottlenecks

Upload: others

Post on 29-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

メモリー・アクセス・プロファイル: 一般的なパフォーマンス・ボトルネックの特定と修正

インテル コーポレーションJackson Marusarz

https://software.intel.com/en-us/videos/memory-access-profiling-fix-common-performance-bottlenecks

Page 2: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

2

インテル® Parallel Studio XE

インテル® C/C++ および Fortran コンパイラー

インテル® MKL工学、科学、金融系アプリケーション向けに最適化されたルーチン

インテル® DAALデータ解析/マシンラーニング向けに最適化済み

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

インテル® TBBタスクベースの並列 C++ テンプレート・ライブラリー

インテル® IPP画像、信号、圧縮ルーチン

インテル® VTune™ Amplifierパフォーマンス・プロファイラー

インテル® Advisorベクトル化の最適化とスレッドのプロトタイプ生成

インテル® Trace Analyzer & CollectorMPI プロファイラー

インテル® Inspectorメモリー/スレッドのチェック

プロ

ファ

イル

、解析

、ア

ーキ

テク

チャ

ーパ

フォ

ーマ

ンス

・ラ

イブ

ラリ

クラ

スタ

ーツ

ール

インテル® Distribution for Python*パフォーマンスを引き出すスクリプト

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

Page 3: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

3

インテル® C/C++ および Fortran コンパイラー

インテル® MKL工学、科学、金融系アプリケーション向けに最適化されたルーチン

インテル® DAALデータ解析/マシンラーニング向けに最適化済み

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

インテル® TBBタスクベースの並列 C++ テンプレート・ライブラリー

インテル® IPP画像、信号、圧縮ルーチン

インテル® VTune™ Amplifierパフォーマンス・プロファイラー

インテル® Advisorベクトル化の最適化とスレッドのプロトタイプ生成

インテル® Trace Analyzer & CollectorMPI プロファイラー

インテル® Inspectorメモリー/スレッドのチェック

プロ

ファ

イル

、解析

、ア

ーキ

テク

チャ

ーパ

フォ

ーマ

ンス

・ラ

イブ

ラリ

クラ

スタ

ーツ

ール

インテル® Distribution for Python*パフォーマンスを引き出すスクリプト

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

インテル® Parallel Studio XE

Page 4: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

4

正確なデータ - 低オーバーヘッド CPU、GPU、FPU、スレッド化、帯域幅…

意味のある解析 スレッド化、OpenMP* 領域効率 メモリーアクセス、ストレージデバイス

簡単 データをソースコードに表示 セットアップが簡単で、特別なコンパイラー

は不要

インテル® VTune™ Amplifier パフォーマンス・プロファイラー

SAS Institute Inc.主任開発者Claire Cates 氏

「先週は、インテル® VTune™ Amplifier により、3 倍のパフォーマンス向上を見つけることができました。今週は、さらに 3 倍パフォーマンスを向上できました。」

Page 5: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

5

LLC (L3)

LLC (L3)

LLC (L3)

LLC (L3)

コア

コア

コア

コア

システム・エージェント

共有 LLC

SN

B

32KBL1D

32KBL1I

256KBL2

コア

コア

コア

LLC (L3)

LLC (L3)

DRAM

メモリー & I/O

メモリー階層の基本

大きい

小さい 速い

遅い

32KBL1D

256KBL2

LLC (L3)

DRAM

Page 6: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

6

インテル® VTune™ Amplifier プロファイルの設定

Page 7: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

7

解析タイプの選択

Page 8: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

8

メモリーアクセス解析サマリー

ウォールクロックとCPU 使用時間

メモリーストールの詳細

平均メモリー・アクセス・レイテンシー

システム要件を判断するベンチマーク

Page 9: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

9

帯域幅使用状況の詳細

アクセス・レイテンシーの詳細

メモリーアクセス解析サマリー

Page 10: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

10

メモリーアクセス: ボトムアップ・ビュー

オーバータイムDRAM 帯域幅

オーバータイムQPI/UPI 帯域幅

関数別の詳細(設定可能)

Page 11: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

11

メモリーアクセス: ボトムアップ・ビュー

ズームおよびフィルターで特定の領域に注目

ズームしたビューで詳細を確認

Page 12: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

12

例: 低い NUMA 使用率

Remote (リモート) メトリックに注目

Memory Bound (メモリー依存) メトリックが高くローカルキャッシュが問題でない場合

Page 13: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

13

例: 低い NUMA 使用率

QPI/UPI 帯域幅が高い領域を見つける

QPI/UPI 帯域幅はソケット間の通信で NUMA の問題を示すことがある

Page 14: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

14

低い NUMA 使用率の一般的な原因

割り当てとファーストタッチのメモリー位置

キャッシュラインのフォルス・シェアリング

必要な場合はパディングを使用する

無作為な配列アクセス

低いスレッド・アフィニティー

例: 低い NUMA 使用率

メモリーを割り当てた場所でスレッドが実行されているか?

Page 15: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

15

例: 非効率な配列アクセスパターン

メモリー依存関数 (パイプライン・スロットの 44% がストールしている)

DRAM と UPI 帯域幅が低い

関数をダブルクリックしてソースビューを表示

Page 16: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

16

例: 非効率な配列アクセスパターン

詳細なソース行レベルのメトリック

入れ子のループ内の非効率な配列アクセスパターン

Page 17: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

17

例: 非効率な配列アクセスパターン

ループ交換

Page 18: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

18

例: 非効率な配列アクセスパターン

Page 19: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

19

メモリー・オブジェクトの識別

割り当てられたオブジェクトを表示

LLC Miss Count (LLC ミスカウント) でソート

Page 20: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

20

メモリー・オブジェクトの識別

ダブルクリックしてソースビューで割り当て位置を確認

アセンブリー・ビューも利用可能

Page 21: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

21

全般解析で詳細を確認

展開可能なメトリックの階層

プロセッサー・パイプラインの詳細

Page 22: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

22

I/O 依存か、CPU 依存か? I/O 操作 (非同期/同期) と計算の間の

インバランスを調査

ストレージアクセスをソースコードにマップ

CPU が I/O を待機している個所を確認

ストレージへのバス帯域幅を測定

レイテンシー解析 レイテンシー・ヒストグラムを利用して

ストレージアクセスをチューニング

I/O を複数のデバイスに分散

スライダーで I/O キューの深さのしきい値を設定

I/O 待機を伴う遅いタスク

ディスク I/O 解析で詳細を確認(HDD、SATA または NVMe SSD)

Page 23: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

23

まとめ

今回確認した項目

Page 24: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

24

まとめ

ほかの項目を確認ほかの項目を確認ほかの項目を確認ほかの項目を確認

Page 25: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

25

関連情報

インテル® Parallel Studio XE 2018 をお試しください!

製品の評価版: https://www.isus.jp/intel-parallel-studio-xe/

ほかのウェビナーもご覧ください!

https://software.seek.intel.com/fall-webinar-series (英語)

関連資料

Python* はネイティブコードと同じくらい速いのか?

インテル® MKL を使用した小行列乗算の高速化

Page 26: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

26

法務上の注意書きと最適化に関する注意事項

本資料の情報は、現状のまま提供され、本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスも許諾するものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的財産権の侵害への保証を含む) をするものではありません。

性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。 結果はこれらの要因によって異なります。 製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

Page 27: メモリー・アクセス・プロファイル - XLsoft … › documents › intel › vtune › 2018 › vtune...LLC (L3) LLC (L3) LLC (L3) LLC (L3) コア コア コア コア

© 2018 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

27