2015 の新機能
インテル
® VTune™ Amplifier XE - パフォーマンス・
プロファイラー
より多くのプロファイル・データ
より多くのデータ解析
より簡単に使用可能
最新のプロセッサーおよび
OS をサポート
2
スケーラブルなマルチコア・パフォーマンスを実現
インテル
® VTune™ Amplifier XE パフォーマンス・プロファイラー
アプリケーションが遅いか
?
コア数の増加に伴ってスピードがスケーリングするか
?
データを利用しないチューニングは単なる推測作業
正確な
CPU、GPU
1
、およびスレッドデータ
強力な解析と結果のフィルター
簡単なセットアップ、特別なコンパイラーは不要
SAS Institute Inc.
開発主任
Claire Cates 氏
「先週は、インテル
® VTune™ Amplifier
XE によりパフォーマンスがほぼ 3 倍向上
しました。そして、今週はさらに
3 倍パ
フォーマンスを向上できました。」
http://intel.ly/vtune-amplifier-xe
1Windows* のみ
for Windows* および for Linux* $899 ~
(OS X* では GUI のみ利用可能)
インテル
®
VTune™ Amplifier XE
スケーラブルなマルチコア・パフォーマンスを実現
内容
データ収集
-豊富なパフォーマンス・データ
データ解析
-必要な情報を迅速に表示
柔軟なワークフロー
-
GUI とコマンドライン
結果の比較
リモート収集
2015 の新機能!
まとめ
2 つのデータ収集方法
インテル
® VTune™ Amplifier XE
4
ソフトウェア・コレクター
ハードウェア・コレクター
OS の割り込みを使用
オンチップのパフォーマンス・モニタリング・ユニット
(PMU) を使用
1 つのプロセスツリーから収集
システム全体または
1 つのプロセスツリーから収集
デフォルトの収集間隔は約
10ms
デフォルトの収集間隔は約
1ms
(より細かく、小さな関数のデータも収集)
インテル
® プロセッサーと互換プロセッサーに対応 インテル® プロセッサーに対応
コールスタックで呼び出しシーケンスを表示
コールスタックの収集はオプション
仮想環境に対応
VM でサポートされる場合のみ VM に対応 (例 vSphere* 5.1)
ドライバーは不要
ドライバーが必要
- Windows* では簡単にインストール可能
- Linux* では root でインストールする必要がある
(または、スタック情報を含まないデフォルトの perf
ドライバーを使用する)
特別なコンパイラーは不要
- C、C++、C#、Fortran、Java*、アセンブリー
豊富なパフォーマンス・データ
インテル
® VTune™ Amplifier XE
ソフトウェア・コレクター
ハードウェア・コレクター
Basic Hotspots (基本的な hotspot)
最も時間を費やしている関数は?
Advanced Hotspots (高度な hotspot)
最も時間を費やしている関数は
?
どこをインライン展開すべきか? - 呼び出しカウントの統計
Concurrency (コンカレンシー)
並列処理のチューニング
コアの使用状況を色分けして表示
General Exploration (全般)
パフォーマンス向上の可能性が最も高い場所は
?
キャッシュミスは
? 分岐予測ミスは?
Locks and Waits (ロックと待機)
スレッド・パフォーマンスが悪い最大の要因をチューニング
:
- コアがアイドル状態で待機している
Advanced Analysis (高度な解析)
アクセス競合など細かいチューニング
すべての
IA86 プロセッサーと VM に対応、
ドライバーは不要
より細かい粒度、低オーバーヘッド、
システム全体に対応
特別なコンパイラーは不要
- C、C++、C#、Fortran、Java*、アセンブリー
インテル
®
VTune™ Amplifier XE
スケーラブルなマルチコア・パフォーマンスを実現
内容
データ収集
-豊富なパフォーマンス・データ
データ解析
-必要な情報を迅速に表示
柔軟なワークフロー
-
GUI とコマンドライン
結果の比較
リモート収集
2015 の新機能!
まとめ
6
必要な情報を迅速に表示
インテル
® VTune™ Amplifier XE
関数をダブルクリックして
ソースを表示
データのグループ化を調整
… (リストの一部を表示)
[+] をクリックして
コールスタックを表示
選択したタイムライン
(またはグリッド) でフィルター
プロセスやその他の
コントロールでフィルター
チューニングの可能性はピンクでハイライトし、
カーソルを移動するとヒントを表示
ソース
/アセンブリーでプロファイル・データを表示
グリッドまたはタイムラインでダブルクリック
8
右クリックで命令リファレンス・マニュアルを表示
ソース、アセンブリー、または両方を表示
CPU 時間
クリックして対応するアセンブリーへジャンプ
アセンブリーへ素早く移動
:
ソースを選択してアセンブリーをハイライト
hotspot へ素早くスクロール:
スクロールバーに
"ヒートマップ" を表示
並列パフォーマンスの問題を視覚化
一般的なパターンに注目
粗粒度のロック
ロック競合が頻発
ロード・インバランス
低コンカレンシー
タイムラインでスレッドの動作を視覚化
インテル
® VTune™ Amplifier
オプション
: API でフレームとユーザータスクにマークを追加
オプション
: 収集中にマークを追加
10
CPU 時間
カーソルを
移動すると
詳細を表示:
遷移
Basic Hotspots
Advanced Hotspots
インテル
® VTune™ Amplifier
スケーラブルなマルチコア・パフォーマンスを実現
内容
データ収集
-豊富なパフォーマンス・データ
データ解析
-必要な情報を迅速に表示
柔軟なワークフロー
-
GUI とコマンドライン
結果の比較
リモート収集
2015 の新機能!
まとめ
コマンドライン・インターフェイス
解析の自動化
amplxe-cl コマンドライン:
– Windows*: C:¥Program Files (x86)¥Intel¥VTune Amplifier XE
¥bin[32|64]¥amplxe-cl.exe
– Linux*: /opt/intel/vtune_amplifier_xe/bin[32|64]/amplxe-cl
ヘルプ
:
amplxe-cl -help
UI を利用してセットアップ
1) UI で解析を設定
2) [Command Line…] ボタンをクリック
3) コマンドをコピー・アンド・ペースト
リグレッション解析に便利
- 結果ファイルを開発者に提供
コマンドラインの結果は
UI からも確認可能
12
インタラクティブなリモートデータ収集
リモートシステムのパフォーマンス解析がより簡単に
インタラクティブ解析
1) リモート Linux* ターゲットに SSH 接続
2) UI から解析を選択して実行
コマンドライン解析
1) Windows*/Linux* ターゲットにリモート接続してコマンドラインを実行
2) ホストに結果をコピーして UI から確認
New!
ローカル
UI からリモートシステムを解析
迅速に結果を比較
- 差異でソート
インテル
®
VTune™ Amplifier XE
リグレッションの原因を素早く特定
コマンドライン解析を毎日実行可能
原因の関数が特定できるので担当者に迅速に知らせることができる
2 つの最適化を比較 - 向上したのは?
2 つのシステムを比較 - スピードアップしなかったのは?
14
インテル
®
VTune™ Amplifier XE
スケーラブルなマルチコア・パフォーマンスを実現
内容
データ収集
-豊富なパフォーマンス・データ
データ解析
-必要な情報を迅速に表示
柔軟なワークフロー
-
GUI とコマンドライン
結果の比較
リモート収集
2015 の新機能!
まとめ
優れたデータ解析
OpenMP* スレッドとスケーラビリティーをチューニング
新しいタイムラインとグリッドデータのグループ化
インポートにより他のツールで収集されたデータを統合
簡単な使用
Mac* 上で Windows* または Linux* データを解析
1
リモートシステムのデータを簡単に収集
正しいプロセッサー・メトリクスを自動選択
ドライバー関連の煩わしさを軽減
(Linux*)
より多くの
CPU および GPU プロファイル・データ
OpenCL* カーネルと GPU オフロードのチューニング (Windows*)
インテル® TSX
2
用のトランザクション解析
スタックの深さを調整してオーバーヘッドを軽減
最新のプロセッサーおよび
OS のサポート
16
インテル
® VTune™ Amplifier XE 2015 の新機能
パフォーマンス・プロファイラー
1OS X* でデータ収集はできません。
2インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX)
OS X* からのリモート解析
OpenMP* のスケーラビリティー
解析
GPU オフロードとインテル® TSX
2
の
チューニング
New!
OS X* でのホストの実行
Linux* からのデータを解析
Windows* からのデータを解析
OS X* でのローカルデータ収集は不可
追加料金なし
別途ダウンロード
for Windows* または for Linux* のライセンス
で利用可能
簡単なリモート収集
Linux* リモートに SSH 接続
OS X* ホストのサポート
インテル
® VTune™ Amplifier XE
New!
OpenMP* のスケーラビリティー解析
インテル
® VTune™ Amplifier XE
18
シリアル時間とロード・インバランスを特定
シリアル領域で多くの時間を費やしてい
るか
?
並列領域で一部のスレッドがほかよりも
極端に速く完了していないか
?
領域で時間がかかっているインスタンスを特定し
てチューニング
インテル
® Xeon® プロセッサーおよびインテル®
Xeon Phi™ コプロセッサー・ベースのシステム
インテルと
gcc* のランタイム
優れたチューニング・データにより
OpenMP* パフォーマンスが向上!
New!
GPU 計算パフォーマンスのチューニング
インテル
® VTune™ Amplifier for Windows*
プロセッサー全体
(CPU + GPU) のチューニング
OpenCL* カーネルと GPU オフロードの
チューニング
新しいプロセッサーでは
GPU データを収集し、
GPU / CPU アクティビティーを関連付けること
が可能
(Windows* のみ)
チューニング個所をハイライト
潜在的なチューニングの可能性がある場合、
セルがピンクでハイライト表示され、カーソル
を移動するとアドバイスが表示される
New!
ドライバー関連の煩わしさを軽減
(Linux*)
インテル
® VTune™ Amplifier XE
20
インテルの
EBS ドライバーを自動リビルド
OS アップデートを適用後、高度な解析が動作
しなくなった
IT 担当者にドライバーのリビルドを依頼しなけ
ればならなかった
このような問題を解消するため、OS アップデー
ト後、ドライバーを自動リビルドするように設定
可能
NMI ウォッチドッグを自動的に無効化
以前のバージョンでは、高度な
EBS プロファイ
ルを実行するたびに
NMI ウォッチドッグをオフ
にしなければならなかった
この煩わしさを解消するため、自動でオフにし、
元の設定に戻すように変更
すでにインストールされている
perf ドライ
バーの使用
インテルのドライバーがインストールされて
いない場合
perf を使用可能
インテルの
EBS ドライバーは perf にはない
次のような追加機能を提供
:
スタック
アンコアイベント
複数の
precise イベント
最新のプロセッサー用の新しい
イベント
(古い OS を含む)
簡単にオンチップ
PMU にアクセスして高度なパフォーマンス・プロファイルが可能
New!
インタラクティブなリモートデータ収集
リモートシステムのパフォーマンス解析がより簡単に
インタラクティブ解析
1) リモート Linux* ターゲットに SSH 接続
2) UI から解析を選択して実行
コマンドライン解析
1) Windows*/Linux* ターゲットにリモート接続してコマンドラインを実行
2) ホストに結果をコピーして UI から確認
New!
ローカル
UI からリモートシステムを解析
インテル
®
VTune™ Amplifier XE
スケーラブルなマルチコア・パフォーマンスを実現
内容
データ収集
-豊富なパフォーマンス・データ
データ解析
-必要な情報を迅速に表示
柔軟なワークフロー
-
GUI とコマンドライン
結果の比較
リモート収集
2015 の新機能!
まとめ
22
インテル
®
VTune™ Amplifier XE
スケーラブルなマルチコア・パフォーマンスを実現
必要なデータを取得
hotspot (統計コールツリー)、呼び出しカウント (統計)
コンカレンシー解析およびロックと待機の解析によるスレッド・プロファイル
キャッシュミス、帯域幅解析
1
GPU オフロードと OpenCL* カーネルトレース (Windows*)
必要な情報を迅速に表示
ソース/アセンブリーで結果を表示
OpenMP* のスケーラビリティー解析、グラフィカル・フレーム解析
ビューポイントでデータをフィルターして関係のないデータを非表示
スレッドおよびタスク・アクティビティーをタイムライン表示
簡単に使用可能
特別なコンパイラーは不要
- C、C++、C#、Fortran、Java*、ASM
Visual Studio* 統合環境 (Windows*) またはスタンドアロン (Windows*
および
Linux*)
グラフィカル・インターフェイスとコマンドライン
ローカルおよびリモートデータ収集
New! OS X* で Windows* および Linux* データを解析
2チューニングの可能性を素早く特定
ソースコードで結果を表示
30 分バージョン - インテル® VTune™ Amplifier XE
参加者に応じてトピックを選択
24
呼び出し元
/呼び出し先 - 親子の解析
インテル
® VTune™ Amplifier
左のペイン
で関数をク
リックしてそ
の呼び出し
元
/呼び出し
先のデータ
を確認
タイム・クリティカルな呼び出しパスでボトルネックを素早く特定
低オーバーヘッドの
Java* プロファイリング
インテル
® VTune™ Amplifier
26
低オーバーヘッドで正確な解析
高速で低いオーバーヘッドのサンプリング
より高速なハードウェア・サンプリング
(スタック収集)
特有の高度なプロファイル
(キャッシュミス、バンド幅...)
多彩な機能と簡単な使用方法
複数の同時
JVM
Java / C++ / Fortran の混在
Java ソースで結果を確認
実行中の
Java アプリケーションにアタッチ
役立つデータ、低オーバーヘッド、より簡単に使用可能
C++ と C# が混在するアプリケーションのチューニング
インテル
® VTune™ Amplifier
C#/C++ ソースでプロファイル結果を表示
結果をシンボルにマッピング
混在モードのスタックウォーク
(C++ と C# が混在したスタックを表示)
スレッド・タイムライン、ロックと待機の解析
.NET 2.0、3.0、4.0
C# アプリケーションのボトルネックをチューニングするには、
ガベージ・コレクションなどを解析する追加のプロファイル・
ツールが必要になることがある
C#
C++
30 分バージョン - インテル® VTune™ Amplifier XE
メディアおよびゲーム企業向け
レイテンシーが重要な問題である場合にも最適
28
アプリケーション
領域
(フレーム)
データをフィルター
- アクションがとりやすい情報のみ表示
インテル
® VTune™ Amplifier
フレーム解析
-レイテンシーの長いアクティビティーを解析
フレーム
: 繰り返し実行される領域
(オーバーラップなし)
API により開始と終了のマークを追加
DirectX* フレームを自動検出
例
:
ゲーム
- 次のグラフィックス・フレームを
計算
シミュレーター
- タイム・ステップ・ループ
計算
- 収束ループ
voidalgorithm_1(); voidalgorithm_2(int myid); doubleGetSeconds();DWORD WINAPI do_xform (void * lpmyid); bool checkResults(); __itt_domain *fPtr; fPtr = __itt_domain_create("My Domain"); while( gRunning ) { __itt_frame_begin_v3(fPtr, NULL); ... // 処理を実行 ... __itt_frame_end_v3(fPtr, NULL); } for (int k = 0; k < N; ++k) { int ik = i*N + k; int kj = k*N + j; c2[ij] += a[ik]*b[kj]; }