FC2カウンター FPGAの部屋 AXI4-Stream インターフェースの畳み込みニューラルネットワーク5(モードの変更)
FC2ブログ

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

FPGAの部屋

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

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

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

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

前回は、AXI4-Stream インターフェースの畳み込みニューラルネットワークのビット幅を変更したときの変化を確認した。今回は、量子化モード、オーバーフローモードを変更した場合の精度とリソース使用量の違いを見ていこう。

Linux で all_layers3 プロジェクトを作成した。all_layers2 の全ファイルをコピーして、すべての量子化モードとオーバーフローモードをAP_TRN, AP_WARP から AP_TRN_ZERO, AP_SAT に変更した。
all_layers_29_180318.png


最初に、#include

"curve_data_0_100.h"

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

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

hw_err_cnt = 12 sw_err_cnt = 20

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

hw_err_cnt = 5 sw_err_cnt = 20


#include "curve_data_2500_2600.h"

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

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

hw_err_cnt = 29 sw_err_cnt = 11

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

hw_err_cnt = 16 sw_err_cnt = 11


#include "curve_data_5000_5100.h"

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

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

hw_err_cnt = 34 sw_err_cnt = 15

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

hw_err_cnt = 44 sw_err_cnt = 15



ハードウェア化関数の推論の精度は (900 - (5 + 16 + 44)) / 900 ≒ 92.8 % だった。少し上がっている。
ソフトウェアでの推論の精度は、(900 - (20 + 11 + 15)) / 900 ≒ 94.9 % だった。


C コードの合成を行った。結果を示す。
all_layers_33_180318.png
all_layers_34_180318.png

Latency は 9799 クロックで、前回は 9627 クロックだったので長くなっている。Interval も 8583 クロックで、前回は 8427 クロックだったので、やはり、長くなっている。
リソース使用量は、BRAM_18K は 14 個で変化なし、DSP48E は 7 個で 28 個から大幅に減少した。FF は 6171 個で、4259 個から増加。LUT は 16947 個で、7046 個の 2.41 倍程度になってしまった。

やはり、オーバーフローモードで飽和を選ぶとリソース使用量が多いようだ。(追記:リソース使用量が多いかどうかは分からないが、飽和演算のためか?演算器がDSPからLUT にアサインされるのではないだろうか?)LUT を消費しないためには、演算がオーバーフローしないようにビット幅を選んで、もし、飽和演算したかったら、最後の1つだけ飽和演算した方が良さそうだ。
  1. 2018年03月19日 04:10 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4111-e632406a
この記事にトラックバックする(FC2ブログユーザー)