ディープ・ラーニング−ハードウエア化への道

The road to hardware implementation of Deep Learning
CQ出版社でセミナ開催予定!セミナではVerilogも用意する予定です


●ディープ・ラーニングのハードウエア化に挑戦します

●FPGAなどに実装して高速化、低消費電力化を目指します

●PythonやCで書かれたソフトウエアのハード化(HDL化)の方法論

●不定期ですが随時更新する予定です。リンクがない章はしばらくお待ちください



DIGITALFILTER.COM





■ 第1部 全結合ニューラルネットワークのハードウエア化


第1章 ハードウエア化への前処理

1-01 ディープラーニングをFPGAに実装する理由

1-02 本企画のロードマップ

1-03 まずは普通にPythonで実行

1-04 入力、重み、バイアスなどすべて整数化してみる

1-05 PythonからEXCELに移植してみる



第2章 ともかくVHDLで記述してみる

2-01 VHDL化への流れ

2-02 回路図とタイム・チャート

2-03 VHDLを書く

2-04 論理シミュレーション

コラム21 VHDLファイルの自動生成(重み、画像、バイアスROM)



第3章 VHDLの並列化とパイプライン化

3-01 1層目の行列演算を並列化する

3-02 2層目の行列演算を並列化する

3-03 パイプライン化する



第4章 ZYBOというFPGAボードに実装する

4-01 全体のブロック図

4-02 ZYBOでLinuxを走らせる手順

4-03 ディープラーニング回路を含んだビットストリームの生成

4-04 ディープラーニング回路の動作確認

4-05 リアルタイム性と安定性の確認

コラム41 ROM/RAMに確実に割り当てられるVHDLコーディング

動画41 FPGAで推論が11usでできていることを確認


第5章 Linuxアプリから画像を100枚送り込む

5-01 Linuxで画像を送ったり表示したりする

5-02 PS部はデバイスドライバを介してレジスタを操作

5-03 PL部の回路を変更してビットストリーム再生成

5-04 推論結果をLinux上で画像とともに確認

コラム51 画像処理の定番ライブラリ、OpenCVのインストール


動画51 PS部からPL部に画像を100枚送って推論



■ 第2部 畳み込みニューラルネットワークのハードウエア化


第6章 畳み込み1層目のハードウエア化

6-01 畳み込みニューラルネットワークとは

6-02 パディングと畳み込み

6-03 まずは小数で畳み込みニューラルネットワーク

6-04 整数化してもほとんど正解率が落ちない!

6-05 im2col関数をどう実現するか

6-06 畳み込みの回路図とタイムチャート

6-07 VHDLを書いたり自動生成したり

6-08 シミュレーションがPythonやEXCELと合っているか確認


第7章 畳み込み2層目のハードウエア化

7-01 2層目は乗算器が256個も必要になる?

7-02 係数が4種類しかなくても正解率は98%以上!

7‐03 乗算器の代わりになる回路の設計

7‐04 畳み込み2層目を論理シミュレーション