インテル® VTune™ Amplifier XE 2015 の新機能
この記事は、インテル® デベロッパー・ゾーンに掲載されている「What’s new? – Intel® VTune™ Amplifier XE 2015」の日本語参考訳です。
インテル® VTune™ Amplifier XE 2015
シリアルおよび並列パフォーマンス解析用のパフォーマンス・プロファイラー。概要、トレーニング、サポートについてはこちらを参照してください。
2015 初期リリースの新機能 (すべてのユーザーに推奨)
2013 SP1 との比較
すべてのオペレーティング・システム
- OpenMP* 領域解析を拡張
- インテル® Xeon Phi™ コプロセッサーにおけるデータ収集がより容易に
- 便利な機能:
- リモート収集がより容易に
- OS X* ホストで Linux* や Windows* プロファイリング・データを解析
- スタックの深さの制限によるオーバーヘッドを軽減
- 外部収集データのインポート
- インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) 解析
Windows* システム
Linux* システム
- ドライバーにかかる負荷を軽減:
- perf データの視覚化
- Linux* build-id のサポート
- 新しい Linux* ディストリビューションのサポート – Red Hat* Enterprise Linux* 7、Ubuntu* 14.04、Fedora* 20
注: 解析ツールのアップデートに、「Recommended for all users (すべてのユーザーに推奨)」と「Optional update unless you need… (オプション・アップデート)」の表記を追加しました。推奨アップデートは、頻繁にシステムを更新したくないユーザー向けに、約 3 カ月ごとにリリースされます。オプション・アップデートは、より頻繁にリリースされ、新しいプロセッサーのサポート、新機能の追加、重大な問題の修正を行います。
関連情報
コンテンツ
ファイル: vtune_amplifier_xe_2015.tar.gz
インテル® VTune™ Amplifier XE 2015 for Linux* のインストーラー
ファイル: VTune_Amplifier_XE_2015_setup.exe
インテル® VTune™ Amplifier XE 2015 for Windows* のインストーラー
ファイル: vtune_amplifier_xe_2015.dmg
インテル® VTune™ Amplifier XE 2015 – OS X* host only のインストーラー
インテル® Xeon® プロセッサー・ベースのシステムとインテル® Xeon Phi™ コプロセッサー・ベースのシステムでの OpenMP* 領域解析を拡張
拡張された OpenMP* 領域解析により、ロード・インバランス、粒度問題、同期問題のような、一般的なパフォーマンス・ボトルネックを識別します。アプリケーションのシリアル時間と並列時間、並列領域のチューニングによって得られる理論的な向上率を確認できます。詳細は、「OpenMP* Analysis (OpenMP* 解析)」ヘルプトピックを参照してください。
インテル® Xeon Phi™ コプロセッサーにおけるデータ収集がより容易に
新しいターゲットシステム設定オプションにより、解析ワークフローが向上し、インテル® Xeon Phi™ コプロセッサーにおけるデータ収集がさらに容易になりました。また、コールスタック収集でインテル® Xeon Phi™ コプロセッサーがサポートされるようになりました。さらに、ネイティブ・アプリケーションとオフロード・アプリケーション用に環境変数を設定することなく、インテル® Xeon Phi™ コプロセッサー上で ITT API 収集 (OpenMP* 解析を含む) を実行できるようになりました。詳細は、「Intel Xeon Phi Coprocessor Analysis Workflow (インテル® Xeon Phi™ コプロセッサー解析ワークフロー)」ヘルプトピックを参照してください。
全般解析と帯域幅解析
どのマイクロアーキテクチャーをプロファイルしているか心配する必要はもうありません。新しい General Exploration (全般) 解析タイプと Bandwidth (帯域幅) 解析タイプでは、サポートしているすべてのシステムで同じコマンドラインを使用できます。詳細は、「About Performance Analysis with VTune Amplifier (インテル® VTune™ Amplifier を使用したパフォーマンス解析について)」ヘルプトピックを参照してください。
ハードウェア・イベントベースのサンプリング解析ツリーの構成が変更され、クロス CPU の基本設定と個々の CPU に固有の高度な解析設定が追加されました。全般解析タイプと帯域幅解析タイプは、サポートしているすべての CPU で共有されます。新しい (例えば、Ivy Bridge✝ 以降の) プロセッサー・ファミリー向けの全般解析タイプでは、すべてのチューニングの可能性がカバーされます。チューニング・ガイド (英語) を参照して、全般解析タイプを活用してください。利用可能な場合、CPU 固有の解析タイプは、検出されたプロセッサー・タイプに応じて、古いプロセッサー・ファミリーに自動的に拡張されます (下記を参照)。
注: Ivy Bridge✝ プロセッサー・ファミリーには、全般解析と帯域幅解析のみ利用できます。CPU 固有の高度な解析タイプは用意されなくなりました。以前 Ivy Bridge✝ で利用可能だった Sandy Bridge✝ の高度な解析タイプは、ハードウェアに互換性がないため Ivy Bridge✝ では動作しませんでした。この解析タイプのメトリックは全般解析タイプに追加されています。Haswell✝ プロセッサー・ファミリーにも、個別の高度な解析タイプは用意されていません。全般解析のメトリックと Haswell✝ チューニング・ガイドを使用してください。
カスタムグループ
グリッドビューのカスタムグループおよび [Timeline (タイムライン)] ペインの新しいグループを含む、多くの新しい方法で、パフォーマンス・データをグループ化できます。カスタムグループの作成方法は、「Grouping Data (データのグループ化)」および「Dialog Box: Custom Grouping (ダイアログボックス: Custom Grouping (カスタムグループ))」ヘルプトピックを参照してください。
プログラムユニットでデータをグループ化するには、タイムラインのグループメニューを使用します。グループレベルは解析タイプに依存します。詳細は、「Managing Timeline View (タイムライン・ビューの管理)」ヘルプトピックを参照してください。
[Summary (サマリー)] ペインのナビゲーションを強化
選択したメトリックでソートされた [Bottom-up (ボトムアップ)] ビューを開くハイパーリンクと、選択した関数や OpenMP* 領域を直接開くハイパーリンクが追加されました。
リモート収集がより容易に
Windows* または Linux* ホストシステムで実行しているグラフィカル・インタフーフェイスを使用して、SSH 経由でリモート Linux* システムのデータを収集できます。[Project Properties (プロジェクト・プロパティー)] ダイアログの「remote Linux (SSH)」ターゲットシステム設定オプションで、リモート収集を設定します。
注:
- PATH に ssh/scp または plink/pscp を設定する必要があります。
- データをリモートで収集すると、インテル® VTune™ Amplifier XE は、リモートシステムのデフォルトのインストール場所 (/opt/intel/vtune_amplifier_xe_<version>) で互換コレクターを探し、ターゲットシステムの /tmp ディレクトリーにパフォーマンス結果を一時的に格納します。インテル® VTune™ Amplifier XE がターゲットの異なる場所にインストールされており、別の一時ディレクトリーを指定する必要がある場合は、[Project Properties (プロジェクト・プロパティー)] ダイアログの [Target (ターゲット)] タブで適切なオプションを設定するか、コマンドラインで -target-install-dir および -target-tmp-dir を使用します。
- ターゲット・アプリケーションでカスタム作業ディレクトリーまたはユーザー定義環境変数が必要な場合は、スクリプトを起動し、そのスクリプトを起動するアプリケーションとして使用するように指定できます。
詳細は、「Collecting Data Remotely from the VTune Amplifier GUI (インテル® VTune™ Amplifier GUI からデータをリモートで収集する)」ヘルプトピックを参照してください。
OS X* ホストで Linux* や Windows* プロファイリング・データを解析
OS X* を実行している Mac* コンピューター上でインテル® VTune™ Amplifier GUI をホストし、サポートしている Linux* システムでのリモート収集を設定および起動して、収集した結果を表示できるようになりました。
Windows* または Linux* 製品を登録すると、OS X* ビューアーを無料でダウンロードできます (下記参照)。このビューアーは、既存の Windows* または Linux* ライセンスを使用します。
注: Mac* コンピューター上では、パフォーマンス・プロファイルは利用できません。
OS X* 用のインテル® VTune™ Amplifier XE ビューアーは、インテル® ソフトウェア開発製品レジストレーション・センターからダウンロードできます。
右カラムの “Version 2015” をクリックすると、次の画面が表示されます。.dmg ファイルをクリックしてダウンロードするか、ダウンロード・マネージャーを使用します。
vtune_amplifier_xe_2015.dmg ファイルをダウンロードした後、次の手順に従ってソフトウェアをインストールします。
- インストール方法
- ライセンスファイルのインストールを許可するように “/Users/Shared/Library/Application Support” のアクセス権を設定します。
- OS X* システムで [Finder] アプリケーションを開始します。
- vtune_amplifier_xe_2015.dmg ファイルを検索します。
- .dmg ファイルを開いて、ディスクにマウントします。
- 新しく表示されるウィンドウで、vtune_amplifier_xe_2015.mpkg をダブルクリックしてインストールを開始します。
- ライセンスの指定ウィザードで登録タイプを指定します。
- すべての GUI アプリケーションは、[アプリケーション] フォルダーにインストールされます。インストールが正常に完了すると、[アプリケーション] フォルダーに VTune Amplifier XE 2015 が作成されます。
- [アプリケーション] フォルダーでダブルクリックして、インテル® VTune™ Amplifier XE 2015 を開始します。
- アンインストール方法
- VTune Amplifier XE 2015 アプリケーションが終了していることを確認します。
- [Finder] アプリケーションを起動します。
- [アプリケーション] フォルダーの VTune Amplifier XE 2015 アプリケーションをドラッグして、デスクトップの ‘ゴミ箱’ にドロップします。
スタックの深さの制限によるオーバーヘッドを軽減
(システムページの) コールスタックの深さを制限する新しいオプションを使用して、カスタム・イベントベース・サンプリング解析タイプの収集オーバーヘッドを軽減します。ハードウェアベースのサンプリングには、コマンドラインの -stack-depth コレクターノブと [Custom Analysis (カスタム解析)] ダイアログの対応する GUI コントロールを使用します。
外部収集データのインポート
外部収集データを既存の結果にインポートすることにより、解析を向上します。インテル® VTune™ Amplifier は、外部コレクターにより提供された不規則なデータと、プロファイラーにより収集された規則的なデータを関連付けることができます。詳細は、「Adding External Data to the Intel® VTune™ Amplifier (インテル® VTune™ Amplifier への外部データの追加)」ヘルプトピックを参照してください。
標準のインテル® VTune™ Amplifier パフォーマンス解析を拡張して、インテル® VTune™ Amplifier から直接カスタム・データ・コレクターを起動できます。インテル® VTune™ Amplifier で解析するアプリケーションや、インテル® VTune™ Amplifier で起動するコレクターをカスタムコレクターにすることができます。GUI とコマンドラインからカスタムコレクターを設定および起動する方法については、「Using a Custom Collector (カスタムコレクターの使用)」ヘルプトピックを参照してください。
> amplxe-cl -collect hotspots -knob custom-collector=”python.exe C:\work\custom_collector.py” — notepad.exe
インテル® VTune™ Amplifier は、カスタムコレクターやターゲット・アプリケーションで外部的に収集されたパフォーマンス統計と、インテル® VTune™ Amplifier の解析を統合できます。そのためには、収集したカスタムデータを事前定義された構造の csv ファイルとして提供し、このファイルをインテル® VTune™ Amplifier の結果ディレクトリーに保存します。
インテル® VTune™ Amplifier は、次のようなデータをロードして処理することができます。
- 開始時間と終了時間を含む間隔データ
- カウンターのセットを含むサンプル
インテル® VTune™ Amplifier が csv ファイルのカスタム統計を解釈できるように、ファイル形式が「Creating a CSV File with External Data (外部データを含む CSV ファイルを作成する)」ヘルプトピックで指定された要件を満たしていることを確認してください。
インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) 全般解析
インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) を使用するアプリケーションをチューニングするには、TSX 全般解析を使用します。この解析は、パフォーマンス・カウンターベースのプロファイルにより、トランザクション実行の動作とトランザクション・アボートの原因を明らかにします。インテル® TSX についての詳細は、「インテル® トランザクショナル・シンクロナイゼーション・エクステンションに関する Web リソース」 (英語) 参照してください。
注: この解析は、インテル® TSX 機能が有効なインテル® プロセッサーでのみサポートされます。最近発表されたエラッタ (http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e3-1200v3-spec-update.pdf) のため、デフォルトでは、この機能はオフに設定されています。
チューニング・プロセスは 2 つのステップで構成されます。
- トランザクション成功の測定
最初のステップは、アプリケーションのトランザクション成功を測定することです。
[TSX Exploration (TSX 全般)] 解析タイプを選択し、[Analysis Step (解析ステップ)] ドロップダウンから [1. Transactional success (トランザクション成功)] を選択します。
次の 3 つのメトリックを収集します。- クロック数 – 収集された UNHALT サイクル数の合計
- トランザクション・サイクル数 – トランザクションに費やされたサイクル数。この数がほぼゼロの場合、アプリケーションはロックベースの同期を使用していないか、インテル® TSX の Hardware Lock Elision (HLE) が有効な同期ライブラリーを使用していません。
- アボートサイクル数 – 最終的にアボートしたトランザクションに費やされたサイクル数。この数がトランザクション・サイクル数と比較して少ない場合、トランザクションの成功率は高く、追加のチューニングは必要ありません。この数がトランザクション・サイクル数とほぼ同じ (で少なくない) 場合、ほとんどのトランザクション領域がアボートしていて、HLE は役立ちません。次のステップでは、トランザクション・アボートの原因を特定して、トランザクション・アボート数を減らします。
- トランザクション・アボート数のサンプリング
[TSX Exploration (TSX 全般)] 解析タイプを選択し、[Analysis Step (解析ステップ)] ドロップダウンから [2. Aborts (アボート)] を選択します。
トランザクション・アボートが発生している場所と原因が表示されます。次のような原因があります。- 命令 – CPUID や IO などの命令は、実装によりトランザクション実行をアボートすることがあります。
- データ競合 – 別の論理プロセッサーが、トランザクション領域の書き込みセットの一部の場所を読み取るか、トランザクション領域の読み取りまたは書き込みセットの一部の場所に書き込むと、競合するデータアクセスが発生します。インテル® TSX は、キャッシュラインの粒度でデータ競合を検出するため、同じキャッシュラインに配置された無関係なデータの場所も競合として検出されます。
- 処理能力 – トランザクション・リソースの制限によりトランザクション・アボートが発生することもあります。例えば、領域でアクセスしたデータ量が実装固有の処理能力を超えた場合です。
OpenCL* ソフトウェア・テクノロジー・カーネル解析
OpenCL* ソフトウェア・テクノロジー・カーネル解析に、メモリー転送と API の視覚化、計算キュー、SIMD 幅のメトリックが追加されました。
アプリケーションが OpenCL* ソフトウェア・テクノロジーを使用し、GPU で多くの計算を行っている場合、解析の設定で [Trace OpenCL kernels on Processor Graphics (プロセッサー・グラフィックの OpenCL* カーネルをトレース)] オプションを有効にして、インテル® HD グラフィックスで実行している OpenCL* カーネルのタイミング (およびその他の情報) をキャプチャーします。GPU で実行しているすべての OpenCL* カーネルの情報を表示するには、解析結果の [Graphics (グラフィックス)] タブで、グループを [Computing Task Purpose / Computing Task (GPU) / Instance (コンピューティング・タスクの目的 / コンピューティング・タスク (GPU) / インスタンス)] に変更します。インテル® VTune™ Amplifier は、次のコンピューティング・タスクの目的を識別します。
- 計算 (カーネル)
- 転送 (ホストから GPU にデータを転送するOpenCL* ルーチン)
- 同期 (例えば、clEnqueueBarrierWithWaitList)
対応する列に GPU でのカーネルの実行時間と 1 回の呼び出しの平均時間 (clEnqueueNDRangeKernel の 1 回の呼び出しに対応)、ワークグループのサイズ、カーネルの平均 GPU ハードウェア・メトリックが表示されます。潜在的なチューニングの可能性がある場合、セルはピンクで表示されます。セルにカーソルを移動すると、問題の説明が表示されます。
OpenCL* カーネル・サブミッションの詳細では、サブミッションと実行の順序に注目し、キューで費やされた時間を解析して、[Timeline (タイムライン)] ペインの [Computing Queue (計算キュー)] データを調べます。カーネルタスクをクリックすると、トップレイヤーに表示された実行に対応するキュー全体がハイライトされます。
同期タスクは、影付きの垂直線 で表示されます データ転送は、影付きの斜め対角線
で表示されます。詳細は、「Analyzing Applications Using Intel® HD Graphics (インテル® HD グラフィックスを使用するアプリケーションの解析)」および「Interpreting GPU OpenCL* Application Analysis Data (GPU OpenCL* アプリケーション解析データの解釈)」ヘルプトピックを参照してください。
自動ドライバーリビルド
Linux* カーネルを更新するとサンプリング・ドライバーがロードされなくなる心配はもうありません。新しい自動ドライバーリビルド機能により、サンプリング・ドライバーはカーネルの更新を検出して、自動的にドライバーのリビルドとロードを試みます。
このリリースから、ブートスクリプトによりブート時にサンプリング・ドライバーが自動的にロードされるように設定されている場合、ブートスクリプトはカーネルの変更をチェックして、ブート時にドライバーを自動的にリビルドします。リビルドに成功すると、新しいドライバーがロードされ、更新されたカーネルでサンプルが収集されます。この機能が正しく動作するように、実行中のカーネルを更新する場合は、必ずカーネルソースを更新してください。
ドライバーなしのイベントベース・サンプリング収集
Linux* の root 権限がないため、インテルのイベントベース・サンプリング・ドライバーをインストールできない場合でも、高度な解析を利用できます。
ドライバーなしのイベントベース・サンプリングは、/sys/bus/event_source/devices/cpu/format ファイルシステムに CPU PMU プログラミングの詳細をエクスポートする、カーネル 2.6.32 以降の Linux* オペレーティング・システムの Advanced Hotspots (高度な hotspot)、General Exploration (全般)、Custom (カスタム) 解析タイプでサポートされています。このドライバーなしのサンプリング収集モードは、Linux* の perf 機能をベースにしています。製品のインストール中にインテルのイベントベース・サンプリング・ドライバーをインストールできない場合、インテル® VTune™ Amplifier は自動的にドライバーなし収集を有効にします。
注: インテルのイベントベース・サンプリング・ドライバーは、次のような、perf で利用できない追加機能を提供します。
- スタック
- アンコアイベント
- 複数の precise イベント
- 最新のプロセッサー用の新しいイベント (古い OS を含む)
EBS データ収集中に NMI ウォッチドッグ・タイマーを自動的に無効化
マスク不能割り込み (NMI) ウォッチドッグ・タイマーは、PMU イベント・ベース・サンプリング (EBS) 解析で不正な結果を引き起こします。
これまで、nmi_watchdog が有効な場合、インテル® VTune™ Amplifier XE で EBS 収集を実行できなかったため、ユーザーは手動で nmi_watchdog を無効にする必要がありました。
このリリースでは、EBS コレクション中は、自動的に nmi_watchdog タイマーが無効になるように変更されています。そのため、手動で無効にする必要はありません。プロファイルを実行するだけでかまいません。
Linux* perf ツールで収集したイベントベース・サンプリング・データを、インテル® VTune™ Amplifier GUI で視覚化して解析できるようになりました。
事前定義コマンドライン・オプションを使用して、perf コレクションを実行します。
- アプリケーション解析の場合:
> perf record -o<trace_file_name>.perf -e cpu-cycles,instructions <application_to_launch> - プロセッサー解析の場合:
> perf record -o<trace_file_name>.perf -e cpu-cycles,instructions <application_to_launch> -p <PID> sleep 15
ここで、-e オプションは、-e <list of events> のように、収集するイベントのリストを指定します。
次に、GUI またはコマンドラインの [Inport (インポート)] オプションを使用して、*.perf ファイルをインテル® VTune™ Amplifier プロジェクトにインポートします。
Linux* build-id 機能のサポート
インテル® VTune™ Amplifier は、build-id を含むモジュールとデバッグ情報を含む個々のファイルのシンボルを自動的に解決します。
✝ 開発コード名
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
Microsoft、Windows、Visual Studio、Visual C++、Windows ロゴは、アメリカ合衆国および / またはその他の国における Microsoft Corporation の商標です。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。