硬件中的数据吞吐率估算 - 2023.2 简体中文

AI 引擎内核与计算图编程指南 (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 简体中文

可能导致系统不满足性能需求的根本原因有:

  • graph 的部分内核可能无法与输入/输出样本速率保持一致,导致全局性能降级。
  • AI 引擎阵列接口的吞吐率不满足性能要求,原因如下:
    • 最大理论吞吐率不足。
    • 获得的实际吞吐率远低于预期。

Versal 自适应 SoC AI 引擎架构手册(AM009) 列出了各接口的最大可用带宽。

对于 PLIO,它取决于 PL 内核的频率、位宽和效率。对于 GMIO,它取决于处理器、DDR 存储器访问模式以及各 NoC 通道的流量。

接口吞吐率较低并非总是意味着 PL 或 DDR 吞吐率过低。可能 graph 本身无法与样本速率保持一致,将反压发射到数据源。

器件的 DDR 接口数量:VC1352 中可能为 2,VC1802 和 VC1902 则为 4。开发板上 DDR 芯片数量(DDR4、LPDDR4 等)可能少于器件支持的最大数量。此外,基于开发板上安装的器件而构建的平台所支持的存储器数量可能少于开发板上实际安装的数量。所有这些参数都会直接影响您要实现的系统可达成的最大吞吐率。

图 1. NoC 模块框图

每个 DDR 接口有 4 个端口,通过开关连接到水平 NoC (HNoC) 的 4 条独立通道以及紧邻其上方的垂直 NoC (VNoC)。处理器系统的每条 HNoC 通道上也有 2 条 (APU + RPU) 连接。VNoC 只有 2 条连接到器件的通道,因此来自 4 条传入通道的流量会组合在一起穿过这 2 条通道。每条通道都有 2 条串流,每个方向一条,并且每个串流的最大吞吐率均为 14 GB/s。

在 VCK 190 上,有 4 个 DDR 端口连接到 HNoC 及其上方的 4 个 VNoC。在 所提供的基本平台中,仅声明了这 4 个端口中的 3 个,因此限制了 AI 引擎可用的带宽。在 VC1902 上有 16 个 NMU/NSU,每个单元均可支持每个方向 16 GB/s 的吞吐率。已知顶层 HNoC 是由 4 个 VNoC 馈送的,由此产生最大 8 x14 GB/s,这远小于使用 16 个 NMU/NSU 时理论上 16 x16 GB/s 的潜在吞吐率。

您可能对输入或输出吞吐率或总体吞吐率感兴趣。接口可能是 PLIO 或 GMIO,用于访问可编程逻辑、DDR 或处理器系统。在上图中,您可以看到有多个 DDR 接口连接到水平片上网络 (HNoC),后者连接到 PS 和多个垂直 NoC。在顶层上,有个 HNoC 连接到其中一侧的多个 VNoC 和另一侧的 AI 引擎阵列。

有多种方法可用于估算设计(硬件中)的 AI 引擎接口吞吐量,包括:
  • 定时器
  • 事件
  • 剖析
  • 事件追踪
  • NoC 剖析(仅限 GMIO)