将计算单元分配给 SLR - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

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

当前,数据中心加速器卡上的赛灵思器件使用由超级逻辑区域 (SLR) 组成的堆叠硅片来提供器件资源(包括全局存储器)。为了实现最佳性能,在向全局存储体分配端口时(如 将内核端口映射到存储器 中所述),最好将 CU 实例与相连的全局存储器分配到相同 SLR。在此情况下,您将把内核实例或 CU 手动分配到全局存储器所在 SLR 中,以确保最佳性能。此外,如果平台或器件支持多个 SLR,那么应向特定 SLR 分配 CU 以改善布局和时序结果。

重要: 如果您的内核过大,无法布局到单一 SLR 内,那么 Vitis 编译器会自动跨多个 SLR 进行逻辑布局。在此情况下,您不应分配 SLR,否则可能导致实现期间出错。

在配置文件中使用 connectivity.slr 选项即可将 CU 分配给 SLR。配置文件中的 connectivity.slr 选项语法如下:

[connectivity]
#slr=<compute_unit_name>:<slr_ID>
slr=vadd_1:SLR2
slr=vadd_2:SLR3

其中:

  • <compute_unit_name> 是 CU 的实例名,由 connectivity.nk 选项确定(如 创建内核的多个实例 中所述),或者如果不指定多个 CU,则直接命名为 <kernel_name>_1
  • <slr_ID> 是 CU 分配到的 SLR 编号,格式为 SLR0、SLR1...,以此类推。

必须针对每个 CU 单独指定分配给 SLR 的 CU,当平台包含多个 SLR 时建议执行此分配。如果分配的 CU 连接到位于另一个 SLR 中的全局存储器,那么该工具将自动插入跨 SLR 寄存器以帮助达成时序收敛。如无 SLR 分配,v++ 连接器即可自由向任意 SLR 分配 CU。

编译配置文件以包含 SLR 分配后,您可在 v++ 链接进程中通过使用 --config 选项指定配置文件来使用此分配:

v++ -l --config config_slr.cfg ...