コマンド キュー - 2021.2 Japanese

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

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 Japanese

clCreateCommandQueue API は、デバイスごとに 1 つまたは複数のコマンド キューを作成します。FPGA には、同じカーネルまたは異なるカーネルのいずれかの複数のカーネルを含めることができます。ホスト アプリケーションを開発する場合、デバイスでカーネルを実行するためのプログラミング方法が主に 2 つあります。

  1. 1 つの順不同コマンド キュー: 複数のカーネル実行を同じコマンド キューで要求できます。XRT によりこれらのカーネルができるだけ早く任意の順序で実行され、FPGA 上でのカーネルの同時実行を可能にします。
  2. 複数の順序どおりのコマンド キュー: 各カーネル実行は異なる順序どおりのコマンド キューから要求されます。このような場合、XRT は異なるコマンド キューからカーネルを実行し、それらがデバイス上で同時に実行されるようになるので、パフォーマンスが改善されます。

次に、順不同および順序どおりのコマンド キューを作成する標準 API 呼び出しの例を示します。

// Out-of-order Command queue
commands = clCreateCommandQueue(context, device_id, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, &err);

// In-order Command Queue
commands = clCreateCommandQueue(context, device_id, 0, &err);