”
SDSoC 2015.2 でハードウェアとソフトウェアのラプラシアンフィルタの性能を比較した2(ソフトウェアのみでテスト)”の続き。
前回は、ラプラシアンフィルタのハードウェアとソフトウェアで動かすアプリケーションを作製した。但し、ハードウェアの実装はテストのため、まずはソフトウェアで実装し、ZYBOで試した。その際に、ラプラシアンフィルタの実装は、ハードウェア、ソフトウェアとも同じで、ソフトウェアの方が malloc() でメモリをアロケートしているので、ソフトウェアの遅いはずなのだが、速くなった。
これはキャッシュの問題かもしれないということで、ラプラシアンフィルタ処理の前にダミーのラプラシアンフィルタ処理を置いてみた。このダミーのラプラシアンフィルタ処理はハードウェア化の際には取り除く、なぜならばハードウェア化するとDMAでのデータ転送となるためキャッシュに読み込んでおく必要はないからだ。
下の図にダミーで入れたラプラシアンフィルタ処理を示す。

これでビルドして、SDカードにコピーしてZYBOで試した結果を下に示す。

HW(今のところソフトウェアです)は、58.4 ms 程度になった。前回は、61.4 ms だったので、3 ms 程度改善した。但しまだ 10 ms 程度の差がある。これは何故か?よくわからない。
考えられるとしたら、ラインバッファをスタックに取るより、ヒープに取ったほうが速いのか?
- 2015年08月06日 03:49 |
- SDSoC
-
| トラックバック:0
-
| コメント:0