カーネル実行モード - 2020.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

次の表で説明するように、カーネル実行モードには 3 つのタイプがあります。これらのモードは一緒に使用することはできず、各カーネルにはこの中の 1 つの実行モードしか使用できません。異なる実行モードのカーネルは Vitis リンカーでリンクでき、FPGA バイナリを形成します。

ヒント: 次の表に、3 つの実行モードの概要を示します。詳細は、XRT の資料の 「Supported Kernel Execution Models」 (サポートされるカーネル実行モデル) を参照してください。
表 1. カーネル実行モード
シーケンシャル モード パイプライン モード フリーランニング モード
制御プロトコル: ap_ctrl_hs
  • カーネルは、API 呼び出しを使用してホスト アプリケーションにより開始されます。
  • カーネルが終了したら、それがホスト アプリケーションに通知されます。
  • カーネルは、現在のタスクが終了してからしか再開できません。
  • メモリ ベースのデータ転送を使用したカーネルのレガシ モード。
制御プロトコル: ap_ctrl_chain
  • カーネルは、API 呼び出しを使用してホスト アプリケーションにより開始されます。
  • カーネルが新しいデータを読み込む準備ができたら、それがホスト アプリケーションに通知されます。
  • カーネルは、現在のタスクが終了する前に再開できます。
  • カーネルの複数の起動をオーバーラップできるので、パフォーマンスが改善します。
  • メモリ ベースのデータ転送を使用したカーネルのデフォルト モード。
制御プロトコル: ap_ctrl_none
  • カーネルは、デバイスが xclbin でプログラムされるとすぐに開始します。
  • カーネルは続けて実行され、データが使用可能になると同期されます。
  • フリーランニング モードは、OpenCL C で記述されたカーネルではサポートされません。