study-BNN-PYNQ¶
BNN-PYNQについて調べた内容をまとめます。
主な読み手として、ハードウェアや高位合成に詳しくない、ソフトウェア側の方を意識しています。
BNN-PYNQは、ホビーFPGAボード”PYNQ(ピンク)”で動作するNeuralNetworkのシステムです
- DeepLearningのアルゴリズムをFPGAで動かすことを学ぶには良い素材です
- 論文が公開
- Pythonのアプリケーション層、Cのドライバ、高位合成用の実装が公開
- 学習コードの一部が公開
Note
BNN-PYNQのソースコードは5/2時点で最新のものを使いました。
https://github.com/Xilinx/BNN-PYNQ/tree/a86e0863418ce4161ed61b69ba89ec1481014362
Warning
現在、勉強を兼ねてこのページを作成している途中です。
内容の間違い、ご意見等はGitHubのissueやTwitter等で教えて頂けると助かります。
Author¶
- tkato
- 組み込みソフトエンジニアです。PythonやRubyが好きです。
- Twitter: https://twitter.com/_tkato_
- Blog: http://tkat0.hateblo.jp/
- GitHub: https://github.com/tkat0
Change log¶
- 2017/05/11
- ハードウェア概要、ハードウェア実装を追加
- ソフトウェアのシーケンスを追加
- Todo追加
- 2017/05/04
- ソフトウェア全体像を追加
- ファイル構成を追加
- 2017/05/03
- 新規作成(ブログ記事を元に作成)
- FAQを追加
Todo¶
今後書く予定の内容
Binarized Neural Networkの説明
LFC, CNVの構成、特長
- HW
- レジスタマップ
- MVTUのデータフロー詳細
- FCとConvolutionでMVTUをどう使っているのか
- MVTUのコンパイル時のパラメータの決め方
- 学習ツールや学習のシーケンス
- モデルデータのバイナリフォーマット
- 任意のデータで学習するには
- 任意のモデルを構築して学習してみる