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

同カテゴリーの次の記事

インテル® Xeon Phi™ コプロセッサー上での等方性倍精度 3 次元有限差分ステンシル・アルゴリズムの実行パフォーマンスの最適化

この記事は、インテル® デベロッパー・ゾーンに公開されている「VTune™ Amplifier XE 2015 Update 2 supports for driverless hardware event-based sampling with call stack info」の日本語参考訳です。


通常、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 の機能をサポートすることができます。こちらの記事をご覧ください。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 の “ドライバーなし” 機能を利用できるかどうかを判断します。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください

関連記事