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

Attempt of implementation of neural network model on FPGA