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

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

8.3.1. 常量缓存存储器

常量存储位于全局存储器中,但是内核在运行时将其加载到所有工作组共享的片上高速缓存(on-chip cache)中。 例如,如果您有全部工作组都使用的只读数据,并且常量缓冲区的数据大小适合存入常量cache,则将该数据分配到常量存储器中。常量cache最适合用于在多次内核调用之中保持不变的高带宽查找表。常量cache已针对高缓存命中性能进行了优化。

默认情况下,常量cache大小为16 kB。您可以通过将 -const-cache-bytes=<N> 选项包含在您的aoc命令中来指定常量cache的大小,其中<N>是以字节为单位的常量cache大小。

不同于具有额外硬件以容忍长时间存储器延迟的全局存储器访问,常量cache会因为未命中而遭受巨大的性能损失。如果您OpenCL™内核代码中的__constant自变量不能放入该高速cache中,您可以改用__global const自变量来获得更好的性能。如果主机应用程序写入已记载到常量cache的常量存储器中,则该高速缓存的数据将从常量cache中丢弃(即无效)。

有关 -const-cache-bytes=<N> 选项的更多信息,请参阅 Intel® FPGA SDK for OpenCL™ 编程指南中的配置常量存储器Cache的大小(-const-cache-bytes=<N>)小节。