関数コールグラフ - 2023.2 日本語

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

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

関数コールグラフは、C 合成または C/RTL 協調シミュレーション後のデザイン全体を示します。レポートは、レイテンシと II の観点からデザインのスループットを示します。これにより、デザインのクリティカル パスを特定し、デザインのボトルネックを特定してスループッを向上できます。また、スループットが不均衡になる可能性のある (FIFO のストールやデッドロックの原因となる) デザインを通過するパスを示すこともできます。

図 1. 合成のパフォーマンス メトリクス

場合によっては、たとえばループを関数パイプラインに変換する HLS 最適化の結果、デザインの表示階層がソース コードと異なることがあります。インライン展開された関数は、合成されたコード内で独立した関数ではなくなるので、コールグラフに表示されなくなります。関数のインスタンスが複数作成される場合は、関数の固有のインスタンスがそれぞれコールグラフに表示されます。これにより、どの関数が呼び出し関数のレイテンシや II に貢献しているかを確認できます。

上記のグラフは、関数を長方形のボックスで、ループを楕円形のボックスで表示しています。グラフは階層とネストされた関数やループを表示します。グラフの下の表には、各関数やループの II、レイテンシ、リソースやタイミング データがビュー別に表示されます。

関数コールグラフ レポートは、Flow Navigator の C SYNTHESISC/RTL COSIMULATION の両方のヘディングの下から表示できます。C SYNTHESIS からグラフに示されるパフォーマンスおよびリソースのメトリックは、あくまで HLS ツールの見積もりです。C/RTL COSIMULATION 後の関数コールグラフ レポートはより詳細になり、実際の II とレイテンシの数値がストール率とと一緒にレポートされます。

ヒント: より正確なリソースおよびタイミングの見積りには、インプリメンテーションの実行に含まれるロジック合成またはインプリメンテーションを実行します。

また、Heat Map 機能を使用すると、いくつかの次のようなメトリクスをハイライトすることもできます。

  • II (最小、最大、平均)
  • レイテンシ (最小、最大、平均)
  • リソース使用量
  • ストール時間パーセンテージ
図 2. パフォーマンス メトリクス

ヒート マップは、問題のあるモジュールを色分けしてハイライトします。赤から緑へのカラー スケールを使用します。赤はメトリクスの高さを示し (最大の II またはレイテンシ)、緑は問題のメトリックの低さを示します。赤と緑のどちらでもない色は、最大値と最小値の間にある値の範囲を表します。この色分けにより、注意が必要なモジュールをすばやく特定しやすくなります。上記の例では、LATENCY のヒート マップを示しています。赤色のモジュールは、高レイテンシ値が観測された場所を示しています。

前述のように、関数コールグラフは、デザインのスループット値を大まかに示します。関数コールグラフを情報源として使用し、詳細を調べてください。表示されたモジュールのいずれかを右クリックすると、追加情報を表示するオプションのメニューが表示されます。これにより、デザイン全体を確認してから、特に注意が必要な特定部分にジャンプできます。その他のレポートには、[Schedule Viewer] ビュー、合成サマリ レポート、[Dataflow] ビュー、ソース ファイルなどが含まれます。関数コールグラフにより、デザインの全体像を把握し、各モジュールのレイテンシと II 情報を解析に使用できます。

ヒント: レポートの右側には、レポートの詳細を表示する [Settings] コマンドと [Legend] コマンドがあります。