Intel VTune Amplifier

提供: ArchWiki
2017年4月16日 (日) 18:01時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Linux 4.0

現在 VTune 2015 は Linux 4.0 で動作しません。カーネルの変更が原因で sepdk モジュールがビルドできないためです。2015年8月にリリースされた VTune 2016 が必要です。

カーネルモジュールのコンパイル

Arch でカーネルモジュールをビルドするには、sepdk フォルダに存在する README の第4章に従ってください。カーネルモジュールのコンパイルカーネル/コンパイル/伝統的な方法#カーネルソースのダウンロードに記載されているのと同じように、ソースコードを /usr/src/ にダウンロードして、README に書かれている名前で展開したらカーネルソースを解凍してください。

./build-driver スクリプトには問題が存在し、get_absolute_path() 関数が実行できないことがあります。その場合は DRIVER_DIRECTORYKERNEL_SRC_DIR 変数をハードコードしてください。

また、カーネル 4.10 でカーネルモジュールをコンパイルしようとすると問題が発生することがあります [1]

VTune Amplifier XE 2013

2011 の手順に従ってインストールしてください。ドライバーのビルド時にエラーが表示される場合、Intel が古い機能を使っていることが原因です。以下のセクションでは、削除するべきコードを "-" で、追加するべき行を "+" で示しています。

ノート: 以下の変更は update5 以上では必要ありません。

Missing asm/system.h

lwpmudrv.c を以下のように編集してください:

-#include <asm/system.h>
+#include <linux/version.h>

Implicit declaration of this_cpu_read

eventmux.c を以下のように編集してください:

+#include <linux/percpu.h>

kmap_atomic and kunmap_atomic deprecated

vtssp/user_vm.c を以下のように編集してください:

-this->m_maddr = kmap_atomic(this->m_page, in_nmi() ? KM_NMI : KM_IRQ0);
+this->m_maddr = kmap_atomic(this->m_page);
-kunmap_atomic(this->m_maddr, in_nmi() ? KM_NMI : KM_IRQ0);
+kunmap_atomic(this->m_maddr);

VTune Amplifier XE 2011

VTune Amplifier XE 2011 の update 7 から、Linux 3.x で使用できるようになっています。ただし Arch Linux は公式にはサポートされていません。参照: VTune on Archlinux

VTune のインストール

VTune の全ての機能を使うにはカーネルモジュールが必要です。ただしユーザーモードで動作する VTune も非常に強力で様々なプロファイリングが可能です。

準備:

  • VTune Amplifier XE 2011 をダウンロード (Linux 版には非商用の フリー版 が存在します)
  • tarball を解凍
  • AUR から libpng12 をインストール
  • AUR から libjpeg6 をインストール
  • 公式リポジトリから rpmextract をインストール
  • 公式リポジトリから linux-headers をインストール
  • カスタムカーネルを使用している場合、以下のオプションを有効にしてください:
    • CONFIG_MODULES=y
    • CONFIG_MODULE_UNLOAD=y
    • CONFIG_SMP=y
    • CONFIG_KPROBES=y
    • CONFIG_PROFILING=y
    • CONFIG_OPROFILE=y

VTune のインストール:

cd vtune_amplifier_xe_2011_update7
find -name "*.rpm" -exec rpmextract.sh {} \;

カーネルモジュール:

  • vtune グループを作成してユーザーを追加してください。
  • /opt/intel/vtune_amplifier_xe_2011/sepdk/src/ にあるドライバーをビルド・ロードしてください:
./build-driver
./insmod-sep3 -g vtune
  • ライセンスファイルを /opt/intel/licenses/ に追加してください。

以下のコマンドで vtune を起動できます:

./opt/intel/vtune_amplifier_xe_2011/bin64/amplxe-gui

使いやすいように ./opt/intel/vtune_amplifier_xe_2011 をホームフォルダに移動するか、amplxe-gui バイナリのシンボリックリンクを PATH が通っているフォルダに作成することを推奨します。

VTune 9.1

VTune のインストール

  • VTune をダウンロードしてください。
  • パッチ をダウンロードしてください。
  • VTune を解凍してスクリプトにパッチをあててください。
  • AUR/rpm4[リンク切れ 2014-12-30] から rpm をインストールしてください。
  • rpm --initdb を実行してください。
  • VTune のインストーラーを起動してください。

ドライバーのインストール

VTune は 2.6.31 カーネルでは動作しないため、kernel26-lts のインストールが必要です。

  • ドライバーの パッチ をダウンロード
  • ドライバーのソースを /opt/intel/vtune/vdk/src から新しいディレクトリにコピーしてパッチを適用
  • ./configuremake を実行
    • 'the frame size of 1140 bytes is larger than 1024 bytes' でビルドが失敗する場合、 Makefile の EXTRA_CFLAGS に -Wframe-larger-than=2048 を追加してください。
  • # cp vtune_drv*.ko /lib/modules/misc/vtune_drv.ko を実行してモジュールをカーネルのモジュールディレクトリにコピー。
  • # depmod -AeF /boot/System.map26 を実行してモジュールのマッピングを再生成。
  • # modprobe vtune_drv でモジュールをロード。
    • カーネル 2.6.31 で API の変更があったため、find_task_by_pid_ns() が使えません。カーネルを 2.6.30 にダウングレードするか Intel がドライバーのソースコードを更新するまで待ってください。