実行モデル - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

Vitis コア開発キットでは、アプリケーション プログラムがホスト アプリケーションとハードウェア アクセラレーション カーネルに分割され、その間が通信チャネルで接続されます。ホスト プログラムは、C/C++ および XRT API のような API 抽象化を使用して記述され、ホスト プロセッサ (x86 サーバー、エンベデッド プラットフォーム用の Arm プロセッサなど) で実行される実行ファイルにコンパイルされますが、ハードウェア アクセラレーション カーネルの場合はザイリンクス デバイスのプログラマブル ロジック (PL) 領域内で実行される実行可能デバイス バイナリ (.xclbin) にコンパイルされます。

ホスト プログラムとハードウェア アクセラレータの間のトランザクションを処理するには、XRT で制御される API 呼び出しが使用されます。制御およびデータの転送を含むホストとカーネルの間の通信には、 PCIe® バスまたはエンベデッド プラットフォームの AXI バスを使用します。制御情報は、カーネル内の特定のアドレス マップ レジスタに書き込まれるか、特定のアドレス マップ レジスタから読み出されます。データ バッファーは、グローバル メモリを介してホストとカーネルの間で交換されます。グローバル メモリにはホスト プロセッサとハードウェア アクセラレータの両方からアクセスできますが、ホスト メモリにはホスト アプリケーションからしかアクセスできません。

ターゲット プラットフォームには FPGA アクセラレーション カーネル、グローバル メモリ、およびメモリ転送用のダイレクト メモリ アクセス (DMA) が含まれます。カーネルには 1 つまたは複数のグローバル メモリ インターフェイスを含むことができ、プログラム可能です。

FPGA には、アクセラレータ上に複数のカーネル インスタンス (別のカーネル タイプまたは同じカーネルの複数のインスタンス) を含めることができます。ホスト プログラムとアクセラレータ内のカーネル間の通信は、XRT で管理されます。XRT アーキテクチャの資料は、https://xilinx.github.io/XRT/ を参照してください。