Alveo 数据中心加速器卡使用由多个超级逻辑区域 (SLR) 组成的堆叠硅片器件来提供器件资源(包括全局存储器)。就频率和资源而言,内核计算单元 (CU) 实例和 DDR 存储器资源布局规划是满足设计结果质量的关键。布局规划包括将 CU(内核实例)显式分配至 SLR。为达成最佳性能,您应将内核或 CU 分配到特定 SLR,以改善布局和时序结果。按 将内核端口映射到存储器 中所述将内核端口分配到特定存储体时,SLR 分配尤为重要。
Alveo 加速器卡中 SLR 的具体可用性可通过 platforminfo
命令来判定。例如,U250 卡会报告有关 SLR 的下列信息:
Valid SLRs
:
SLR0, SLR1, SLR2, SLR3
您可以使用实际内核资源使用率值来帮助跨 SLR 分配 CU,从而降低任一 SLR 中的拥塞。系统会在设计周期早期估算内核所使用的资源(LUT、触发器、BRAM 等)的数量。该信息可搭配可用的 SLR 资源一起使用,以帮助将 CU 分配至 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...,以此类推。
AMD 建议将内核分配到布局该内核的 SLR 中的 DDR 存储器资源中。对于有限的跨 SLR 连接资源而言,这样可以减少资源争用,并减少使用超长线路 (SLL) 布线资源,因为这会造成了比标准布线更大的延迟。可能需要将内核连接到其他 SLR 中的 DDR 资源。但是,如果 connectivity.sp
和 connectivity.slr
指令都已显式定义,则该工具会自动添加额外的交汇逻辑,以便将 SLL 延迟的影响降到最低并促进时序收敛。
--profile.trace_memory <memory>:<SLR>