FC2カウンター FPGAの部屋 2018年07月06日

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

FPGAの部屋

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

Kerasを使用したMNIST CNNで手書き文字認識10(特徴マップが10個のMNISTのCNNを再学習2)

Kerasを使用したMNIST CNNで手書き文字認識9(特徴マップが10個のMNISTのCNNを再学習1)”の続き。

前回は、MNIST のCNN の特徴マップが10個の場合を再学習してVivado HLS で精度を確認した。今回は、Vivado HLSで精度を確認できたので、Vivado HLS 2018.2 で mnist_conv_nn10_hlss_ko_dma プロジェクトを作成して、IP 化を行い、PYNQ_MNIST_CNN10_182 フォルダのVivado 2018.2 プロジェクトを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。

まずは、Vivado HLS 2018.2 で mnist_conv_nn10_hlss_ko_dma プロジェクトを作成した。
各パラメータは前回の値と同じとした。
keras_minst_cnn_64_180702.png

C シミュレーションを行った。エラーになってしまった。どこが原因でエラーになったのか?は分からない?
keras_minst_cnn_81_180705.png

C コードの合成を行った。
keras_minst_cnn_65_180702.png

Latency の最大値は 2.05 ms 程度だった。約 487 fps になる。
リソース使用量はBRAM_18K が 116 個、DSP48E が 169 個、FF が 10273 個、LUT が 17881 個だった。

次に Export RTL を行った。なお、Vivado synthesis, place and route にチェックを入れてある。
keras_minst_cnn_80_180705.png

LUT は 6564 個、FF が 6128 個、DSP が 172 個、BRAM が 115 個、SRL が 111 個となった。

これでIP 化ができた。
次に、PYNQ_MNIST_CNN10_182 フォルダのVivado 2018.2 プロジェクトを作成というか、特徴マップが 3 個の時のPYNQ_MNIST_CNN3_182 フォルダをPYNQ_MNIST_CNN10_182 フォルダと名前を変えた。

PYNQ_MNIST_CNN10_182 フォルダの下の hls_all_layers フォルダに特徴マップが 3 個のCNN のIP が入っているので、それを今回の特徴マップが 10 個のIP と入れ替えた。
Vivado 2018.2 プロジェクトを示す。
keras_minst_cnn_66_180702.png

ブロックデザインを示す。
keras_minst_cnn_78_180705.png

Address Editor 画面を示す。
keras_minst_cnn_79_180705.png

論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。
keras_minst_cnn_68_180702.png

DSP の使用量が 78 % で多くなっている。
  1. 2018年07月06日 04:48 |
  2. PYNQ
  3. | トラックバック:0
  4. | コメント:0