constraint<T> - 2022.1 日本語

Versal ACAP AI エンジン プログラム環境 ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2022-05-25
Version
2022.1 日本語

このテンプレート クラスは、カーネル、接続、およびポートにスカラー データ制約を作成するために使用します。

スコープ

制約は、ユーザーのグラフ コンストラクター内に含める必要があります。

メンバー関数

constraint<T> operator=(T)

このオーバーロードされた等価演算子を使用すると、スカラー制約に値を割り当てることができます。

コンストラクター

デフォルト コンストラクターは使用されません。その代わりに、明確な目的を持つ次の特別なコンストラクターが使用されます。

void fabric<aiengine>(kernel&)

この制約は、カーネルを AI エンジン (デフォルト) にインプリメントするよう指定します。

constraint<std::string>& initialization_function(kernel&)

この制約は、各カーネルに特定の初期化関数を設定します。制約には、初期化関数の名前を示す文字列が必要です。1 つのコアに複数のカーネルがパックされている場合、そのコアにパックされている各初期化関数は 1 回だけ呼び出されます。コアにパックされたすべての初期化関数が完了するまで、カーネル関数は実行されません。

初期化関数は、値を返すことはできず、入力/出力引数を指定することはできません。つまり、関数プロトタイプは次のとおりです。

void init_function_name(void)
注記: 初期化関数は、graph::run API が 1 回目に呼び出されたときにのみ呼び出されます。

この関数は、グローバル変数を初期化し、丸めおよび飽和モードを設定/クリアするために使用できます。メモリまたはストリーム インターフェイスにアクセスするのにウィンドウまたはストリーム API は使用できませんが、ストリーム組み込み関数 (get_ss() など) を使用できます。 『AI エンジン カーネル コーディング ベスト プラクティス ガイド』 (UG1079) の例を参照してください。

constraint<float>& runtime<ratio>(kernel&)

この制約は、カーネルに特定のコア使用率を設定します。この値は、1 回のカーネル呼び出し (1 データ ブロックの処理) に必要なサイクル数のサイクル バジェットに対する比率です。アプリケーションのサイクル バジェットは、予測されるデータ スループットおよび処理されるブロック サイズによって、通常は固定されています。

constraint<std::string>& source(kernel&)

この制約は、各カーネル関数の定義を含むソース ファイルを指定します。ソース制約は、各カーネルに指定する必要があります。

constraint<int>& fifo_depth(connect&)=[<depth> | (depth)]

この制約は、実行でデッドロックが発生しないようにするため、ストリーミング接続に挿入するスラック値を指定します。

void single_buffer(port<T>&)

この制約は、ウィンドウ ポートに 1 つのバッファー制約を指定します。デフォルトでは、ウィンドウ ポートはダブル バッファリングされます。

void initial_value(async_AIE_RTP_port)

この制約は、非同期 AI エンジン入力ランタイム パラメーター ポートに初期値を設定します。これにより、デスティネーション カーネルは指定された初期値で非同期に開始できます。この制約を使用すると、スカラーと配列の両方のランタイム パラメーターを設定できます。

スカラーの例: initial_value(6)

配列の例: initial_value({1,2,3})

constraint<int> stack_size(adf::kernel& k);

この制約は、個別のカーネルのスタック サイズを設定します。

constraint<int> heap_size(adf::kernel& k);

この制約は、個別のカーネルのヒープ サイズを設定します。