ソフトウェア全体像¶
BNN-PYNQのソフトウェアの構成を図にしてみました。
- 青色の箱が、モデル毎に実装する必要があるモジュール
- ソースは、 bnn/src/network
- 緑色の箱は、FINN libraryと呼ばれており、モデルによらず共通
ソースは、 bnn/src/library
- hostは、上位からの呼び出しに対してSW/HWビルドの差異を吸収する
- ビルド時の定数マクロで、関数を切り替えている
- SWビルドのときは、高位合成対象のCの関数を直接呼ぶ
- HWビルドのときは、driverを介してアクセラレータを制御する
driverは、アクセラレータ用のメモリ管理やレジスタ制御を行う
hlsは、高位合成時にインクルードされる共通ライブラリ