記事 ID: 000073897 コンテンツタイプ: トラブルシューティング 最終改訂日: 2019/01/23

ループ数が割り当てられたチャネル数を超えると、OpenCL™™ カーネルのコンパイル中にスタックダンプが発生するのはなぜですか?

環境

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

    ループにインデックス付きチャネルへの書き込みが含まれていて、そのループ数が割り当てられたチャネル数を超えた場合、OpenCL™のコンパイル中にスタックダンプが発生する可能性があります。以下のサンプルコードを参照してください。

    チャネル符号なし文字 my_channel[16] __attribute__(深度(1024)));
    文字データ[32];

    ...
    for (符号なし文字 i = 0; i < 32; i ) {
    write_channel_intel(my_channel[i], データ[i]);

    }

    解決方法

    ループ数が割り当てられたチャネル数を超えないようにしてください。

    #define num_channels 32

    チャネル符号なし文字 my_channel[num_channels] __attribute__((深度(1024)));
    文字データ[num_channels];

    ...
    for (符号なし文字 i = 0; i < num_channels; i ) {
    write_channel_intel(my_channel[i], データ[i]);

    }

    この問題は、インテル® FPGA SDK for OpenCL™™ コンパイラーのバージョン 19.1 以降で修正されています。

    関連製品

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

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

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