ソフトウェアで制御可能なカーネルは、プログラマブル レジスタ インターフェイスをオープンにして、ホスト ソフトウェア アプリケーションがレジスタの読み出しと書き込みを介してカーネルと対話できるようにします。これらは最も一般的で広く適用されるカーネルのタイプです。ソフトウェア制御可能なカーネルには、ユーザー管理と XRT 管理の 2 種類があります。
ユーザー管理のカーネルと XRT 管理のカーネルの主な違いは、カーネル実行モードに関連しています。XRT は Vitis HLS で生成される ap_ctrl_chain
および ap_ctrl_hs
実行プロトコルに依存するため、C/C ++ カーネル および Vitis HLS のカーネルのコンパイル で説明されるように、XRT 管理のカーネルは C++ 開発者により適しています。また、ユーザー管理のカーネルは、既存の Vivado RTL IP のように多くの異なるユーザー定義の実行プロトコルをサポートできるので、RTL カーネル で作業する RTL 設計者により適しています。
Vitis アプリケーション アクセラレーション開発フローは、XRT ネイティブ C/C++ API を使用して記述されたホスト プログラムをサポートします。この API は、ユーザー管理のカーネルと XRT 管理のカーネルの両方をサポートし、終了しないカーネルなどの一部の高度なデザインもサポートします。また、XRT 管理のカーネル用の OpenCL API を使用するホスト アプリケーションもサポートします。次のセクションでは、XRT 管理のカーネルまたはユーザー管理のカーネルに必要なプログラミング API とさまざまなハードウェア インターフェイスについて簡単に説明します。
XRT 管理のカーネル | ユーザー管理のカーネル |
---|---|
|
|