計算ユニット間のストリーミング接続の指定 - 2021.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-03-29
Version
2021.1 Japanese

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 つのポート間にデータ幅コンバーターを自動的に挿入します。