組込み Linux* システム、Wind River*、Yocto Project*、FreeBSD* などでパフォーマンス解析を行うには、インテル® VTune™ プロファイラーを使用します。
組込みデバイスのパフォーマンス・データは、リモート接続した組込みデバイスで収集し、ホストシステムにインストールされたインテル® VTune™ プロファイラーのインスタンスから解析を実行できます。これは、(低パフォーマンス、ディスクの容量不足、ユーザー・インターフェイス制御の問題などにより) ターゲットシステムでローカルデータ解析ができない場合に便利です。
インテル® VTune™ プロファイラーのパフォーマンス解析で使用するコレクターとドライバーをインストールするには、オペレーティング・システムのカーネルへの root アクセスが必要です。
組込みデバイスでパフォーマンス解析を有効にするには、次のいずれかを使用します。
インテル® System Studio の統合レイヤーは、Wind River* Linux* または Yocto Project* がインストールされた組込みシステムで動作します。
インテル® System Studio の統合レイヤーは、ドライバーと対応するターゲットパッケージをオペレーティング・システム・イメージ内に自動的に組込むことで、インテル® System Studio 製品をターゲット・オペレーティング・システムと完全に統合することを可能にします。このオプションを使用すると、プラットフォーム・ビルド・エンジニアはカーネルソースとシグネチャー・ファイルを制御することができますが、アプリケーション・エンジニアには許可されません。プラットフォーム・ビルド・エンジニアは、製品ドライバーとターゲットパッケージを統合して、それらをアプリケーション・エンジニアへ提供する組込みデバイスイメージに含めることができます。
インストーラー GUI を使用して、インテル® System Studio をインストールします。
インテル® System Studio の統合レイヤーをインストールします。
インストール後のスクリプトを実行します:<iss-install-dir>/YoctoProject/meta-intel-iss/yp-setup/postinst_<OS>_iss.sh <ISS_BASE_dir>
例えば、Wind River* Linux では次を実行します:/YoctoProject/meta-intel-iss/yp-setup/postinst_wr_iss.sh
適切なインテル® VTune™ プロファイラー・パッケージを含むレシピをビルドします。
/YoctoProject/meta-intel-iss のパスを bblayers.conf ファイルに追加します。
BBLAYERS= "\
...
<OS_INSTALL_DIR>/YoctoProject/meta-intel-iss\
...
"
conf/local.conf にインテル® VTune™ プロファイラーのレシピを追加します。次のようなレシピがあります。
intel-vtune-drivers:スタックおよびコンテキスト切り換えとPMU ベース解析に必要なすべてのインテル® VTune™ プロファイラーのドライバーを統合します。追加のカーネルオプションを有効にする必要があります。
intel-vtune-sep-driver: カーネルオプションで要求される最小限の PMU ベース解析で必要なドライバーを統合します。
これらの収集方法の詳細は、「リモート Linux* ターゲットの設定」を参照してください。
ターゲット・オペレーティング・システムをビルドしてインテル® VTune™ プロファイラーのコレクターとドライバーの統合を完了します。
ターゲットの組込みデバイスへオペレーティング・システムを書き込みます。
ターゲットの組込みデバイスへオペレーティング・システムを書き込んだ後に、適切なインテル® VTune™ プロファイラーのドライバーが存在することを確認します。詳細は、「Linux* ターゲット向けにサンプリング・ドライバーをビルド」を参照してください。
SSH 接続または SEP コマンドを使用して、ホストシステムからターゲットの組込みデバイスで解析を行います。
RSA キーを使用して、ターゲットへのパスワードなしの SSH アクセスをセットアップします。
解析ターゲットとリモートシステムを指定します。
リモート接続を設定した後、インテル® VTune™ プロファイラーはターゲットシステムに適切なコレクターをインストールします。
解析タイプを選択します。
ホストから解析を実行します。
SEP コマンドの実行方法は、SEP ユーザーガイドを参照してください。
ホストでインテル® VTune™ プロファイラー GUI で結果を表示します。
インテル® VTune™ プロファイラーの Yocto Project* 統合レイヤーは、オペレーティング・システム・イメージに自動的にドライバーを組込みます。このオプションを使用すると、プラットフォーム・ビルド・エンジニアはカーネルソースとシグネチャー・ファイルを制御することができますが、アプリケーション・エンジニアには許可されません。プラットフォーム・ビルド・エンジニアは、製品ドライバーとターゲットパッケージを統合して、それらをアプリケーション・エンジニアへ提供する組込みデバイスイメージに含めることができます。
インテル® VTune™ プロファイラーをインストールします。
統合レイヤーを設定します。
<install-dir>/target/linux/vtune_profiler_target_x86.tgz または <install-dir>/target/linux/vtune_profiler_target_x86_64.tgz パッケージを展開します。
sepdk/vtune-layer/conf/user.conf ファイルを修正してユーザー設定を指定します。
次のいずれかのパスを指定します。
ZIP されていないターゲットパッケージへのパス:VTUNE_TARGET_PACKAGE_DIR = "<PATH>"
インテル® VTune™ プロファイラーのインストール・ディレクトリーへのパス:VTUNE_PROFILER_2020_DIR = "<PATH>"
(オプション) システムブートの間に SEP ドライバーを統合するため、ADD_TO_INITD = "y" を指定します。
統合レイヤーを Yocto Project* 開発環境へコピーします。
レイヤーのパスを bblayers.conf ファイルに追加します:
BBLAYERS= "\
...
<OS_INSTALL_DIR>/vtune-layer\
...
"
conf/local.conf にインテル® VTune™ プロファイラーのレシピを追加します。次のようなレシピがあります。
intel-vtune-drivers:スタックおよびコンテキスト切り換えとPMU ベース解析に必要なすべてのインテル® VTune™ プロファイラーのドライバーを統合します。追加のカーネルオプションを有効にする必要があります。
intel-vtune-sep-driver: カーネルオプションで要求される最小限の PMU ベース解析で必要なドライバーを統合します。
これらの収集方法の詳細は、「リモート Linux* ターゲットの設定」を参照してください。
ターゲット・オペレーティング・システムをビルドしてインテル® VTune™ プロファイラーのコレクターとドライバーの統合を完了します。
ターゲットの組込みデバイスへオペレーティング・システムを書き込みます。
ターゲットの組込みデバイスへオペレーティング・システムを書き込んだ後に、適切なインテル® VTune™ プロファイラーのドライバーが存在することを確認します。
5.SSH 接続または SEP コマンドを使用して、ホストシステムからターゲットの組込みデバイスで解析を行います。
RSA キーを使用して、ターゲットへのパスワードなしの SSH アクセスをセットアップします。
解析ターゲットとリモートシステムを指定します。
解析タイプを選択します。
ホストから解析を実行します。
SEP コマンドの実行方法は、SEP ユーザーガイドを参照してください。
インテル® VTune™ プロファイラー GUI で結果を表示します。
コマンドラインから、手動でカーネルイメージに適切なドライバーを組込んで、インテル® VTune™ プロファイラーのコレクターをインストールできます。この手順では、構成されたカーネルソースへの root アクセスが必要です。
インストーラー GUI を使用して、インテル® VTune™ プロファイラーをインストールします。
ターゲットの組込みデバイスで解析を実行します。
RSA キーを使用して、ターゲットへのパスワードなしの SSH アクセスをセットアップします。
解析ターゲットとリモートシステムを指定します。パッケージに含まれるコレクターとドライバーが自動的にインストールされます。
解析タイプを選択します。
ホストから解析を実行します。
3.ホストでインテル® VTune™ プロファイラー GUI で結果を表示します。
トラブルシューティング
コレクターのインストール時にドライバーがビルドできなかった場合、インストーラーはサンプリング・ドライバーをビルドする必要があることを警告します。
ドライバーは、コンパイラー・ツールチェーンの利用状況に応じて、ターゲットシステムやホストシステム上でビルドされます。
ターゲットシステムでコンパイラー・ツールチェーンが利用できる場合:
ターゲットシステムでコンパイラー・ツールチェーンが利用できない場合: