ランタイム パラメーターを含む AI エンジン カーネルのインポート - 2023.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2023-11-15
Version
2023.2 日本語

Vitis Model Composer では、カーネル関数にランタイム パラメーターを含む AI エンジン カーネルを、ウィンドウ タイプおよびストリーム タイプと共にインポートできます。次の表にランタイム パラメーターとして渡すことができるスカラー データ型をリストします。

表 1. スカラー データ型
<Type> 実数/複素数 符号の有無
int8 実数 符号付き
int16 実数 符号付き
int32 実数 符号付き
int64 実数 符号付き
uint8 実数 符号なし
uint16 実数 符号なし
uint32 実数 符号なし
uint64 実数 符号なし
cint16 複素数 符号付き
cint32 複素数 符号付き
float 実数 なし
cfloat 複素数 なし

関数引数の各パラメーター (スカラー型およびベクター型) に対し、暗黙ポートが推論されます。次の表に、各関数引数に推論されるポートのタイプを示します。

仮引数 ポート クラス
T 入力
Const T 入力
T & 入出力
Const T & 入力
Const T (&) [ ..] 入力
T (&)[ ..] 入出力

次の例では、simple_rtp 関数に 2 つのリアルタイム パラメーターが含まれます。関数引数 select は値で渡され、引数 weight は参照で渡されます。

#ifndef __RTP_KERNEL_H__
#define __RTP_KERNEL_H__
 
void simple_rtp(input_window_cint16 * in,output_window_cint16 * outw, int32 &weight, int32 select);
 
#endif //__RTP_KERNEL_H__

上記の関数用に AIE Kernel ブロックをインポートすると、AIE Kernel ブロックは次の図のように表示されます。Model Composer では、inout ポートは AIE Kernel ブロックの output ポートとして表示されます。

注記: Vitis Model Composer では、inout RTP ポートはコード生成時には無視され、Simulink シミュレーションでのみ考慮されます。つまり、PS から読み出されません。

RTP はウィンドウ ポートおよびストリーム ポートと共に使用されるので、カーネル関数のインポート手順は同じです。上記の RTP を含むカーネル関数をインポートすると、AIE Kernel ブロックは次の図に示すようになります。

図 1. AIE Kernel (RTP)

AIE Kernel ブロック名 (simple_rtp) は、AI エンジン カーネル関数名と同じです。

インポートすると、Function タブが表示されます。次の図に示すように、関数定義とランタイム パラメーターをすばやく確認できます。

図 2. Function タブ

ポートの同期性は、RTP 特定のパラメーターです。次の表に、ソース RTP 入出力ポートに対するデスティネーション RTP 入力ポートの有効な同期性を示します。デフォルトでは auto に設定されています。

表 2. 有効な同期性
ソース RTP 入出力ポート デスティネーション RTP 入力ポート
auto async
sync auto
sync sync
async async

ソース RTP 入出力ポートが auto に設定されている場合、デスティネーション RTP 入力ポートは async に設定する必要があります。ほかの組み合わせも同様です。上記の表に示されていない組み合わせを使用しようとすると、Model Composer でエラーが表示されます。