FC2カウンター FPGAの部屋 SDSoC 2015.2 でハードウェアとソフトウェアのラプラシアンフィルタの性能を比較した2(ソフトウェアのみでテスト)

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

SDSoC 2015.2 でハードウェアとソフトウェアのラプラシアンフィルタの性能を比較した2(ソフトウェアのみでテスト)

SDSoC 2015.2 でハードウェアとソフトウェアのラプラシアンフィルタの性能を比較した1(ソースの公開)”の続き。

前回、SDSoC 2015.2 で、lap_filter2 プロジェクトを作製し、bmp_header.h, lap_fiter_tb.c, laplacian_filter2.c の3つのファイルをSource フォルダに入れた。

とりあえず、ソフトウェアのみでテストしてみよう。

トンカチの様な Build アイコンの右の下向き三角をクリックして、SDRelease を選択すると、ビルドが始まる。
SDSoC_80_150805.png

ビルドが終了して lap_fiter2.elf ができた。
SDSoC_81_150805.png

D:\SDSoC\Examples\ZYBO\lap_filter2\SDRelease\sd_card の内容を SDカードにコピーした。(ZYBO_boot_image.zipは元々あったファイルです)
test.bmp もコピーした。
SDSoC_82_150805.png

SDカードを取り外して、ZYBOに挿入し、電源ONでLinux が起動した。
./lap_filter2.elf を起動すると、ソフトウェアでのラプラシアンフィルタの処理時間と、ハードウェアでのラプラシアンフィルタの処理時間が表示された。
ls を実行すると、test_lap.bmp が生成されているのが分かる。
SDSoC_83_150805.png


(追記)
やはり、64 x 48 ピクセルだと実行時間が短いので、コメントを切り替えて、800 x 600 にしてもう一度、Build Project を行った。

//#define HORIZONTAL_PIXEL_WIDTH 64
//#define VERTICAL_PIXEL_WIDTH 48
#define HORIZONTAL_PIXEL_WIDTH 800
#define VERTICAL_PIXEL_WIDTH 600
#define ALL_PIXEL_VALUE (HORIZONTAL_PIXEL_WIDTH*VERTICAL_PIXEL_WIDTH)


D:\SDSoC\Examples\ZYBO\lap_filter2\SDRelease\sd_card の内容を SDカードにコピーした。

SDカードを取り外して、ZYBOに挿入し、電源ONでLinux が起動した。

./lap_filter2.elf を起動すると、ソフトウェアでのラプラシアンフィルタの処理時間と、ハードウェアでのラプラシアンフィルタの処理時間が表示された。
ls を実行すると、test_lap.bmp が生成されているのが分かる。
SDSoC_84_150805.png

ハードウェア(HW)(まだハードウェアにしていないけど)が 61.3 ms、ソフトウェア(SW)が 47.4 ms で、ラプラシアンフィルタの中身は同じコードでソフトウェアの方が malloc() をしている分遅いはずなのだが、キャッシュのせいだろうか?どちらもデータを一旦Read してからラプラシアンフィルタ処理に飛ぶようにしてみよう。
しかも、ソフトウェアでの処理時間は 47.4 ms と今まで一番速い。

なお、800 x 600 の原画像は、私のパソコン周辺だ。(test.bmp)
SDSoC_85_150805.jpg

ラプラシアンフィルタ処理をするとこうなる。(test_lap.bmp)
SDSoC_86_150805.jpg
  1. 2015年08月05日 05:14 |
  2. SDSoC
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3220-8746dc1b
この記事にトラックバックする(FC2ブログユーザー)