如果您的 OpenCL 內核在 18.1.2 及更早版本中成功編譯,但在版本 19.1 及更新版本中失敗,請查找類似于以下內容的消息。
#aoc:正在檢查記憶體使用率是否大於 100%...
#aoc:警告 RAM 利用率為 173%!
如果顯示該消息,則編譯失敗,因為 M20K 利用率超過 100%。
在以前版本的 Intel® FPGA SDK for OpenCL™ 中,如果編譯器估計 M20K 利用率超過 100%,則會自動禁用所有記憶體系統的本地記憶體複製。從版本 19.1 開始,編譯器不再自動禁用本地記憶體複製。
使用記憶體屬性來控制片上記憶體複製,如此處的示例所示。
int __attribute__((memory, numbanks(1), singlepump, max_replicates(3))) lmem[1028];
有關更多資訊,請參閱 適用于 OpenCL 專業版的 Intel FPGA SDK 的以下部分:最佳實踐指南。