インテル® VTune™ Amplifier XE 2015 Update 2 による、ドライバーなしでのハードウェア・イベント・サンプリング (コールスタック付き) のサポート

インテル® VTune™ プロファイラー
この記事は、インテル® デベロッパー・ゾーンに公開されている「VTune™ Amplifier XE 2015 Update 2 supports for driverless hardware event-based sampling with call stack info」 (https://software.intel.com/en-us/blogs/2015/03/16/vtune-amplifier-xe-2015-update-2-supports-for-driverless-hardware-event-based) の日本語参考訳です。
通常、VTune™ ドライバーは、インテル® VTune™ Amplifier XE 製品のインストール時に自動的ビルドされ Linux* システムに組み込まれ、インストール後ハードウェア PMU イベント・ベース・サンプリングが動作するようになります。 しかし、時に以下の理由により VTune™ ドライバーのビルドと配置が失敗することがあります。
  1. VTune™ ドライバーをビルドするために必要な Linux* カーネルのソースがない。
  2. ユーザーが、VTune™ ドライバーをシステムにロードするために必要な “root” 特権を持っていない。
  3. VTune™ ドライバーをビルドするために必要な開発ツールがないか、カスタマイズされたオペレーティング・システム上で操作を行っている。
  4. 利用者は Linux* Perf ツールには精通しているが、VTune™ のコマンドラインに不慣れである。
インテル® VTune™ Amplifier XE 2015 の初期リリースから、VTune™ で提供される amplxe-perf コマンドは、シームレスに Perf の機能をサポートすることができます。https://software.intel.com/en-us/blogs/2014/05/21/how-to-use-perf-and-import-its-result-into-vtunetm-amplifier-xe をご覧ください。VTune™ から Perf ユーティリティーを利用する方法を説明しています。 インテル® VTune™ Amplifier XE 2015 Update 2 からは、amplxe-perf コマンドは必要ありません。VTune™ ドライバーがシステムに存在しない場合、単純に amplxe-cl コマンドで VTune™ から Perf のパフォーマンス・データを収集できます (ドライバーが利用できる場合、通常の PMU イベント・ベース・サンプリングを行います)。 もう 1 つの重要な点は、Perf からホットスポットを収集するため amplxe-cl を使用しても、コールスタックの収集がサポートされます。 最初に VTune™ ドライバーの存在を確認します: lsmod | grep sep, lsmod | grep pax, lsmod | grep vtsspp ドライバーが存在する場合、vtune_amplifier_xe/sepdk/src/rmmod-sep3 ですべての VTune™ ドライバーをアンロードします。
$ amplxe-cl -collect advanced-hotspots –knob collection-detail=stack-sampling -- ./primes.gcc
$ amplxe-cl -R callstacks
amplxe: Using result path `/home/peter/r009ah'
amplxe: Executing actions 50 % Generating a report
Function      Function Stack  Module      CPU Time
------------  --------------  ----------  --------
findPrimes                    primes.gcc    2.000s
start_thread                  primes.gcc    0.564s
__clone                       primes.gcc        0s
注意: この機能は、2014 年 2 月 4 日以降にリリースされたオペレーティング・システムで利用できます。また、/sys/devices/cpu/events でシステムでサポートされるイベントを確認できます。 著者コメント: (VTune™ ドライバーがインストールされていない) VMWare* 上の Fedora* 21 にインテル® VTune™ Amplifier XE をインストールして試したところ、EBS が存在しないことが報告されましたが、この機能は利用できませんでした。perf ユーティリティーや amplxe-perf が、cpu-clock イベントが利用できることを確認しました。これは、CPU イベントは透過ですが、イベント名 “instruction” がサポートされないことを意味します。そのため、advanced-hotspots (clocks と instruction が必要) が動作しません。cpu-clock と instruction の両方がシステムでサポートされていることを知るには、”perf list” を使用する必要があり、advanced-hotspot がシステムでインテル® VTune™ Amplifier XE の “ドライバーなし” 機能を利用できるかどうかを判断します。 コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください
タイトルとURLをコピーしました