FC2カウンター FPGAの部屋 2017年09月06日

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

FPGAの部屋

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

Vivado HLS で実装した畳み込みニューラルネットワークの指示子による性能差2

Vivado HLS で実装した畳み込みニューラルネットワークの指示子による性能差”の続き。

前回は、指示子なしの場合の性能とリソース使用量と目いっぱい指示子を入れたときの差を検証した。今回は更に性能が向上したのでご紹介する。

本当は、1クロックで1出力できるのが良いのだが、(何に使うの?というご指摘はもっともだと思うが、それは置いておいて)やってみよう。
conv_out の指示子のARRAY_PARTITION complete dim=1 を dim=3 に変更してみた。dim はどの次元をパーティションするかを支持するオプションで 1 だと 1 次元目、3 だと 3 次元目となる。0 だとすべての次元をバラバラにするのだが、これをしているとコンパイルに時間がかかりすぎる。
wlt_cnn_135_170906.png

これで C コードの合成を行った。結果を示す。
wlt_cnn_136_170906.png

白線追従走行用畳み込みニューラルネットワークのチューニング”では、Latency が 26924クロックだったが、今回は 20065 クロックになっている。Loop を見ると、CONV1_CONV2_CONV3 の Initiation achieved が 14 クロックから 3 クロックに改善されている。
リソース使用量はBRAM_18K が 4 個から 2 個に減った。DSP48E も 27 個から 24 個に減少している。FF は 9909 個から 10981 個に増えている。LUT も 15033 個から 15748 個に増えている。下に”白線追従走行用畳み込みニューラルネットワークのチューニング”の時のC コードの合成結果を貼っておく。
wlt_cnn_129_170904.png

次に、Export RTL を行った。結果を示す。
wlt_cnn_137_170906.png

遅延が 11.385 ns でやはり 100 MHz では動作しないようだ。これは約 87 MHz に相当する。
DSP が 4 個に減ってしまっている。これは大丈夫なのだろうか?
  1. 2017年09月06日 03:59 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0