文章 ID: 000073931 內容類型: 疑難排解 最近查看日期: 2019 年 10 月 25 日

為什麼我的 OpenCL™ 內核在 18.1.2 及更早版本中成功編譯,但在版本 19.1 及更新版本中失敗?

環境

  • Intel® Quartus® Prime Pro Edition 軟體
  • 適用於 OpenCL™ 的 Intel® FPGA SDK
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    如果您的 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 的以下部分:最佳實踐指南。

    通過控制記憶體複製因數優化對本地記憶體的訪問

    相關產品

    本文章適用於 1 產品

    Intel® 可程式裝置

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。