finn

finn をやってみる1(インストール)
Xilinx 社の GitHub の finn をやってみることにした。finn は Xilinx Research Labs の実験的なフレームワークで、FPGA を使用した DNN の推論を研究している。特に、各ネットワーク用にカスタマイズされたデータフロースタイルのアーキテクチャの生成に重点を置いて、量子化ニューラルネットワークを対象とし ているようだ。
finn は Docker を使用してインストールを行う。Docker のインストールが必要だ。”Ubuntu 18.04 に Docker CE をインストールする”を参照のこと。なお FPGA の部屋のDocker カテゴリの Web サイトも参照されたい。
finn をやってみる2(Jupyter Notebook)
前回は、Docker を使って finn のインストールを行い、Jupyter Notebook を起動した。今回は、Jupyter Notebook でサンプルをやってみよう。
finn をやってみる3(Jupyter Notebook2)
前回は、Jupyter Notebook でサンプルをやってみたが、Round がバージョン 10 には存在しないということでエラーになってしまった。今回は、Round を削除して basics の 0_how_to_work_with_onnx.ipynb をやってみよう。
finn をやってみる4(1_brevitas_network_import.ipynb その1)
前回は、Round を削除して basics の 0_how_to_work_with_onnx.ipynb をやってみたところ、すべて実行することができた。今回は、次に basics の 1_brevitas_network_import.ipynb をやってみよう。
finn をやってみる5(1_brevitas_network_import.ipynb その2)
前回は、 basics の 1_brevitas_network_import.ipynb の 2. Call Brevitas FINN-ONNX export and visualize with Netron までをやってみた。今回は、 basics の 1_brevitas_network_import.ipynb の 3. Import into FINN and call cleanup transformations をやってみよう。
finn をやってみる6(tfc_end2end_example.ipynb その1)
前回は、 basics の 1_brevitas_network_import.ipynb の 3. Import into FINN and call cleanup transformations をやってみた。今回は、end2end_example の tfc_end2end_example.ipynb をやってみよう。これは全結合ネットワークを PYNQ ボードのビットファイルと制御用 Python コードに変換する手順を示した Jupyter Notebook のようだ。
finn をやってみる7(tfc_end2end_example.ipynb その2)
前回は、end2end_example の tfc_end2end_example.ipynb をやってみようということで、Overview と 1. Brevitas export をやってみた。今回は、end2end_example の tfc_end2end_example.ipynb の 2. Network preparation をやってみよう。
finn をやってみる8(tfc_end2end_example.ipynb その3)
前回は、end2end_example の tfc_end2end_example.ipynb の 2. Network preparation の FINN-style Dataflow Architectures, Tidy-up transformations, Streamlining をやってみた。今回は、end2end_example の tfc_end2end_example.ipynb の Conversion to HLS layers, Creating a Dataflow Partition, Folding and Datawidth Converter, FIFO and TLastMarker Insertion をやってみた。
finn をやってみる9(tfc_end2end_example.ipynb その4)
前回は、end2end_example の tfc_end2end_example.ipynb の Conversion to HLS layers, Creating a Dataflow Partition, Folding and Datawidth Converter, FIFO and TLastMarker Insertion をやってみた。今回は、end2end_example の tfc_end2end_example.ipynb の 3. Vivado HLS and IPI からやってみよう。
finn をやってみる10(tfc_end2end_example.ipynb その5)
前回は、 end2end_example の tfc_end2end_example.ipynb の 3. Vivado HLS and IPI の Synthesizing HLS to IP Blocks まで実行して、docker でコンテナに入り、Vivado HLS プロジェクトを覗き始めた。今回は、その続きで、Vivado HLS のプロジェクトを見ていこう。
finn をやってみる11(tfc_end2end_example.ipynb その6)
前回は、 end2end_example の tfc_end2end_example.ipynb の 3. Vivado HLS and IPI の Synthesizing HLS to IP Blocks まで実行して、docker でコンテナに入り、Vivado HLS プロジェクトをみた。今回は、続きの end2end_example の tfc_end2end_example.ipynb の 3. Vivado HLS and IPI の IP Stitching からやっていこう。
finn をやってみる12(tfc_end2end_example.ipynb その7)
前回は、end2end_example の tfc_end2end_example.ipynb 3. Vivado HLS and IPI の IP Stitching をやって、Vivado のプロジェクトを確認した。今回は、end2end_example の tfc_end2end_example.ipynb の 4. PYNQ hardware generation and deployment からやってみよう。
finn をやってみる13(tfc_end2end_example.ipynb その8)
前回は、end2end_example の tfc_end2end_example.ipynb の 4. PYNQ hardware generation and deployment の Inserting the IP into a PYNQ Overlay Shell で Vivado プロジェクトが生成されていなかった。トラブルシューティングをしたところ、Vivado の 2019.2 バージョンを使用していてはダメで、 2019.1 を使う必要があるということが分かった。今回は、Vivado 2019.1 を使用して、もう一度、end2end_example の tfc_end2end_example.ipynb をやり直してみようと思う。
finn をやってみる14(tfc_end2end_example.ipynb その9)
前回は、Vivado 2019.1 を使用して、もう一度、end2end_example の tfc_end2end_example.ipynb をやり直したところ、 4. PYNQ hardware generation and deployment の Inserting the IP into a PYNQ Overlay Shell で Vivado プロジェクトが生成された。今回は、 4. PYNQ hardware generation and deployment の Driver Generation からやってみよう。




inserted by FC2 system