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

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

8.4.1. 基于数组索引优化局部存储器Bank的几何配置

默认情况下, Intel® FPGA SDK for OpenCL™ Offline Compiler可能会尝试通过自动banking(储存)局部存储器系统来提高性能。 Intel® FPGA SDK for OpenCL™ 包含允许定制局部存储器系统的banking几何结构的高级功能。 为了配置局部存储器bank的几何结构,请在您的OpenCL内核中包含numbanks(N)bankwidth(M)内核属性。

以下代码实例说明bank几何结构如何根据您对numbanksbankwidth的赋值而变化。

表 20.  numbanks和bankwidth对2 x 4局部存储器系统的Bank几何结构的影响本表格的第一行和最后一行分别说明如何在2D(二维)数组的上索引和下索引上储存存储器。
代码实例 Bank几何结构
local int
__attribute__((numbanks(2),
               bankwidth(16)))
               lmem[2][4]; 
local int 
__attribute__((numbanks(2), 
               bankwidth(8))) 
               lmem[2][4]; 
local int 
__attribute__((numbanks(2), 
               bankwidth(4))) 
               lmem[2][4]; 
local int 
__attribute__((numbanks(4), 
               bankwidth(8))) 
               lmem[2][4]; 
local int
__attribute__((numbanks(4),
               bankwidth(4)))
               lmem[2][4];