设计中的每个内核均可使用 connectivity.slr
选项分配给任一 SLR 区域,该选项可在为 v++ --config
命令行选项指定的配置文件中找到。如需了解更多信息,请参阅 在 Alveo 加速器卡上将计算单元分配给 SLR。
执行内核布局时,AMD 建议使用 connectivity.sp
配置选项来分配内核将连接到的特定 DDR 存储体,如 将内核端口映射到存储器 中所述。
例如,下图显示了包含 4 个 SLR 的现有目标平台和包含 3 个 SLR 的新目标平台。这两个平台之间的静态区域构造方式也不同。在此移植示例中:
- Kernel_A 映射到 SLR0。
- Kernel_B 不再适合置于 SLR1 内,它被重新映射到具有可用资源的 SLR0。
- Kernel_C 映射到 SLR2。
- Kernel_D 被重新映射到具有可用资源 SLR2。
内核映射如下图所示。
图 1. 跨 SLR 的内核映射
指定内核布局
对于以上示例,用于分配内核的配置文件如下所示:
[connectivity]
nk=kernel:4:kernel_A.lernel_B.kernel_C.kernel_D
slr=kernel_A:SLR0
slr=kernel_B:SLR0
slr=kernel_C:SLR2
slr=kernel_D:SLR2
用于对上图所示每个内核进行布局的 v++
命令行如下:
v++ -l --config config.cfg ...
指定内核 DDR 接口
在指定内核布局时,还应指定内核 DDR 存储器接口。指定 DDR 接口可确保对内核到其他 SLR 中的 DDR 接口间的连接进行自动流水打拍。这确保了时序不会降级,时序降级会降低最大时钟频率。
在此示例中,使用上图中的内核布局:
- Kernel_A 连接到存储体 0。
- Kernel_B 连接到存储体 1。
- Kernel_C 连接到存储体 2。
- Kernel_D 连接到存储体 1。
用于执行这些连接的配置文件如下所示,且该配置文件通过 v++ --config
命令来传递:
[connectivity]
nk=kernel:4:kernel_A.lernel_B.kernel_C.kernel_D
slr=kernel_A:SLR0
slr=kernel_B:SLR0
slr=kernel_C:SLR2
slr=kernel_D:SLR2
sp=kernel_A.arg1:DDR[0]
sp=kernel_B.arg1:DDR[1]
sp=kernel_C.arg1:DDR[2]
sp=kernel_D.arg1:DDR[1]