在计算单元之间指定串流连接 - 2022.1 简体中文

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

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

Vitis 核开发套件支持在两个内核之间进行串流数据传输,允许数据从一个内核直接移动到另一个内核,而无需通过全局存储器来向回发射数据。但此进程必须在内核代码本身中实现(如 使用自动重启内核 中所述),并且还必须在内核构建进程中指定。

v++ 链接期间,可使用 --connectivity.sc 选项来连接内核的串流数据端口。该选项可在命令行上指定,或者也可在使用 --config 选项指定的 config 文件中指定,如 Vitis 编译器命令 中所述。

重要: 如果 --connectivity.sc 内核驱动本身,那么将发生错误。

要将生产者内核的串流输出端口连接到使用者内核的串流输入端口,请在 v++ 配置文件内使用 connectivity.stream_connect 选项来指定连接,如下所示:

[connectivity]
#stream_connect=<cu_name>.<output_port>:<cu_name>.<input_port>:[<fifo_depth>]
stream_connect=vadd_1.stream_out:vadd_2.stream_in

其中:

  • <cu_name> 是由 connectivity.nk 选项判定的 CU 的实例名称,如 创建内核的多个实例 中所述。
  • <output_port><input_port> 是生产者内核或使用者内核中定义的串流端口。
  • [:<fifo_depth>] 会在 2 个串流端口之间插入指定深度的 FIFO 以防止发生停滞。请指定整数值。
提示: 如果输出端口与输入端口的端口宽度不匹配,那么在构建进程中,Vitis 编译器将在这两个端口之间自动插入数据宽度转换器。