.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_1
と vadd_2
) を起動でき、krnl2
を使用して異なる接続を持つ vadd_3
を起動できます。
ヒント: 接続を一致させずに複数の CU に対して 1 つのカーネル オブジェクトを作成した場合、XRT は 1 つ以上の CU にカーネル オブジェクトと一致する接続を割り当て、カーネルの実行時にハードウェア内のそれ以外の CU を無視します。