SlideShare a Scribd company logo
NN系の学習済みモデルを
FPGAへ実装してみた
機械学習の勉強会(仮)
6th-Apr-2017
Michihiro Imaoka
今岡 通博
https://www.facebook.com/imaoka.micihihiro
imaoca@gmail.com,@imaoca
http://www.itmedia.co.jp/author/208685/
今岡 通博
imaoka michihiro
@imaoca
今岡⼯学事務所 個⼈事業主代表
⼗数年前は現役のプログラマーでした。当時は呼吸をする
ようにコードを書いていました。FPGAのコーディングも
SMDの半⽥付けも得意でした。最近は⽼眼も進み原稿書き
へ転進を図っている最中です。物書きで凌げるか暗中模索
の毎⽇です。
愛媛県松⼭市在住
・最近は原稿を書いていることが多い
・セキュリティ・キャンプの講師とか
・ハードウエアスタートアップ⽀援
背景
• AI FPGA神 Intel
• 型 限界
• 推論 並列化 高速化 余地
• 低消費電力/高速化
• 学習済 化
• AI 化 組込 家電
概要
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$
NN系学習済みモデルをFPGAに実装してみた
Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition
Family Cyclone IV E
Device EP4CE6E22C8
NN系学習済みモデルをFPGAに実装してみた
###
# #
# #
##
###
0111000011100101001001110
####
# #
# #
# #
###
0111010010100101001001111
0
1
2
34
5 6
7
推論 実行時間
NN系学習済みモデルをFPGAに実装してみた
NN系学習済みモデルをFPGAに実装してみた
• 5X5の⽂字認識をFPGAで実装
• 推論エンジンを実装
–現在はマニュアル)
• 学習済みモデルのHDLは⾃動⽣成
–Neuro Chip Compiler
• ロジックアナライザーで計算スピードを
実測 10nS
• Cyclone IVの24%のリソースを消費
• 25クロックを要する実装では7%
–これは6502と同じHW規模
告知
• NN系機械学習 情報交換
• FPGA 主宰
– https://fpgastartup.connpass.com/event/
• TensorFlow 学習済 実装(todo)
• FPGA 実装 的 探
• 化 可能性 探
頂
• 4月18日 在京
【ご清聴ありがとうございました】
NN系の学習済みモデルをFPGAへ実装してみた
1st-Apr-2017
Michihiro Imaoka
今岡 通博
https://www.facebook.com/imaoka.micihihiro
imaoca@gmail.com,@imaoca
http://www.itmedia.co.jp/author/208685/

More Related Content

PDF
Attempt of implementation of neural network model on FPGA
PDF
Lチカからはじめるfpga入門
PDF
第9回セキュリティみかんlt
PPT
BigうんちDATA インタラクティブトイレの考察と実践
PDF
Cybozu lt2017
PDF
Security camp cpu
PDF
デザイナーにもできる再構築の高速化/負荷分散
PDF
Androidでへっぽこ思考戦車を作ってみた
Attempt of implementation of neural network model on FPGA
Lチカからはじめるfpga入門
第9回セキュリティみかんlt
BigうんちDATA インタラクティブトイレの考察と実践
Cybozu lt2017
Security camp cpu
デザイナーにもできる再構築の高速化/負荷分散
Androidでへっぽこ思考戦車を作ってみた

What's hot (18)

PDF
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
PPTX
ヤマムギVol.1 Opening
PDF
Wio LTEと連携できるGroveを普段の実体験から
PDF
生粋のRubyistがJavaを好きになった理由
PDF
初心者がWio LTEで作った話~IN 名古屋ハッカソン 2017~
PDF
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
PDF
JavaScript使いならきっととっつきやすいNode-REDについて
PDF
Offloading BPF Implementation to FPGA-NIC したいねって話
PDF
Baa sでお気楽アプリ開発
PDF
ドメイン駆動設計入門
PDF
CONBU API の開発
PDF
この中に1人、素人がいる!
PDF
フロントエンドエンジニアがフルスタックエンジニアもどきになる話
PDF
業務系エンジニアがIoTに触れて感じた事
PPTX
ドメイン駆動設計と サーバサイドと私
PDF
SI屋的CDP
PPTX
Wio LTEをJavaScriptで開発
PDF
最近挑戦していること at MF Geeks Night 2015.03.19
サーバサイドエンジニアから見た MT構築のレガシーなノウハウ (入門編)
ヤマムギVol.1 Opening
Wio LTEと連携できるGroveを普段の実体験から
生粋のRubyistがJavaを好きになった理由
初心者がWio LTEで作った話~IN 名古屋ハッカソン 2017~
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
JavaScript使いならきっととっつきやすいNode-REDについて
Offloading BPF Implementation to FPGA-NIC したいねって話
Baa sでお気楽アプリ開発
ドメイン駆動設計入門
CONBU API の開発
この中に1人、素人がいる!
フロントエンドエンジニアがフルスタックエンジニアもどきになる話
業務系エンジニアがIoTに触れて感じた事
ドメイン駆動設計と サーバサイドと私
SI屋的CDP
Wio LTEをJavaScriptで開発
最近挑戦していること at MF Geeks Night 2015.03.19
Ad

Similar to NN系学習済みモデルをFPGAに実装してみた (16)

PPTX
PYNQで○○してみた!
PDF
Raspberrypitraining20171027
PPTX
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
PPTX
Fpgax20170924
PDF
FPGAの部屋、slide share、xilinxツールのご紹介
PPTX
Fpga programming introduction
PPTX
Kmc例会講座
PDF
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
PPTX
総合技術特別講義講演資料2017
PDF
Fuji sakuraでmbedを!
PDF
PPTX
Rakuten20181027
PDF
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
PDF
2205ACRi_jinguji.pdf
PDF
PyKon JP 2014
PPTX
はじめてのグラモニ
PYNQで○○してみた!
Raspberrypitraining20171027
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
Fpgax20170924
FPGAの部屋、slide share、xilinxツールのご紹介
Fpga programming introduction
Kmc例会講座
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
総合技術特別講義講演資料2017
Fuji sakuraでmbedを!
Rakuten20181027
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
2205ACRi_jinguji.pdf
PyKon JP 2014
はじめてのグラモニ
Ad

More from Imaoka Micihihiro (18)

PDF
Parallel Empire and The Serial Empire
PDF
パラレル帝国とシリアル皇国(the Parallel Empire and the Serial Empire.)
PDF
la notificacion de la temperature remote
PDF
遠隔地の温度をスマホで表示
PDF
Observation of the temperature of remote
PDF
Cómo controlar el LED remoto
PDF
超お手軽!スマホでLEDを遠隔操作
PDF
How to control remote LED at the easiest and cheapest with Azure
PDF
1st fpga startup seminar keynote
PPT
How to make a cutting wiring board by desktop CNC
PDF
Introduction of FPGA
PDF
Sakura20141017a
PDF
Raspberry Pi Rover + Scratch = IMAOCACH
PDF
Physical computing Scratch 2.0 & Android
PDF
wireless japan 2014 (imaoca)
PDF
PDF
Imaocande LT
Parallel Empire and The Serial Empire
パラレル帝国とシリアル皇国(the Parallel Empire and the Serial Empire.)
la notificacion de la temperature remote
遠隔地の温度をスマホで表示
Observation of the temperature of remote
Cómo controlar el LED remoto
超お手軽!スマホでLEDを遠隔操作
How to control remote LED at the easiest and cheapest with Azure
1st fpga startup seminar keynote
How to make a cutting wiring board by desktop CNC
Introduction of FPGA
Sakura20141017a
Raspberry Pi Rover + Scratch = IMAOCACH
Physical computing Scratch 2.0 & Android
wireless japan 2014 (imaoca)
Imaocande LT

NN系学習済みモデルをFPGAに実装してみた