このクラスは、単一ノードのグラフを表します。ユーザー定義のグラフ タイプには、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) を選択します。