FC2カウンター FPGAの部屋 hls4mlをやってみた1
FC2ブログ

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

FPGAの部屋

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

hls4mlをやってみた1

hls4ml をやってみた。hls4ml はVivado HLS を使用して機械学習をハードウェア化するフレームワークだ。
なお、OS は Ubuntu 18.04 を使用している。

インストール前の環境のインストールは、Setup -> Dependencies を見れば分かるが、numpy,h5py, pyyaml, PyTorch, scikit-learn だ。だいたいインストールされていると思うので、ここは飛ばす。後で不具合が出たらインストールを確認することにする。

次に、Setup -> Quick Start をやってみよう。
まずは、リポジトリを git clone する。
git clone https://github.com/hls-fpga-machine-learning/hls4ml.git
hls4ml_1_190628.png

hls4ml ディレクトリの内容を示す。
hls4ml_2_190628.png

Quick Start に従ってやっていこう。
cd hls4ml/keras-to-hls/
2to3 -w keras-to-hls.py

hls4ml_3_190628.png

cd ../hls-writer/
2to3 -w hls_writer.py

hls4ml_4_190628.png

Vivado 2019.1 WebPACK なので、指定されたFPGA が無いため、hls4ml/keras-to-hls/keras-config.yml ファイルの XilinxPart を WebPACKでも使えるUltraScale+ (xcku5p-sfvb784-1-e) に変更した。
hls4ml_5_190628.png

cd ../keras-to-hls/
python keras-to-hls.py -c keras-config.yml

hls4ml_6_190628.png

my-hls-test ディレクトリが生成された。Viavdo HLS 2019.1 を設定して、build.tcl をVivado HLS 2019.1 で実行した。
cd my-hls-test/
ls
source /tools/Xilinx/Vivado/2019.1/settings64.sh
vivado_hls -f build_prj.tcl

hls4ml_7_190628.png

終了するまで、時間かかりました。
hls4ml_8_190629.png

Vivado HLS 2019.1 をGUI 付きで立ち上げ、my-hls-test/myproject_prj ディレクトリのVivado HLS プロジェクトをロードした。
vivado_hls &
hls4ml_9_190629.png

C コードの合成済みなので、レポートを見てみよう。
hls4ml_10_190629.png
hls4ml_11_190629.png

凄い。Latency が 15 クロックで、Interval が 1 だった。つまり、15 クロックで出力できて、次のクロックには次のデータ入れられるということね。。。それで 200 MHz 動作か。
でもWebPACK で使えるFPGA だと、DSP48E がオーバーフローしてしまっている。実装のリソースをDSP48E に集めているのかも?

Analysis を見てみよう。
hls4ml_12_190629.png

hls4ml_13_190629.png

softmax にクロック数がかかっている。
  1. 2019年06月29日 04:51 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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