含级联串流的 1 Gsps 实现 - 2022.1 简体中文

AI 引擎内核编码 最佳实践指南 (UG1079)

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

针对 cint16 乘累加 cint16 类型,AI 引擎矢量单元支持每个周期 8 次 MAC。如果采用 mul4/mac4 内部函数的 4 通道实现,那么每个通道上将有 2 项复杂运算。

要计算 4 项输出,需要 16 次 mac4(),因为每个输出都需要 32 项复杂 MAC 运算。这意味着要计算 4 项输出,就需要 16 个周期并使用 AI 引擎。因此,AI 引擎的采样率(假定按 1 GHz 运行)将如下所示。

4 Gsps/16 = 0.25 Gsps = 250 Msps

这表示计算 AI 引擎的计算限制。但仍需要考量存储器限制,了解是否可以满足采样率。假定对于数据传输仅使用 1 项串流输入和 1 项串流输出,并且系数存储在 AI 引擎内部存储器中。那么 AI 引擎的串流接口支持每个周期 32 位。它能够在每个周期内传输一个数据样本。因此,来自数据传输视图的采样率如下所示。

1 个样本/周期 * 1 GHz = 1 Gsps

它大于计算限制 (250 Msps)。因此 AI 引擎实现将以 250 Msps 工作。

图 1. 一次 AI 引擎 FIR 滤波器实现

基于计算,可以通过串流输入和输出串流接口实现 1 Gsps。如果将单个内核实现的 MAC 运算拆分为 4 个内核,4*250Msps = 1 Gsps,那么即可满足计算吞吐量。这 4 个内核通过级联串流来连接。因此,AI 引擎计算限制与 AI 引擎接口吞吐量相匹配。

图 2. 含 4 个级联内核的 1 Gsps 实现