Intel® FPGA SDK for OpenCL™ Pro Edition: 最佳实践实践指南

ID 683521
日期 9/26/2022
Public
文档目录

8. 提高存储器访问效率的策略

存储器访问效率通常指示为OpenCL™内核的整体性能。 在开发您的OpenCL代码时,尽量减少全局存储器的访问次数大有益处。OpenCL Specification version 1.0描述了四种存储类型:globalconstantlocalprivate存储器。
提示: 对于 Intel® oneAPI DPC++/C++ Compiler的具体细节,请参阅 Intel® oneAPI Toolkits的FPGA优化指南中的存储器访问部分。

互连拓扑将共享的全局、常量和局部存储器系统连接到它们的底层存储器。互连包括对存储器端口的访问仲裁。

存储器访问争用共享存储器资源(即,全局、局部和常量存储器)。如果您的OpenCL内核执行大量存储器访问, Intel® FPGA SDK for OpenCL™ Offline Compiler就必须生成复杂的仲裁逻辑来处理存储器访问请求。复杂的仲裁逻辑可能导致最大操作频率(fMAX)的下降,从而降低内核性能。

以下小节将详细讨论存储器访问优化。总而言之,因为以下原因而最小化全局存储器访问是有益的:

  • 通常,OpenCL内核性能的提高会导致全局存储器带宽需求的增加。
  • 最大全局存储器带宽远小于最大局部存储器带宽。
  • FPGA的最大计算带宽远大于全局存储器带宽。
    注意: 尽可能使用局部、专用(private)或者常量存储器来增加内核带宽。