大多数应用都期望能实现高吞吐量和低时延。Versal 自适应 SoC 可帮助您实现这一目标,有了 AI 引擎的帮助则更是如此。但通常应用对这两者之一具有更严格的要求,因此可能需要在高吞吐量与低时延之间做出取舍以满足其要求。
例如,对于 FIR 滤波器,可在 AI 引擎拼块 (tile) 内使用级联串流来将计算操作分为多个 AI 引擎拼块从而提升总体吞吐量。但这样可能就会导致 FIR 总体时延增大。如需了解更多信息,请参阅 滤波器链简单示例。
出入 AI 引擎阵列以及围绕其移动的数据会直接造成系统时延增大,例如,为内核使用窗口或串流接口。根据窗口大小,在加载输入时,这可能导致额外延迟,因为 AI 引擎会等待整个窗口变为可用后再开始计算。如果采用串流解决方案,那么在传递数据时就会开始计算。串流接口对于高数据速率设计而言是公用的。但这可能导致需要借助额外的 PL 功能来对数据进行排序和对齐以便执行串流。如果采用窗口化解决方案,那么乒乓缓冲可帮助缓解时延增加的问题。
在 PL 与 AI 引擎阵列之间进行通信时,如果 PL 运行速度比 AI 引擎慢得多,则必须留意系统中是否存在额外时延。在此情况下,必须使用更宽的总线(32、64 或 128 位)来将输入传输到阵列中。这样就会造成整体系统时延增加,因为 AXI4‑Stream 与 AI 引擎存储器与核之间的互连为 32 位,这导致增加 4 个周期并占用 128 位总线。
为了在 PL 中进行数据处理,针对具有低时延要求的关键功能考虑采用 DSP 引擎和 PL 尤显重要。这样即可避免数据出入 AI 引擎阵列,因为当存在低时延要求时,此类数据可能占用大量资源。
另一个注意事项是,您希望采用何种方式来控制 AI 引擎阵列中的功能或应用。您是否会在运行时使用 PS 或 PL 来控制内核功能?PS 能否满足时延要求,或者您是否需要 PL 控制器?这些都是需要针对特定应用进行评估的重要因素。
欲知详情,请参阅以下文档: