AI 引擎到 PL 速率匹配 - 2022.1 简体中文

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

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

AI 引擎以 1 GHz 或更高频率(因器件而异)运行,并且每个周期最多可写入两条含 32 位数据的串流。相比之下,PL 内核可按 500 MHz(AI 引擎频率的一半)运行,同时耗用更大的位宽。速率匹配需要考量从生产者到使用者的吞吐量平衡,用于确保任一进程都不会造成总体性能相关的瓶颈。以下等式显示了每个通道的速率匹配:

每个周期的 AI 引擎频率 × AI 引擎数据 = 每个周期的 PL 频率 × PL 数据

下表显示了由频率为 1 GHz 的 AI 引擎为 -1L 速度等级的器件写入每个周期的 32 位通道的 PL 速率匹配示例。如该表所示,PL IP 必须以一半的频率耗用两倍的数据,或者以四分之一的频率耗用四倍的数据。

表 1. AI 引擎与 PL 区域相比的频率响应
AI 引擎 PL
频率 每个周期的数据 频率 每个周期的数据
1 GHz 32 位 500 MHz 64 位
    250 MHz 128 位

由于 Vitis 编译器 (v++) 明确需要匹配频率并调整数据路径宽度,因此该工具会自动抽取 PL 内核的端口宽度、抽取时钟规范的频率,并引入放大器/缩小器来临时存储 AI 引擎与 PL 区域之间交换的数据,以便管理速率匹配。

为避免死锁,重要的是确保在 AI 引擎与 PL 之间如有多条通道执行读取或写入,那么将在所有通道上并发达成每个周期的数据率。例如,如果一条通道需 32 位,另一条通道需 64 位,那么 AI 引擎代码必须确保这两条通道都充分写入,以免通道上出现反压或数据匮乏。此外,为避免死锁,在 AI 引擎中写入/读取和在 PL 代码中读取/写入都必须遵循相同的时间顺序。

PL 的 graph 函数定义中使用的接口数量定义了 AXI4-Stream 接口的数量。每个实参都会导致创建独立的串流。