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が好きです。

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のコンパイル時のパラメータの決め方
  • 学習ツールや学習のシーケンス
    • モデルデータのバイナリフォーマット
    • 任意のデータで学習するには
    • 任意のモデルを構築して学習してみる

Indices and tables