如果您的 OpenCL 内核在版本 18.1.2 及更早版本中成功编译,但在版本 19.1 及更高版本中失败,请查找类似于以下内容的消息。
#aoc:正在检查内存使用率是否大于 100%...
#aoc:警告 RAM 利用率为 173%!
如果显示该消息,编译将失败,因为 M20K 利用率超过 100%。
在以前版本的 英特尔® FPGA SDK for OpenCL™ 中,如果编译器估计 M20K 利用率超过 100%,则编译器会自动禁用所有内存系统的本地内存复制。从 19.1 版开始,编译器不再自动禁用本地内存复制。
使用内存属性来控制片上内存复制,如此处的示例所示。
int __attribute__((memory, numbanks(1), singlepump, max_replicates(3))) lmem[1028];
有关更多信息,请参阅《面向 OpenCL 的英特尔 FPGA软件开发套件专业版:最佳实践指南》的以下章节。