”Vitis HLS 2022.2 の新機能を確かめる3(performance プラグマ3)”の続き。
”What’s New in the Vitis HLS Tool 2022.2 – Key Feature Enhancements”を参考に、Vitis HLS 2022.2 の新機能を確かめてみようということで、前回は、、より performance プラグマを評価するために、ソフトウエアとして書いた AXI4 Master アクセスベースの sobel_fil_axim.cpp とそのテストベンチ、Vitis HLS プロジェクトを表示した。今回は、performance プラグマなしとありの状態で、C コードの合成を行って比較した。
まずは”Vitis HLS 2022.2 の新機能を確かめる3(performance プラグマ3)”のソースコードのままに performance プラグマなしでやってみよう。
C シミュレーションを行った。
csim/build ディレクトリに sobel.jpg が生成されている。
C コードの合成を行った。
ループのインターバルは 8 クロックだった。全体のレイテンシは、3940046 クロックだった。
C/RTL 協調シミュレーションを行った。時間が掛かった。
レイテンシは 6566938 クロックだった。6566938(クロック) / 480000(ピクセル) ≒ 13.68 クロック/ピクセルだった。
C/RTL 協調シミュレーションの拡大した波形を示す。
AXI4 Master Write の間に 18 個の ARVALID が入っている。
1 個の ARVALID には、7 個の RVALID が入っているので、 18 x 7 = 126 個の AXI4 Master Read アクセスが入っているようだ。
次に、”#pragma HLS performance target_ti=800”を入れて、C コードの合成を行った。
結果は performance プラグマを入れていない時と同じリソース使用量、レイテンシだった。何も変わっていないようだ。
Pragma Report を見ると、8000 クロック未満に設定する必要があるようだ。
performance プラグマを使える用途がまだ良く分からない。
”What’s New in the Vitis HLS Tool 2022.2 – Key Feature Enhancements”を参考に、Vitis HLS 2022.2 の新機能を確かめてみようということで、前回は、、より performance プラグマを評価するために、ソフトウエアとして書いた AXI4 Master アクセスベースの sobel_fil_axim.cpp とそのテストベンチ、Vitis HLS プロジェクトを表示した。今回は、performance プラグマなしとありの状態で、C コードの合成を行って比較した。
まずは”Vitis HLS 2022.2 の新機能を確かめる3(performance プラグマ3)”のソースコードのままに performance プラグマなしでやってみよう。
C シミュレーションを行った。
csim/build ディレクトリに sobel.jpg が生成されている。
C コードの合成を行った。
ループのインターバルは 8 クロックだった。全体のレイテンシは、3940046 クロックだった。
C/RTL 協調シミュレーションを行った。時間が掛かった。
レイテンシは 6566938 クロックだった。6566938(クロック) / 480000(ピクセル) ≒ 13.68 クロック/ピクセルだった。
C/RTL 協調シミュレーションの拡大した波形を示す。
AXI4 Master Write の間に 18 個の ARVALID が入っている。
1 個の ARVALID には、7 個の RVALID が入っているので、 18 x 7 = 126 個の AXI4 Master Read アクセスが入っているようだ。
次に、”#pragma HLS performance target_ti=800”を入れて、C コードの合成を行った。
結果は performance プラグマを入れていない時と同じリソース使用量、レイテンシだった。何も変わっていないようだ。
Pragma Report を見ると、8000 クロック未満に設定する必要があるようだ。
performance プラグマを使える用途がまだ良く分からない。
コメント