AI 引擎到 PL 的接口性能 - 2022.1 简体中文

Versal ACAP AI 引擎编程环境 用户指南 (UG1076)

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

Versal AI Core 系列器件包含 AI 引擎阵列,其中包含以下类别的几个列。

PL 列
用于提供 PL 串流访问。每个列都支持 8 个 64 位从通道,用于将数据串流到 AI 引擎,并包含 6 个 64 位主通道,用于将数据串流到 PL。
NoC 列
用于提供 AI 引擎阵列与 NoC 之间的连接。这些接口也可连接到 PL。

如需指令 AI 引擎编译器选择更高频率的结果,请使用 --pl-freq=<number> 指定 PL 内核的时钟频率 (MHz)。默认值为 AI 引擎频率的四分之一,支持的最大值为 AI 引擎频率的一半,值取决于速度等级。示例如下:

  • 以下选项可为所有 AI 引擎到 PL 启用 300 MHz 的 AI 引擎到 PL 频率:
    --pl-freq=300
  • 要为特定 PLIO 接口设置不同频率,请使用以下代码在 ADF graph 进行设置。
    adf::PLIO *<input>= new adf::PLIO(<logical_name>, <plio_width>, <file>, <FreqMHz>);
注释: 以下信息适用于 Versal ACAP AI 引擎架构手册(AM009) 中所记述的 AI 引擎器件架构。

AI 引擎到 PL 的 AXI4-Stream 通道使用包含可选 BLI 寄存器的边界逻辑接口 (BLI) 连接(从通道 3 和 7 除外)。通道 3 和 7 这两条从通道的接口速度较慢。AI 引擎与 PL 之间的数据传输性能取决于是否启用可选 BLI 寄存器。

对于时序关键性较低的设计,无需使用 BLI 寄存器即可使用全部 8 条通道。在此情况下仍可满足 PL 时序。但对于频率较高的设计,只能使用 6 条快速通道(0、1、2、4、5 和 6),且源自 PL 的时序路径必须使用 BLI 寄存器加以寄存。

为了控制跨 AI 引擎 PL 通道的 BLI 寄存器的使用,请使用 --pl-register-threshold=<number> 编译器选项 (MHz)。默认值为 AI 引擎频率的 1/8(基于速度等级)。下面给出 1 个示例:

  • –pl-register-threshold=125

    编译器将仅限把AI 引擎到 PL 频率高于此设置(即此例中的 125 MHz)的所有 PLIO 接口映射到已启用 BLI 寄存器的高速通道。如果 PLIO 接口频率不高于 pl-register-threshold 值,那么将使用任意 AI 引擎到 PL 通道。

总之,如果 pl-freq < pl-register-threshold,则全部 8 条通道均可使用且无需寄存。如果 pl-freq > pl-register-threshold,则只能使用 6 条快速通道且需寄存。pl-register-threshold 是一种控制频率阈值的方法,超过阈值的情况下,只能使用快速通道(含寄存)。

注释: 如果仅发送单个 32 位码字,那么对于 AI 引擎与 PL 之间的 64 位串流,TLAST 是必需的:AI 引擎编译器会在内部将 AI 引擎到 PL 的 32 位串流接口自动上调到 64 位接口。发送 32 位串流数据(PL 与 AI 引擎之间往来双向发送)时,无 TLAST 的单个 32 位码字会自动保留在接口中,直至下一个 32 位码字到达以上调至完整的 64 位大小。变通方法是在发送 32 位串流之后再发送 TLAST。