利用 Vitis 数据中心加速的最佳实践 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

以下提供了一些在 Vitis 核开发套件内开发应用代码和硬件函数时需要牢记的要点。

  • 请复查 使用 Vitis 软件平台加速数据中心应用 章节,以获取有关加速方法论的信息。
  • 注意计算时间与输入和输出数据量比率较高的加速函数。使用 FPGA 内核可以大幅减少计算时间,但是数据量带来了传输时延。
  • 对具有独立控制结构且不需要与主机定期同步的函数进行加速。
  • 将大型数据块从主机传输到全局器件存储器。一次大规模传输要比多次小规模传输效率更高。运行带宽测试,寻找最佳传输大小。
  • 仅在必要时才将数据复制回主机。由内核写入全局存储器的数据可供另一个内核直接读取。存储器资源包括 PLRAM(小尺寸,快速访问,时延最低)、HBM(中等尺寸,中等访问速度,存在一定时延)和 DDR (大尺寸,访问速度较慢,高时延)。
  • 利用多个全局存储器资源优势,在各个内核之间均匀分配带宽。
  • 通过执行 512 位宽突发,最大程度提升内核与全局存储器之间的带宽使用率。
  • 将数据缓存在内核的本地存储器中。访问本地存储器比访问全局存储器快得多。
  • 在主机应用中,使用事件和非阻塞传输事务,以并行和重叠方式启动多个请求。
  • 在 FPGA 中,使用不同的内核来充分利用任务级并行度,使用多个 CU 来充分利用数据级并行度,从而并行执行多个任务并进一步提升性能。
  • 在内核中,将任务级并行度用于数据流,将指令级并行度用于循环展开和循环流水打拍,从而最大程度提升吞吐量。
  • 某些 AMD FPGA 包含多个被称为超级逻辑区域 (SLR) 的分区。将内核保存在与其访问的全局存储体相同的 SLR 中。
  • 经常使用软件和硬件仿真来确认您的代码,确保其功能正确。
  • 经常审查 Vitis 指南报告,因为它提供与工程缺陷有关的清晰且切实可行的反馈。