FPGA 上での SYCL* アプリケーションのプロファイル

インテル® VTune™ プロファイラー

この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® VTune™ Profiler Performance Analysis Cookbook」の「Profiling an FPGA-driven SYCL* Application」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


バージョン: 2023
更新日: 2022年12月16日

このレシピは、FPGA 上で SYCL* アプリケーションをプロファイルします。このレシピでは、インテル® VTune™ プロファイラーの CPU/FPGA 相互作用解析タイプ (プレビュー機能) に統合されている AOCL プロファイラーを使用します。

コンテンツ・エキスパート: Dmitry Ryabtsev (英語)

使用するもの

以下は、このパフォーマンス解析シナリオで使用するハードウェアとソフトウェアのリストです。

ツールキットをインストールして設定する

  1. インテル® PAC カードをマシンの PCIe* スロットに装着します。
  2. インテル® oneAPI ベース・ツールキット (Linux* 版) (英語) をダウンロードしてインストールします。すべてのデフォルトのオプションを選択して、オンラインまたはオフライン・インストーラーのいずれかを選択します。
  3. oneAPI ベース・ツールキット用インテル® FPGA アドオン (英語) をダウンロードします。
  4. oneAPI ベース・ツールキット用インテル® FPGA アドオンを展開して、setup.sh を実行します。すべてのデフォルトのオプションを選択します。
  5. oneAPI 環境をセットアップします。
    source <oneAPI-install-dir>/setvars.sh
  6. FPGA ボードを装着します。
    aocl install
  7. 診断コマンドを実行して、すべての診断にパスすることを確認します。
    aocl diagnose

サンプル・アプリケーションをビルドする

  1. インテル® oneAPI DPC++ コンパイラー・サンプルのリポジトリー (英語) からサンプルコードをダウンロードします。
    git clone https://github.com/intel/BaseKit-code-samples.git
  2. crr サンプルフォルダーを開きます。
    cd BaseKit-code-samples/FPGAExampleDesigns/crr
  3. src/CMakeLists.txt ファイルを開きます。
  4. set(HARDWARE_LINK_FLAGS から始まる、ハードウェア・フラグをリストしているコード行に移動します。
  5. リストに -Xsprofile を追加します。
  6. サンプルのメイン・ディレクトリーに戻ります。build という名前の新しいフォルダーを作成して開きます。
    mkdir build
    cd build
  7. サンプルをコンパイルします。
    cmake ..
    make fpga

    この処理には数時間かかります。処理が終了すると、crr.fpga という名前の実行ファイルが生成されます。

これで、FPGA ハードウェア上で crr.fpga を実行できます。

CPU/FPGA 相互作用解析を実行する

  1. インテル® VTune™ プロファイラーを起動して、[Welcome (ようそこ)] ページで [New Project (新規プロジェクト)] をクリックします。

    [Create a Project (プロジェクトの作成)] ダイアログボックスが表示されます。

  2. プロジェクトの名前と場所を指定したら、[Create Project (プロジェクトの作成)] ボタンをクリックします。

    [Configure Analysis (解析の設定)] ダイアログボックスが開きます。

  3. [WHERE (どこを)] ペインでは、[Local Host (ローカルホスト)] ターゲット・システム・タイプを選択します。
  4. [WHAT (何を)] ペインで、ターゲットとして [Launch Application (アプリケーションを起動)] を選択します。
    • [Application (アプリケーション)] フィールドに、crr.fpga 実行ファイルのパスを指定します。
    • [Application parameters (アプリケーションのパラメーター)] フィールドに、ordered_inputs.csv を入力します。

    FPGA 解析のセットアップ

  5. [HOW (どのように)] ペインで、[Platform Analysis (プラットフォーム解析)] グループの [CPU/FPGA Interaction (preview) (CPU/FPGA 相互作用 (プレビュー))] を選択します。
  6. 解析の設定で、[FPGA profiling data source (FPGA プロファイル・データソース)][AOCL Profiler (AOCL プロファイラー)] を選択します。

    FPGA 解析のセットアップ

  7. ウィンドウの下部にある [Start (開始)] ボタンをクリックして解析を開始します。

結果を確認する

データ収集が完了すると、[CPU/FPGA Interaction (CPU/FPGA 相互作用)] ビューポイントでファイナライズされた結果を確認できます。最初に、[Summary (サマリー)] ウィンドウで次の詳細を確認します。

  • FPGA の上位計算タスク
  • CPU の上位のタスクとホットスポット

CPU/FPGA 相互作用の結果サマリー

[Bottom-up (ボトムアップ)] ウィンドウに切り替えて、以下を含むカーネルレベルの詳細情報を確認します。

  • Stalls (ストール)
  • Occupancy (占有率)
  • Data transfer size (データ転送サイズ)
  • Average bandwidth for transferred data (転送データの平均帯域幅)

[Bottom-up (ボトムアップ)] ウィンドウ

タイムライン・ビューを使用して、カーネル・インスタンスに関する次の情報を確認します。

  • Start/end times (開始時間/終了時間)
  • Overtime stalls (全体のストール)
  • Occupancy (占有率)
  • Bandwidth (帯域幅) メトリック

CPU/FPGA 相互作用のタイムライン・ビュー

[Bottom-up (ボトムアップ)] ウィンドウで、カーネルを右クリックしてコンテキスト・メニューから [View Source (ソースを表示)] を選択します。

[Source (ソース)] ビューが開いて、特定のカーネルソース行のメトリックを確認できます。

[Source (ソース)] ビュー

関連情報

  • CPU/FPGA 相互作用解析 (https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/analyze-performance/accelerators-group/cpu-fpga-interaction-analysis-preview.html)
  • インテル® FPGA SDK for OpenCL* Pro Edition: ベスト・プラクティス・ガイド (https://www.intel.com/content/www/us/en/programmable/documentation/mwh1391807516407.html)

インテル® VTune™ プロファイラー・パフォーマンス解析クックブックのトップに戻る


製品および性能に関する情報

1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。

タイトルとURLをコピーしました