記事 ID: 000077386 コンテンツタイプ: エラーメッセージ 最終改訂日: 2018/08/28

エラー: ACLMemUtils.cpp(510) でアサートに失敗しました

環境

  • インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
  • インテル® FPGA SDK for OpenCL™ プロ・エディション
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    詳細

    インテル® SDK for OpenCL™™ を使用すると、カーネルのコンパイル中に以下のような「エラー: ACLMemUtils.cpp(510) でアサートに失敗しました」と表示されることがあります。

    > aoc kernel.cl -rtl

    aoc: OpenCL パーサーを実行しています....

    aoc: OpenCL™ パーサーが正常に完了しました。

    aoc: オブジェクトファイルをリンクしています...

    aoc:コードの最適化と静的分析の実行...

    エラー: ACLMemUtils.cpp(510) でアサートに失敗しました *******

    このエラーは、オンチップ・メモリーのサイズが (2**n) 1 の場合、n >= 5 の場合に発生します。

    説明のためにカーネルコードの例を次に示します。

    #define n 5

    #define サイズ (2**n) 1

    __kernel void kernel(__global char * 制限入力) {

    int mem[size];

    for (int i=0; i<size-1; i )

    mem[i]=mem[i 1];

    mem[size-1] = 入力 i;

    }

    解決方法

    この問題を回避するには、

    (2**n) 1 以外のサイズを使用する

    または

    ループ上で展開 #pragma を使用する

    この問題は、インテル® Quartus® Prime ソフトウェア・バージョン 18.1 以降で修正されています。

    関連製品

    本記事の適用対象: 1 製品

    インテル® プログラマブル・デバイス

    このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。