解决布局规划对性能的影响 - 2023.2 简体中文

Versal 自适应 SoC 系统集成和确认方法指南 (UG1388)

Document ID
UG1388
Release Date
2023-11-15
Version
2023.2 简体中文

开始布局规划前,请确保 Versal 器件上的关键资源可供使用。这些资源包括 AI 引擎阵列接口(或 shim 接口拼块)、块 RAM、UltraRAM、DSP、NoC 和 DDRMC。

下图显示了 Vivado IDE 的Device(器件)窗口中的 XCVC1902,并高亮显示了关键资源。此图还显示了器件(例如,块 RAM 或 UltraRAM)中的互连结构存储器资源分布情况。根据逻辑的输入/输出串流的连接方式来对齐布局规划对于提升系统性能至关重要。以下提供了逻辑的输入和输出串流的部分示例:

  • AI 引擎-PL-NoC-DDRMC
  • AI 引擎-PL
  • PS-NoC-DDRMC
图 1. Versal 器件关键资源

下图显示了 AI 引擎和 PL 的布局规划示例。在此设计中包含 AI 引擎 PL 数据流,并且 PL 不使用 UltraRAM 资源。如果在与 AI 引擎阵列接口交互的数据流中仅使用块 RAM 资源,那么在器件中 PL 所映射到的区域内即使不含 UltraRAM 列,仍可在此区域内执行 AI 引擎串流布局规划。

图 2. AI 引擎和 PL 布局规划

下图所示设计中显示了通过 NoC 读写 DDRMC 的 AI 引擎中所含的 GMIO。在支持 GMIO 的 AI 引擎中包含一些特定的列。下图显示了Device窗口中的 XCVC1902,其中包含 16 个支持 GMIO 的列。以下是访问支持 GMIO 的列时的注意事项:

  • 提供适当的 QoS 要求,以便允许 NoC 编译器最大程度提升分配给路径的带宽。
  • 允许aiecompiler选择 GMIO 列,并允许 NoC 编译器根据 QoS 设置选择相应的 DDRMC 位置。
  • 如果需要,请将 GMIO 约束至垂直 NoC (VNoC) 上方相应的列,并约束 VNoc 下方的 DDRMC 以便最大程度缩短穿过 NoC 的时延。
图 3. 支持 GMIO 的列

以下是对含 AI 引擎和 PL 内核的设计进行布局规划的方法示例:

  • AI 引擎阵列接口 Pblock(JSON 文件)

    确定 DDRMC 的宽度,并创建 <constraints>.json 文件以供传递到 aiecompiler。

  • Pblock(XDC 文件)

    判断 VNoC 的大小,使用基于 Vivado Vivado Design Suite XDC 的 Pblock 标准方法。如需了解更多信息,请参阅 Vivado Design Suite 属性参考指南(UG912) 适用于 FPGA 和 SoC 的 UltraFast 设计方法指南(UG949)

以下是含指定 Pblock 的 <constraints>.json 片段示例。此文件作为实参通过 --constraints 选项提供给 AI 引擎编译器。

{
	"GlobalContraints":{
		"areaGroup":{
		"name": "unique_area_group_name",
		"exclude": true/false
		"nodeGroup": ["rx.*"],
		"tileGroup": ["(col,row):(col,row)"],
		"shimGroup": ["col: col:]
	}
}

在此示例中:

nodeGroup
列出连接到 Pblock 的所有内核与 PLIO。rx* 涵盖了名称以 rx 开头的所有实例。
tileGroup
指定 AI 引擎阵列上用于内核布局的 Pblock 范围。
shimGroup
指定 AI 引擎阵列上用于阵列接口实例(可以是 PLIO)布局的 Pblock 范围。

以下另提供了其他注意事项:

  • 如果从 AI 引擎到 PL 之间存在任何数据流,请查看 DSP、块 RAM 和 UltraRAM 列,并使用 AI 引擎通道,这些通道支持您最大限度利用资源。

    例如,无需 DSP 的 PL 模块则同样不需要距离 DSP 列更近的 AI 引擎通道。

  • 请确保根据器件上各流水线阶段的分布方式在宏上插入流水线阶段。

    例如,穿过 AI 引擎 PL 通道的数据流存储在存储器中。这是标准要求,但并没有足够存储器可对齐到 AI 引擎 PL 通道。

  • 请根据逻辑的输入和输出串流的连接方式来对齐布局规划。

    例如,对于输出串流,请将布局规划对齐到 PL-NoC-DDR,对于输入串流,请将布局规划对齐到 DDR-NoC-PL-AI 引擎