”
Accelerating SqueezeNet on FPGA”を読んでいると、コードが”
lankas/SqueezeNet”にあったので、Vivado HLS とVivado で実装してみよう。
今回は、”
lankas/SqueezeNet”のFPGA フォルダの内容をVivado HLS 2018.2 でプロジェクトを作って確かめてみよう。
最初に、”
lankas/SqueezeNet”をダウンロードして、FPGA フォルダの内容を使って、Vivado HLS 2018.2 の squeezenet プロジェクトを作成した。

最初にC シミュレーションを行った。成功だ。

次に C コードの合成を行った。結果を示す。


Latency は min 38 クロックで、max は 1620,117,190,84 クロックで、100 MHz で動作時には、1620秒つまり、27 分ということになる。
リソース使用量は、BRAM_18K で 80 % 、DSP48E で 71 % 、FF で 55 % 、LUT が 97 % 使用していて殆どリソースを使い切りそうだ。
C/RTL 協調シミュレーションを行った。

Latency は min が 2483 クロック、avg が 17619 クロック、 max が 30632 クロックだった。ただし最後にエラーが出てしまった。どうやらRTL シミュレーションは終了しているようなので、C テストベンチに戻す時の領域が足りないのかもしれない?
m_axi INTERFACE 指示子の depth オプションを 256 k まで増やしたがダメだった。マスタの場合はアロケートされたメモリのアドレスまでの領域を確保する必要がある場合があるので、それなのかもしれない?
でも、RTL シミュレーションは終了しているようなので、波形を見る分には問題ないと思う。
C/RTL 協調シミュレーション波形を見てみよう。


DMA Write 、DMA Read 共、活発に動作している。
最後に、Export RTL を行った。

CP achieved post-implementation が 11.528 ns で、100 MHz で動作しないようだ。これは、Vivado HLS で、Uncertainty を 5 ns まで順々に変えて合成しても解消できなかった。動作周波数を下げて動作させる必要があるようだ。
- 2018年07月08日 06:32 |
- DNN
-
| トラックバック:0
-
| コメント:0