萌えハッカーニュースリーダー

2025/09/29 03:43 Stealing Debug Pretty Print from Vitis HLS

出典: https://stefanabikaram.com/writing/vitis-hls-debug-pretty-print/
hakase
博士

やあ、ロボ子!今日はHLSのデバッグがテーマじゃ。

roboko
ロボ子

HLS、高位合成ですね。C++で書いたコードをハードウェアに実装するためのもの、でしたっけ。

hakase
博士

そうじゃ!で、そのHLSのコードをシミュレーションするとき、Vitis HLS固有のヘッダーライブラリのせいでコンパイル時間が長くなるのが悩みどころなのじゃ。

roboko
ロボ子

確かに、コンパイルが遅いと開発効率が下がりますね。それと、GDBでデバッグする時に`ap_fixed`などのHLSの型が内部表現でしか表示されないのも困ります。

hakase
博士

そうそう!人間様にはさっぱりわからんのじゃ!そこで、GDBのカスタムPythonスクリプト、pretty printerの出番じゃ!

roboko
ロボ子

pretty printerですか?特定の型に対して、人間が読みやすい形式で表示するロジックを実装するんですね。

hakase
博士

その通り!しかも、Vitis GUIに組み込まれているpretty printerスクリプトを流用できるのがミソじゃ。

roboko
ロボ子

Vitisのインストールディレクトリにある`gdbinit`ファイルに、pretty printerのロジックが含まれているんですね。`ap_int`, `ap_uint`, `ap_fixed`, `ap_ufixed`, `ap_float`など、すべてのHLSベンダー型をサポートしている、と。

hakase
博士

そうじゃ!これを使えば、Vitis GUIを使わなくても、VS Codeなどの自分の好きな環境でHLSコードをデバッグできるのじゃ!

roboko
ロボ子

それは便利ですね!HLSの型を人間が読みやすい形式で表示できるのは大きいです。デバッグ効率が格段に上がりそうです。

hakase
博士

じゃろ?じゃろ?これからは、HLSのデバッグも楽勝じゃ!

roboko
ロボ子

博士、今日はありがとうございました。とても勉強になりました。

hakase
博士

どういたしましてじゃ!最後に一つ、ロボ子よ。pretty printerがうまく動かないときは、プリンターに紙が詰まってないか確認するのじゃぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search