Intel VTune Amplifier
Intel VTune Amplifier は Intel プロセッサの商用ソフトウェアパフォーマンスプロファイラです。30日間の無料トライアルが存在します。
目次
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_DIRECTORY
と KERNEL_SRC_DIR
変数をハードコードしてください。
また、カーネル 4.10 でカーネルモジュールをコンパイルしようとすると問題が発生することがあります [1]。
VTune Amplifier XE 2013
2011 の手順に従ってインストールしてください。ドライバーのビルド時にエラーが表示される場合、Intel が古い機能を使っていることが原因です。以下のセクションでは、削除するべきコードを "-" で、追加するべき行を "+" で示しています。
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
から新しいディレクトリにコピーしてパッチを適用 ./configure
とmake
を実行- '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 がドライバーのソースコードを更新するまで待ってください。