主机编程 - 2022.1 简体中文

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

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

Vitis™ 环境中,可使用赛灵思的 Xilinx Runtime (XRT) 本机 C++ API 或业界标准的 OpenCL™ API 以本机 C++ 来编写主机应用。此处对 XRT 本机 API 进行了简要描述,在 XRT 文档网站上的 XRT 本机 API 下提供了更多详细信息。请参阅 OpenCL 编程 以获取有关使用 OpenCL API 编写主机应用的探讨内容。

提示: 如需获取使用 XRT 本机 API 进行主机编程的示例,请参阅 Vitis_Accel_Examples 中的 host_xrt

总之,主机应用的结构可分为以下步骤:

  1. 指定加速器器件 ID 并加载 .xclbin
  2. 设置内核与内核实参。
  3. 在主机与内核之间传输数据。
  4. 运行内核并返回结果。
要使用 XRT 本机 API,主机应用必须与 xrt_coreutil 库相链接。例如:
g++ -g -std=c++14 -I$XILINX_XRT/include -L$XILINX_XRT/lib -lxrt_coreutil -pthread

使用 XRT 本机 C++ API 编译主机代码需要 C++ 标准和 -std=c++14。如果使用的 GCC 版本低于 4.9.0,请改用 -std=c++1y,因为 -std=c++14 是从 4.9.0 开始引入 GCC 的。

重要: 要对主机程序启用多线程,从 Vitis 核开发套件应用调用 fork() 系统调用时请谨慎处理。fork() 不会复制所有运行时线程。因此,在 Vitis 核开发套件中,子进程无法作为完整应用来运行。建议使用 posix_spawn() 系统调用从 Vitis 软件平台应用启动另一个进程。