インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

12.2.1. 変数固有の属性を使用する際の制約

サポートされていない変数固有の属性の使用法または不正なメモリー構成を検出した場合、 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーでは、エラーが発生するもしくは警告を発行します。

コンパイルエラーの原因となる変数固有の属性のサポートされていない使い方

  • カーネル属性を、コンスタント、ローカルまたはプライベート変数の宣言以外の宣言で使用している (例えば、関数パラメーターの宣言、グローバル変数宣言、関数宣言など)
  • register属性を、他の変数固有の属性と組み合わせて使用している
  • singlepumpdoublepump属性をどちらも同じ変数宣言に含んでいる
  • singlepumpおよびdoublepump属性を、numreadportsまたはnumwriteports属性を含まずに指定している
  • numreadports属性を指定する際にnumwriteports属性を同じ変数宣言に含んでいない、またはその逆
  • 同じ変数宣言にnumbanksbankwidth属性を含まずに、次の属性のいずれかを指定している
    • numreadports
    • numwriteports
    • singlepump
    • doublepump

コンパイル時にオフライン・コンパイラーが警告を発行する原因となる不正なメモリー構成

  • 変数固有の属性で定義されているメモリー構成が、利用可能なストレージサイズを超えている (例えば、8バンクのローカルメモリーを整数変数に指定するなど)

コンパイルエラーの原因となる不正なメモリー構成

  • バンク幅がデータのストレージサイズよりも小さい (例えば4バイト整数の配列の場合バンク幅は2 バイトです)
  • 変数にメモリーのコンフィグレーションを指定している。コンパイラーの制約またはコーディング・スタイルのため、オフライン・コンパイラーはメモリーを分割するのではなく、同じメモリーに変数を実装します。
  • register属性を変数に指定している。コンパイラーの制約またはコーディング・スタイルにより、オフライン・コンパイラーは変数をレジスターに実装できません。