创建多个计算单元 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

构建 .xclbin 文件时,可使用 --connectivity.nk 选项来指定要实现到硬件中的内核实例或计算单元 (CU) 的数量,如 创建内核的多个实例 中所述。构建 .xclbin 后,即可从主机应用访问这些 CU。

用户可以使用单一内核对象 (xrt::kernel) 来执行多个 CU,前提是这些 CU 具有相同的接口连接方式,即这些 CU 具有相同的存储器连接 (krnl.group_id)。如果并非所有 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,这 2 个 CU 具有相匹配的连接,而 krnl2 则可用于启动 vadd_3,该 CU 的连接与前 2 个不同。

提示: 如果您为多个无匹配连接的 CU 创建单个内核对象,那么在执行内核时,XRT 会将一个或多个具有匹配连接的 CU 分配到该内核对象,并忽略硬件中的其它内核。