組込み 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 コマンドを使用して、ホストシステムからターゲットの組込みデバイスで解析を行います。
ターゲットへのパスワードなしの SSH アクセスが設定されている。
ターゲット・アプリケーションとリモートシステムを指定します。
リモート接続を設定した後、インテル® VTune™ プロファイラーはターゲットシステムに適切なコレクターをインストールします。
解析タイプを選択します。
ホストから解析を実行します。
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 コマンドを使用して、ホストシステムからターゲットの組込みデバイスで解析を行います。
ターゲットへのパスワードなしの SSH アクセスが設定されている。
ターゲット・アプリケーションとリモートシステムを指定します。
解析タイプを選択します。
ホストから解析を実行します。
SEP コマンドの実行方法は、「製品ユーザーガイドのサンプリングの有効化」を参照してください。
インテル® VTune™ プロファイラー GUI で結果を表示します。
コマンドラインから、手動でカーネルイメージに適切なドライバーを組込んで、インテル® VTune™ プロファイラーのコレクターをインストールできます。このオプションには、構成されたカーネルソースへのルートアクセス権限が必要です。
インストーラー GUI を使用して、インテル® VTune™ プロファイラーをインストールします。
ターゲットの組み込みデバイスで解析を実行します。
RSA キーを使用して、ターゲットへのルートユーザーによるパスワードなしの SSH アクセスを設定します。
ターゲット・アプリケーションとリモートシステムを指定します。パッケージ内のコレクターとドライバーは自動的にインストールされます。
解析タイプを選択します。
ホストから解析を実行します。
3.ホストでインテル® VTune™ プロファイラー GUI で結果を表示します。
トラブルシューティング
コレクターのインストール中にドライバーがビルドされなかった場合、インストーラーの出力で、サンプリング・ドライバーのビルドが必要であることが通知されます。
ドライバーは、コンパイラーのツールチェーンの可用性に応じて、ターゲットシステムまたはホストシステムのいずれかでビルドされます。
インテル® コンパイラーのツールがターゲットシステムで使用可能な場合:
インテル® コンパイラーのツールがターゲットシステムで使用できない場合: