複数の計算ユニットの作成 - 2021.1 Japanese

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

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

.xclbin ファイルをビルドする際は、複数のカーネル インスタンスの作成 に示すように、--connectivity.nk オプションを使用すると、カーネル インスタンスの数、またはハードウェアにインプリメントする計算ユニット (CU) を指定できます。.xclbin がビルドされたら、ホスト アプリケーションから CU にアクセスできます。

CU のインターフェイス接続が同一である限り、つまり CU のメモリ接続が同じ (krnl.group_id) であれば、1 つのカーネル オブジェクト (xrt::kernel) を使用して複数の CU を実行できます。すべての CU のカーネル接続が同じでない場合、次の例に示すように、カーネルの固有の設定ごとに別々のカーネルオブジェクトを作成できます。

krnl1 = xrt::kernel(device, xclbin_uuid, "vadd:{vadd_1,vadd_2}");
krnl2 = xrt::kernel(device, xclbin_uuid, "vadd:{vadd_3}");

上記の例では、krnl1 を使用して一致する接続を持つ CU (vadd_1vadd_2) を起動でき、krnl2 を使用して異なる接続を持つ vadd_3 を起動できます。

ヒント: 接続を一致させずに複数の CU に対して 1 つのカーネル オブジェクトを作成した場合、XRT は 1 つ以上の CU にカーネル オブジェクトと一致する接続を割り当て、カーネルの実行時にハードウェア内のそれ以外の CU を無視します。