kernel - 2023.2 日本語

AI エンジン カーネルおよびグラフ プログラミング ガイド (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語

このクラスは、単一ノードのグラフを表します。ユーザー定義のグラフ タイプには、AI エンジン アレイにマップされた C 関数の演算をラップするメンバー変数としてカーネル オブジェクトが含まれます。

スコープ

kernel オブジェクトは、クラス スコープでユーザー定義のグラフ タイプ (例: graph から継承されたクラス内) のメンバー変数として宣言できます。

kernel オブジェクトは、グラフ コンストラクターの割り当てで初期化する必要があります。

メンバー関数

static kernel & create( function );

スタティック メソッドの create を使用して、C カーネル関数からカーネル オブジェクトを作成します。これによって各カーネルにある入力ポートと出力ポートの数、およびそれらの適切なエレメント タイプが自動的に決定されます。カーネル関数内のその他の引数は、呼び出しごとにカーネルに渡されて、ランタイム パラメーターまたはルックアップ テーブルとして機能します。ランタイム パラメーターは値で渡されますが、ルックアップテーブルは、コンパイラが生成したスタティック スケジュールによってカーネルが呼び出されるごとに参照で渡されます。

kernel & operator()(…)

1 つ以上の parameter オブジェクトを引数として使用します。parameter 引数の数は、kernel の構築に使用されるカーネル関数のバッファーに表示されない仮引数の数と一致する必要があります。グラフ コンストラクターの本体で kernel メンバー変数を割り当てると、更新されたパラメーター引数がすべての呼び出しでカーネル関数に確実に渡されます。

メンバー変数

std::vector<port<input>> in;

この変数では、カーネルの論理入力を設定し、ユーザー グラフでグラフ内のカーネル間の接続を指定できるようになります。i 番目のインデックスは、カーネル関数の引数で宣言された i 番目の入力ポート (バッファー、ストリーム、または rtp) を選択します。

std::vector<port<output>> out;

この変数では、論理出力を設定し、ユーザー グラフでグラフ内のカーネル間の接続を指定できるようになります。i 番目のインデックスは、カーネル関数の引数で宣言された i 番目の出力ポート (バッファーまたはストリーム) を選択します。

std::vector<port<inout>> inout;

この変数では、論理入力ポートを設定し、ユーザーグラフでグラフ内のカーネル間の接続を指定できるようになります。i 番目のインデックスは、カーネル関数の引数で宣言された i 番目の入力ポート (rtp) を選択します。