インテル® VTune™ プロファイラー・ユーザーガイド
CPU/FPGA 相互作用解析を使用して、データ並列 C++ (DPC++) または OpenCL* アプリケーションを実行するディスクリート・インテル® Arria® 10 FPGA を搭載したシステム上の CPU と FPGA のバランスを評価します。
これはプレビュー機能です。プレビュー機能は、正式リリースに含まれるかどうか未定です。皆さんが機能に対する有用性のフィードバックを送ることで、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換が提供される保証はありません。parallel.studio.support@intel.com または intelsystemstudio@intel.com へフィードバックをお送りください。
CPU/FPGA 相互作用解析を使用して、実行されたカーネルの FPGA パフォーマンス、CPU と FPGA 間のメモリー転送の全体時間、および CPU と FPGA のワークロードに対する待機時間の影響を確認します。
次の FPGA デバイスメトリックが収集されます。
グローバル帯域幅
ストール
占有率
次のように CPU/FPGA 相互作用解析のオプションを設定します。
必要条件:
FPGA アプリケーションをインテル® oneAPI DPC++ コンパイラーでコンパイルする場合、-Xsprofile オプションを使用します。
(スタンドアロン GUI)/
(Visual Studio* IDE) で、インテル® VTune™ プロファイラー・ツールバーにある [解析の設定 (Configure Analysis)] ボタンをクリックします。
[解析の設定] ウィンドウが開きます。
[何を] ペインで ボタンをクリックし、[アプリケーションを起動] を選択して以下を入力します。
[アプリケーション] で aocl を指定します。
[アプリケーションの引数] で profile -s <path/to/.source> <FPGA host executable> [executable arguments] を指定します。
.source ファイルは、コンパイル出力ディレクトリーにあります。パフォーマンス統計をソース行に正確に関連付けるため、このオプションを指定することを推奨します。
[どのように] ペインで、 実行する解析タイプを選択ボタンをクリックして、[CPU/FPGA 相互作用] を選択します。
サンプリング間隔やスタックの有無など、収集のオプションを設定します。
下部にある コマンドライン・ボタンを使用して、この設定のコマンドラインを生成できます。
解析を実行するには 開始ボタンをクリックします。
プロファイラーのランタイムラッパーを使用して profile.json ファイル形式で収集された FPGA プロファイル・データは、インテル® VTune™ プロファイラーにインポートすることができます。profile.json ファイルを含むフォルダー全体をインポートしてください。収集されたデータの読み取りを高速化するため、(コンパイル・ディレクトリーに個別にコピーするのではなく) json ファイルを含むフォルダーを丸ごとインポートすることが重要です。プロファイラーのランタイムラッパーを使用したプロファイル・データの生成については、『FPGA 最適化ガイド』 (英語) を参照してください。
CPU/FPGA 相互作用解析の結果は、次のウィンドウ/ペインで構成される [CPU/FPGA 相互作用] ビューポイントに表示されます。
[サマリー] ウィンドウには、CPU 時間とプロセッサー利用率、および DPC++ または OpenCL* カーネルの実行時間を含む、アプリケーション全体の実行に関する統計情報が表示されます。
[ボトムアップ] ウィンドウには、ボトムアップ・ツリー形式の関数、CPU 時間、および関数ごとの CPU 利用率が表示されます。
[プラットフォーム] ウィンドウには、DPC++ や OpenCL* カーネルのメモリー転送、CPU コンテキスト・スイッチ、FPU 利用率、および DPC++ または OpenCL* カーネルと CPU スレッドに関する経時的なメトリックとパフォーマンス・データが表示されます。
CPU/FPGA 相互作用ビューポイントで以下を確認します。
FPGA 利用率。FPGA 上で実行されているカーネルの一覧については、[サマリー] ウィンドウの [上位 FPGA 計算タスク] を参照してください。[ボトムアップ] ウィンドウは、各カーネルの合計および平均実行時間を表示します。
メモリー転送。[ボトムアップ] ウィンドウの [データ転送] カラム、または [プラットフォーム] ウィンドウの [計算キュー] 行を参照して、DPC++ および OpenCL* カーネルとメモリー転送を確認します。
ワークロードの影響。[サマリー] ウィンドウの [コンテキスト・スイッチ時間] メトリックには、CPU コンテキスト・スイッチで費やされた時間が表示されます。コンテキスト・スイッチは、アプリケーション実行中に [プラットフォーム] タブにも表示されます。