ランタイム パラメーターを使用すると、動的条件またはイベントに基づいて、AI エンジン プログラムまたはデータフロー グラフの動作を変更できます。変更は、動作モードの変更や新しい係数テーブルなど処理するデータに対してであったり、条件実行やグラフの動的リコンフィギュレーションなどグラフの制御フローに対してであったりします。カーネルまたはグラフのどちらも、パラメーターを使用して実行するよう定義できます。
カーネル関数の仮引数に整数スカラー値が表示される場合、パラメーターはランタイム パラメーターになります。ランタイム パラメーターは、ストリームおよびウィンドウで生成されたパラメーターと共にポートとして処理されます。スカラーおよび配列値は、どちらもランタイム パラメーターとして渡すことができます。
ランタイム パラメーターを使用して定義された次のカーネル関数があるとします。select
はスカラー RTP ポートで、coefficients
は 32 個の整数のベクター RTP です。
#ifndef RTP_KERNEL_H
#define RTP_KERNEL_H
void simple_param(input_window_cint16 * in,
output_window_cint16 *outw,
int select,
const int32 (&coefficients)[32]);
#endif
次の 2 つのタイプの RTP がサポートされます。
- 同期パラメーター (トリガー パラメーター)
- カーネルは、ランタイム パラメーターが制御プロセッサにより書き込まれるまで実行されません。書き込まれるとカーネルが 1 回実行され、アップデートされた新しい値が読み出されます。これが完了すると、パラメーターがアップデートされるまで実行されません。これにより、通常のストリーミング モデルから異なるタイプの実行モデルを使用できるようになり、同期化をブロックすることが重要な特定のアップデート操作で有益な場合があります。
- 非同期パラメーター
- これらのパラメーターは、 Arm® などの制御プロセッサによりいつでも変更可能です。カーネルが起動されるたびに、特定の同期化なしで読み出されます。これらのタイプのパラメーターは、変更が頻繁ではないフィルター カーネルにフィルター係数を渡すためなどに使用できます。