FC2カウンター FPGAの部屋 2018年03月18日
FC2ブログ

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

FPGAの部屋

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

AXI4-Stream インターフェースの畳み込みニューラルネットワーク4(ビット幅の変更)

AXI4-Stream インターフェースの畳み込みニューラルネットワーク3(シミュレーション)”の続き。

(2018/04/22 : 修正、max_pooling.cpp のコードにバグがあったのでバグフィックスし、精度に影響を与えたため修正した)
(2018/04/26 : 修正、バグフィックス)

前回は、AXI4-Stream インターフェースの畳み込みニューラルネットワークの C シミュレーションと C/RTL 協調シミュレーションを行った。今回は、ビット幅を変更したときの精度とリソース使用量の違いを見ていこう。

最初に、Linux の Vivado HLS 2017.3 で合成していなかったので、合成し、その結果を示す。
all_layers_27_180318.png
all_layers_28_180318.png

Latency は 9627 クロック、Interval は 8427 クロックで、Windows 10 上のVivado HLS 2017.4 と同じだ。
リソース使用量は、BRAM_18K とDSP48E は同じで、FF とLUT が少し多い。

次に、”カーブ、直線用白線間走行用畳み込みニューラルネットワーク11(Vivado HLS でCNN を実装)”では、畳み込み層の演算を 13 ビット長、全結合層の演算を 16 ビット長で行い、出力も 16 ビット長なので、これに合わせてみることにした。なお、新たに all_layers2 プロジェクトを新規作成した。
all_layers_21_180318.png

最初に、

#include "curve_data_0_100.h"

だけを生かしてC シミュレーションを行った。
all_layers_22_180318.png

エラーの数は、ハードウェア化関数が 17 個、float のソフトウェアが 20 個だった。

hw_err_cnt = 17 sw_err_cnt = 20

エラーの数は、ハードウェア化関数が 16 個、float のソフトウェアが 20 個だった。

hw_err_cnt = 10 sw_err_cnt = 20


#include "curve_data_2500_2600.h"

を生かして、C シミュレーションを行った。
all_layers_23_180318.png

エラーの数は、ハードウェア化関数が 33 個、float のソフトウェアが 11 個だった。

hw_err_cnt = 33 sw_err_cnt = 11

エラーの数は、ハードウェア化関数が 15 個、float のソフトウェアが 11 個だった。

hw_err_cnt = 16 sw_err_cnt = 11


#include "curve_data_5000_5100.h"

を生かして、C シミュレーションを行った。
all_layers_24_180318.png

エラーの数は、ハードウェア化関数が 29 個、float のソフトウェアが 15 個だった。

hw_err_cnt = 29 sw_err_cnt = 15

エラーの数は、ハードウェア化関数が 37 個、float のソフトウェアが 15 個だった。

hw_err_cnt = 42 sw_err_cnt = 15


ハードウェア化関数の推論の精度は (900 - (10 + 16 + 42)) / 900 ≒ 92.4 % だった。前回と同じだ。前回よりも少し(0.6 %)下がった。
ソフトウェアでの推論の精度は、(900 - (20 + 11 + 15)) / 900 ≒ 94.9 % だった。


C コードの合成を行った。結果を示す。
all_layers_25_180318.png
all_layers_26_180318.png
Latency は 9627 クロックで、Interval は 8427 クロックだった。Interval も Latency も同じだ。
リソース使用量は、BRAM_18K とDSP48E は同じだが、FF とLUT は多少少なくなっている。

ビット幅を変更しても、顕著な変化は無い様だ。
  1. 2018年03月18日 06:23 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0