英特尔徽标用于 OpenCL 板的 AN 824 FPGA SDK
支持包平面图
用户指南

 英特尔® FPGA SDK OpenCL™ 板级支持包布局规划优化指南
面向 OpenCL™ 板级支持包 (BSP) 布局规划优化指南的英特尔/® FPGA SDK 为 OpenCL) BSP 提供了布局规划指南。 它还提供了有关如何获取具有最佳平均最大运行频率的基本种子和评估 BSP 资源利用效率的指南。
本文档假定您熟悉 Khronos Group 的 OpenCL 规范 2 版中描述的 OpenCL(1.0) 概念。

OpenCL BSP 编译流程
OpenCL BSP 支持以下类型的编译流程:

  • 平面编译 [–bsp-flow flat]:对整个设计(BSP 以及内核生成的硬件)执行平面编译。
  • 基础编译 [–bsp-flow base]:使用 base.qsf 中的 LogicLock 限制执行基础编译 file. 放宽了内核时钟目标,以便 BSP 硬件有更多的自由来满足时序。 创建一个 base.qar 数据库来保存 BSP 硬件,这是静态区域。
  • 导入编译[ ]:从base.qar数据库中恢复定时关闭的静态区域,只编译内核生成的硬件。 它还会增加内核时钟目标以获得最佳内核最大工作频率 (fmax)。

OpenCL BSP 布局规划分区
OpenCL BSP floorplan主要分为以下两个区域:

  • 静态区域:表示具有保持静态的 BSP 相关硬件的区域。 在基础编译期间,该区域的时序关闭。 通常,目标是最小化该区域使用的芯片资源以收敛时序。
  • 内核区域:表示为 freeze_wrapper_inst|kernel_system_inst 模块保留的部分重新配置 (PR) 区域,其中包含内核。 总的来说,目标是最大限度地为该区域预留芯片资源。
  1. 面向 OpenCL 的英特尔 FPGA SDK 基于已发布的 Khronos 规范,并已通过 Khronos 一致性测试流程。 当前的一致性状态可以在以下位置找到 www.khronos.org/conformance.
  2. OpenCL 和 OpenCL 标志是 Apple Inc. 的商标,经 Khronos Group™ 许可使用。

英特尔公司。 版权所有。 英特尔、英特尔标识和其他英特尔标志是英特尔公司或其子公司的商标。 英特尔保证其 FPGA 和半导体产品的性能符合英特尔的标准保证,符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 除非英特尔明确书面同意,否则英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务。 建议英特尔客户在依赖任何已发布的信息以及下订单购买产品或服务之前获取最新版本的设备规格。
*其他名称和品牌可能是其他所有者的财产。

OpenCL BSP 布局规划指南

  • 从平面编译开始,了解 BSP 的所有主要组件自然放置的位置(尤其是具有 I/O 连接的 IP 块,如 PCIe 或 DDR)。 在设计 BSP 时,您可能必须考虑建立管道tages 在 IP 之间关闭时序。 您应该首先运行平面编译种子扫描来识别反复出现的失败路径,然后尝试修复它们。
    提示:— 与平面编译种子扫描相比,良好的时序收敛率将有更高的机会关闭基本编译时序。
    — 如果您在 mm_interconnect*(由 Qsys 添加的组件)中观察到一致的故障,则使用 Qsys Interconnect 打开系统 view呃,观察失败互连的复杂性。 您可以在 view呃改善时机。 如果您仍然无法解决问题,您可能必须通过添加 Avalon 管道桥来分解 mm_interconnect* 关键路径。
  • 在基础编译期间,从包含 freeze_wrapper_inst|kernel_system_inst 的内核区域上的 LogicLock 开始。 没有其他限制,英特尔 Quartus Prime 可以将 BSP 硬件自由放置在芯片的剩余静态区域中。 使用平面编译和芯片规划器确定 BSP 硬件(例如 PCIe 和 DDR)的大小和位置。 然后,使用 LogicLock 保留内核区域,同时避开 BSP 硬件的主要集群区域。
    提示:如果使用的芯片系列与参考平台相同并且 BSP 组件相似,则从 OpenCL 参考 BSP 附带的 freeze_wrapper_inst|kernel_system_inst 的 LogicLock 区域开始并解决故障可能会更快。
  • 您可以将以下附加组件添加到 BSP:
    — Memory banks:如果您添加更多的 memory bank,您应该确定 I/O bank 的位置,因为您可能需要添加流水线桥接以满足时序要求。
    — I/O 通道:您可以添加 I/O 通道,例如视频、以太网或串行接口。 如果您添加 I/O 通道,您应该确定 I/O bank 位置,因为如果关闭时序困难,您可能需要为流水线应用新的 LogicLock 区域。
    提示:如果您需要添加管道桥(例如ample,由于较大的路由延迟导致时序失败),然后考虑芯片中从源到目标逻辑的路由距离,并释放一些为内核区域保留的空间。
  • 为内核保留 LogicLock 区域时遵循以下一般准则:
    — 尝试将所有 DSP 列放在 kernel_system 中,除非 BSP 要求。
    — 尝试为 kernel_system 保留更多资源。
    — 尝试将内核区域中的缺口数量保持在最低限度。
    下图说明了添加的槽口,用于在 PCIe 和 DDR 组之间放置流水线桥。

图 1. 10 版本中英特尔 Arria® 17.0 GX 的 OpenCL BSP 布局规划

英特尔 AN 824 FPGA SDK,用于 OpenCL 板级支持包布局规划

最大工作频率指南
内核实现的最大工作频率 (fmax) 在很大程度上取决于 FPGA 速度,因为大多数 IP 应该已经过优化。 但是,根据 BSP 布局规划,可能会有一些 fmax 损失。 对于前ample,通常 BSP 内核区域中的切割数量会影响内核 fmax。
如下图所示,获取产生最佳平均 fmax 的最佳基种子:

  1. 对基础编译执行种子扫描,而不是选择满足时序的第一个基础种子。
  2. 执行导入编译(通过使用来自 ex 的少量内核ample designs)在所有传递的基础种子上。
  3. 计算所有基本种子的平均 fmax。
  4. 选择产生最高平均 fmax 的基础种子。
    具有最佳平均 fmax 的基本种子非常适合与 BSP 一起发布。 如果您决定采用与推荐步骤不同的方法,您可能会观察到内核导入编译过程的 fmax 有 5-10% 的变化。

图 2. 确定最佳基础种子英特尔 AN 824 FPGA SDK,用于 OpenCL 板级支持包布局规划 - 图

  • 要了解内核在没有布局规划限制的情况下可以运行多快:
    1. 对内核进行平面编译并观察fmax。
    2. 在同一个内核上执行导入编译并观察 fmax。
    3. 比较 fmax 结果。
    由于布局规划的限制,import compile fmax 始终低于 flat compile fmax。 为避免种子噪声,使用更多基种子编译内核并在比较 fmax 结果时考虑平均 fmax。
  • 永远不要将基本编译的内核 fmax 与平面编译或导入编译进行比较。 内核时钟目标在基础编译期间放宽,因此您永远不会获得好的结果。
  • 观察基本或导入编译中的内核时钟关键路径。 如果关键路径从内核穿过布局规划中的静态区域,请更改布局规划或运行更多的基本种子以避免此关键路径。

BSP 资源利用效率评估指南

资源利用率越高tage、BSP静态区域的区域利用率越高。 资源利用率高tage 还意味着内核区域有更多资源可用。
按照以下步骤计算资源利用率百分比tag您的 BSP 的 e:

  1. 从 Fitter 报告的分区统计部分下可用的 top.fit.rpt 或 base.fit.rpt 获取 FPGA 中所有资源的值。
  2. 减去“freeze_wrapper_inst|kernel_system_inst”(内核区域)的值。

提示:
更多地关注自适应逻辑模块 (ALM) 的价值,而不是其他资源的价值。 确保资源利用率tagALM 的 e 更接近 OpenCL 参考 BSP。 非常高的百分比tagALM 的 e 可能导致拥塞,这会增加编译时间并在复杂内核中引入路由拥塞。 但是,您始终可以增加或减少静态区域区域,并观察编译时间和 fmax。
下表反映了 Arria ® 10 GX 器件在 17.0 版本中的 OpenCL BSP 资源利用率。

表 1.
10 版本中 IntelArria 17.0 GX 器件的 OpenCL BSP 资源利用

总可用 保留给内核 可用于 BSP 由 BSP 使用 0/0
ALM 427200 393800 33400 23818. 71.%
寄存器 1708800 1575200 133600 38913 29.%
M2OK 2713 2534 179 134 75.%
数字信号处理器 1518 1518 0 0 不适用

观察布局规划的执行方式,静态区域将没有任何 DSP 块。

文档修订历史

表 2.
面向 OpenCL 板级支持包平面图优化指南的英特尔 FPGA SDK 的文档修订历史

日期 版本 更改
17 月 XNUMX 日 初始版本。

图标 在线版本
cardo 590878 Spirit 蓝牙对讲机-ICON 14 发送反馈
编号:683312
AN-824
版本:2017.08.08
AN 824:用于 OpenCL™ 开发板的英特尔® FPGA SDK

支持包布局规划优化指南

文件/资源

英特尔 AN 824 FPGA SDK,用于 OpenCL 板级支持包布局规划 [pdf] 用户指南
用于 OpenCL 板支持包平面图的 AN 824 FPGA SDK,AN 824,用于 OpenCL 板支持包平面图的 FPGA SDK,OpenCL 板支持包平面图,板级支持包平面图,支持包平面图,封装平面图,平面图

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *