Vitis コア開発キットでは、2 つのカーネル間のストリーミングデータ転送がサポートされており、グローバル メモリを介せずに、カーネル間でデータを直接転送できます。ただし、ユーザー管理の終わらないカーネルでのデータのストリーミング で説明されるように、このプロセスはカーネル コード自体にインプリメントする必要があるほか、カーネル ビルド プロセスで指定する必要もあります。
カーネルのストリーミング データ ポートは、v++
でのリンク時に --connectivity.sc
オプション オプションを使用して接続できます。このオプションは、コマンド ラインで指定するか、Vitis コンパイラ コマンド で説明されるように、--config
オプションで指定した config
ファイルから指定します。
プロデューサー カーネルのストリーミング出力ポートをコンシューマー カーネルのストリーミング入力ポートに接続するには、v++
コンフィギュレーション ファイルで次のように connectivity.stream_connect
オプションを使用します。
[connectivity]
#stream_connect=<cu_name>.<output_port>:<cu_name>.<input_port>:[<fifo_depth>]
stream_connect=vadd_1.stream_out:vadd_2.stream_in
説明:
-
<cu_name>
:connectivity.nk
オプションで指定される CU のインスタンス名 (複数のカーネル インスタンスの作成 を参照)。 -
<output_port>
または<input_port>
: プロデューサーまたはコンシューマー カーネルで定義されているストリーミング ポート。 -
[:<fifo_depth>]
: 2 つのストリーミング ポート間に指定した深さの FIFO を挿入して、ストールが発生しないようにします。値は整数で指定します。
ヒント: 出力ポートと入力ポートの幅が一致しない場合、Vitis コンパイラはビルド プロセス内で 2 つのポート間にデータ幅コンバーターを自動的に挿入します。