データフロー正規化形式を使用して計算関数を接続 - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

最上位関数内の接続に関する規則は、計算関数を分割する際にも適用できます。フィード フォワード接続で、各接続変数ごとに 1 つのプロデューサーとコンシューマーが含まれるようにします。変数を複数の関数で消費されるようにする必要がある場合は、明示的に複製する必要があります。

データのブロックを 1 つの計算ブロックから別のブロックに移動する際は、配列または hls::stream オブジェクトを使用できます。

配列を使用すると、コード変更が少なくすむので、通常は分割プロセスを短時間で実行できますが、hls::stream オブジェクトを使用すると、メモリ リソース量が少なくなり、レイテンシも短くなります。また、カーネルを介してデータがどのように移動するかを判断しやすくなります。これは、スループットを最大にするよう最適化する場合に重要です。

通常は hls::stream オブジェクトを使用することをお勧めしますが、配列をいつストリームに変換するかは開発者が決定できます。早期に実行する開発者もいれば、最終的な最適化段階で実行する開発者もいます。これには、 pragma HLS dataflow を使用することもできます。

この段階では、カーネルのアーキテクチャを図にしておくと、データ依存性、データ移動、データ管理、制御フロー、および同時処理を決定するのに役立ちます。