制御駆動型およびデータ駆動型のタスク - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

この抽象モデルをベースに、2 種類のタスク レベル並列処理 (TLP) モデルを使用して、アプリケーションの構築および設計が可能です。TLP は、データ駆動型または制御駆動型にでき、あるいは制御駆動型およびデータ駆動型のタスクを一つのデザインで混在させることも可能です。 これら 2 つのモデルの主な違いは次のとおりです。

  • アプリケーションが純粋にデータ駆動型で、外部メモリとのやり取りが不要で、関数がデータの依存関係がなく並列実行できる場合は、データ駆動型の TLP モデルが最適です。常に実行され、制御が不要で、データにのみ反応する純粋なデータ駆動型モデルを設計できます。詳細は、データ駆動型のタスク レベル並列処理を参照してください。
  • アプリケーションが外部メモリと何らかのやり取りをする必要があり、並列実行するタスク間にデータ依存性がある場合は、制御駆動型 TLP モデルが最適です。Vitis HLS は、タスク間の並列処理を推論し、(ユーザー定義されたとおりに) 適切なチャネルを作成してこれらの関数が実行中にオーバーラップされるようにします。制御駆動型 TLP モデルは、制御駆動型のタスク レベル並列処理 で説明されているように、Vitis HLS のデータフロー最適化とも呼ばれます。

次に続く数セクションでは、使用可能なこれらの主要なモデル化オプションについて説明します。これらのモデルを使用して、C++ でソース コードを記述すると、並列ハードウェア上でのプログラムの実行を最適化できます。