ループ運搬依存を削減 - 2020.1 Japanese

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

ループ運搬依存の最もよくあるケースは、ループ反復が前の反復で計算された値に依存する場合です。依存が配列なのかスカラー変数なのかによって違いがあります。詳細は、 Vitis HLS フロー最適なループ展開によるパイプラインの改善 を参照してください。

  • 配列の依存性の削減

    HLS コンパイラは、インデックス解析を実行して配列依存 (read-after-write、write-after-read、write-after-write) があるかどうかを判断しますが、必ずしもすべての依存性を解決できるわけではなく、その場合はフォルス依存がレポートされます。

    これらの依存性は、特定のコンパイラ プラグマで上書きすると、デザインの II を改善できます。この場合、有効な依存を上書きしないように注意してください。

  • スカラーの依存性の削減

    スカラーの依存性は、通常、複数クロック サイクルにわたってスケジュールされた計算を含むフィードバック パスがある場合に発生します。これらのフィードバック パスには、乗算、除算、剰余演算などの複雑な算術演算があります。フィードバック パスのサイクル数は II を直接制限するので、II およびスループットを改善するには、フィードバック パスのサイクル数を削減する必要があります。これには、フィードバック パスを解析して、短くする必要性があるか、どうやったら短くできるかを調べる必要があります。HLS スケジューリング制約の使用、ビット幅の削減などのコード変更がその方法の例です。