Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Attempt of implementation of neural network model on FPGA

263 views

Published on

Attempt of implementation of neural network model on FPGA

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Attempt of implementation of neural network model on FPGA

  1. 1. NN系の学習済みモデルを FPGAへ実装する ABC2017 Spring 28th-May Michihiro Imaoka 今岡 通博 https://www.facebook.com/imaoka.micihihiro imaoca@gmail.com,@imaoca http://www.itmedia.co.jp/author/208685/
  2. 2. 今岡 通博 imaoka michihiro @imaoca 今岡⼯学事務所 個⼈事業主代表 組込み系受託開発、FPGA応⽤製品、書籍等執筆、回路設計、 基板設計、⾮常勤講師 愛媛県松⼭市在住 ・元⽇本DEC(Digital Equipment Corp.)他 ・最近は原稿を書いていることが多い ・セキュリティ・キャンプの講師とか ・ハードウエアスタートアップ⽀援 ・Microsoft MVP(Windows Development) ・FPGAスタートアップ主宰 ・Androidの会コミュニティ運営委員
  3. 3. 背景 • AI FPGA神 Intel入 • 型 限界 • NN 実行 並列化 余地 • 低消費電力/高速化 • 学習済 化 • AI 化 家電
  4. 4. 各社 動向 • Microsoft : Catapult • Amazon : AWS F1 • Google : TPU • IBM : Power-PC + GPU
  5. 5. 概要 5X5の⼿書き⽂字を認識する学習済みモデルの FPGA実装を試みました。もともとPythonで書 かれたサンプルを参考にしています。先ずは PythonからCに書き換えて、Cソースコード上 でFPGAに実装しやすいよう最適化します。 並列化箇所を⾒極め推論エンジンをハードウエ ア記述⾔語のひとつVerilog-HDLへ移植します。 学習はCのコードで⾏い、学習済みモデルを Verilog-HDLで吐き出しFPGAに実装します。
  6. 6. 環境 • ubutu Sserver(Azure Iass ) • Python V2.7.1 with pandas • gcc • Quartus II 13.0sp1 Web Edition • Verilog-HDL • Intel(Altera) Cyclone IV
  7. 7. 手順 ■5X5の⼿書き⽂字を認識する学習済みモデルを⽤意。  もともとPythonで書かれたサンプルを参考にしました。 「Neural Networkを平易に解説してみる」 http://enakai00.hatenablog.com/entry/20150108/1420719651 ■Cソースコード上でFPGAに実装しやすいよう最適化します。  ・1,-1を1,0に変換  ・量⼦化調整(32/64bit整数は必要ない)  ・乗算を省きます(乗算はハードウエアには負担) ■並列化箇所を⾒極め推論エンジンをVerilog-HDLへ移植 学習はCのコードで⾏い、学習済みモデルをVerilog-HDLで 吐き出します
  8. 8. ホップフィールド・ネットワーク (英: Hopfield network) は、ニューラルネットワークの⼀モデルで ある。アメリカ合衆国の物理学者であるジョン・ホッ プフィールド (J.J. Hopfield) が提唱した[1]。ユニッ ト(ニューロン)間に対称的な相互作⽤がある⾮同期 型ネットワークであり、⾃然な操作によってネット ワークのエネルギーが極⼩値をとる。元はスピンの安 定条件をもとめるモデルとして発想されたものであっ たが、ネットワークによる連想記憶のモデルとして歓 迎され、ニューラルネットブームの⽕付け役の⼀つと なり、また後のボルツマンマシンの元ともなった。こ れは統計的な変動をもちいて、エネルギーが極⼩値で はなく最⼩値をとることを⽬指すモデルである。 出典 https://ja.wikipedia.org/wiki/
  9. 9. 構成 学習 gcc 学習済 推論 Verilog-HDL Quotus II FPGA 教師
  10. 10. imaoca@ubuntServer:~/neural$ ./a.out learing #### # # # # # # ### ##### # # # # ### #### # # # #### # # ## ## # # # # # # # example ### # # # ## # ### recognition #### # # # # # # ### imaoca@ubuntServer:~/neural$
  11. 11. Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition Family Cyclone IV E Device EP4CE6E22C8
  12. 12. ### # # # ## # ### 0111000011100101001001110 #### # # # # # # ### 0111010010100101001001111 0 1 2 34 5 6 7
  13. 13. 推論 実行時間
  14. 14. • 5X5 文字認識 FPGA 実装 • 推論 HDL 実装 • 学習済 HDL 自動生成 • 実測 10nS • Cyclone iV 24% 消費 • 25 要 実装 7% 6502 規模 同等
  15. 15. =告知 願 日本Android 会 協賛企業絶賛募集中 明日 5月29日 正午募集締切 FPGA CPU 作 FPGA
  16. 16. 【ご清聴ありがとうございました】 NN系の学習済みモデルをFPGAへ実装する 28th-May-2017 Michihiro Imaoka 今岡 通博 https://www.facebook.com/imaoka.micihihiro imaoca@gmail.com,@imaoca http://www.itmedia.co.jp/author/208685/

×