Submit Search
Upload
LUT-Network その後の話(2022/05/07)
•
Download as PPTX, PDF
•
0 likes
•
426 views
R
ryuz88
Follow
LUT-Network その後の話
Read less
Read more
Data & Analytics
Report
Share
Report
Share
1 of 20
Download now
Recommended
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
ryuz88
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
NVIDIA Japan
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
Marp Tutorial
Marp Tutorial
Rui Watanabe
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
Recommended
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
ryuz88
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
NVIDIA Japan
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
Marp Tutorial
Marp Tutorial
Rui Watanabe
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
C++による数値解析の並列化手法
C++による数値解析の並列化手法
dc1394
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
Yosuke Shinya
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
Constexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
自動定理証明の紹介
自動定理証明の紹介
Masahiro Sakai
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015
jumpwire.io
NW-DIY で開拓したい社会
NW-DIY で開拓したい社会
啓章 加嶋
More Related Content
What's hot
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
C++による数値解析の並列化手法
C++による数値解析の並列化手法
dc1394
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
Yosuke Shinya
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
Constexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
自動定理証明の紹介
自動定理証明の紹介
Masahiro Sakai
What's hot
(20)
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
C++による数値解析の並列化手法
C++による数値解析の並列化手法
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Singularityで分散深層学習
Singularityで分散深層学習
レシピの作り方入門
レシピの作り方入門
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
Optimizer入門&最新動向
Optimizer入門&最新動向
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Constexpr 中3女子テクニック
Constexpr 中3女子テクニック
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
自動定理証明の紹介
自動定理証明の紹介
Similar to LUT-Network その後の話(2022/05/07)
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015
jumpwire.io
NW-DIY で開拓したい社会
NW-DIY で開拓したい社会
啓章 加嶋
DockerでJupyter使おうぜ
DockerでJupyter使おうぜ
Satoshi Yazawa
IoTの概要・IoT界隈の動向
IoTの概要・IoT界隈の動向
NISHIMOTO Keisuke
IoTLT-Vol93-Wiki-IoT-20221117.pptx
IoTLT-Vol93-Wiki-IoT-20221117.pptx
Takashi Yamanoue
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM,INC
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
Kunihiko HAYASHI
可視光を利用したIoTエッジデバイスとの通信
可視光を利用したIoTエッジデバイスとの通信
Bizan Nishimura
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
Shinya Takamaeda-Y
Janog60 yosou
Janog60 yosou
Ken SASAKI
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
Kiyoshi Ogawa
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
Kenta IDA
Android & Nui & Physical Computing
Android & Nui & Physical Computing
Takahiro KUREBAYASHI
旅するパケットの見える化
旅するパケットの見える化
Naoto MATSUMOTO
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Mitsuo Yamazaki
Azure Remote Renderingを試す
Azure Remote Renderingを試す
Takahiro Miyaura
IoT Getting Started with AWS and Raspberry Pi
IoT Getting Started with AWS and Raspberry Pi
Yukihito Kataoka
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Atomu Hidaka
Jupyterで運用やってみた
Jupyterで運用やってみた
Satoshi Yazawa
Similar to LUT-Network その後の話(2022/05/07)
(20)
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015
NW-DIY で開拓したい社会
NW-DIY で開拓したい社会
DockerでJupyter使おうぜ
DockerでJupyter使おうぜ
IoTの概要・IoT界隈の動向
IoTの概要・IoT界隈の動向
IoTLT-Vol93-Wiki-IoT-20221117.pptx
IoTLT-Vol93-Wiki-IoT-20221117.pptx
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
可視光を利用したIoTエッジデバイスとの通信
可視光を利用したIoTエッジデバイスとの通信
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
Janog60 yosou
Janog60 yosou
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
Android & Nui & Physical Computing
Android & Nui & Physical Computing
旅するパケットの見える化
旅するパケットの見える化
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Azure Remote Renderingを試す
Azure Remote Renderingを試す
IoT Getting Started with AWS and Raspberry Pi
IoT Getting Started with AWS and Raspberry Pi
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Jupyterで運用やってみた
Jupyterで運用やってみた
More from ryuz88
Rust で RTOS を考える
Rust で RTOS を考える
ryuz88
FPGA勉強会資料 20210516
FPGA勉強会資料 20210516
ryuz88
Deep Learning development flow
Deep Learning development flow
ryuz88
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
ryuz88
LUT-Network Revision2 -English version-
LUT-Network Revision2 -English version-
ryuz88
LUT-Network Revision2
LUT-Network Revision2
ryuz88
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
ryuz88
More from ryuz88
(7)
Rust で RTOS を考える
Rust で RTOS を考える
FPGA勉強会資料 20210516
FPGA勉強会資料 20210516
Deep Learning development flow
Deep Learning development flow
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
LUT-Network Revision2 -English version-
LUT-Network Revision2 -English version-
LUT-Network Revision2
LUT-Network Revision2
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network その後の話(2022/05/07)
1.
LUT-Network ~その後の話~ 2022/05/07 Ryuji Fuchikami 渕上 竜司
2.
これまでの経緯とか 私が LUT-Network を
FPGAX#11 (2019/02/02)で発表させ ていただいて2年以上が経ちました。 その後、夏のAI EdgeハードウェアMeetup in 福岡 で発表したり SWEST21で発表していただいたり。 そして、@FIssiki様の多大なるご協力のもと、ICCE2019(Berlin)に て発表できました(私日本で仕事してたので、当日何もしてませんが)。 BinaryBrain も Ver4.2.2 となり Star もいっぱい頂きました PyPI のダウンロード数もそこそこ有難いレベルに(感謝) 2
3.
改めて LUT-Network の本質を 再考してみます 3
4.
(ある工夫を加えることで) デジタル回路は微分可能 という話 4
5.
微分可能なものは そのままDeep学習可能 5
6.
微分可能な条件とは… 観測したときにアナログ値の確率で1が観測されるバイナリ値に変換すること 6 例) ⊿Σ変調や、D級アンプなどもこの一例である
7.
Stochastic演算 7 1110111101 0100111010 0100111000 1の出現率0.8 1の出現率0.5 0.8×05 = 0.4 お互いに相関無く確率的にのみ1/0が現れるデータであれば、 ANDゲート1個で出現確率の乗算が出来る 1の出現率0.4 バイナリ変調済みデータ列はゲート1個で乗算できる可能性がある
8.
この考えをFPGAのLUTに適用すると… 8
9.
Stochastic-LUT モデル 9 - * - x0 x1 * W0 binarize * * W1 * * W2 * * W3 1 1 + y 2入力LUTの例
x0-x1 を入力する確率変数. W0-W3 をテーブル値とする W0 が参照される確率 : (1 - x1) * (1 - x0) W1 が参照される確率 : (1 - x1) * x0 W2 が参照される確率 : x1 * (1 - x0) W3 が参照される確率 : x1 * x0 y = W0 * (1 - x1) * (1 - x0) + W1 * (1 - x1) * x0 + W2 * x1 * (1 - x0) + W3 * x1 * x0 値をすべて観測時に0と1のどちらかの値に決まる確率変数として確率値をFP32で扱います。 この計算グラフは微分可能であるため、誤差逆伝播が可能です。 6入力LUTのグラフは図示すると巨大になるので作成していませんが、同様に作成可能です。 確率的LUTモデルを用いることで、一度に非常に多くのバイナリ値を計算したのと同じ効果が得られるため、 micro-MLPよりも高速/高精度な結果が得られます。W値はそのままLUT化できます。 (詳しくは ICCE2019 の発表資料などをご参照ください)
10.
Stochastic-LUTモデルの内部のパラメータ 10 input[n-1:0] output LUTテーブルは入力数nに対してn次元を持ち、その中で連続体として振舞います。 上記は2入力LUTにXORを学習させた場合の模式図です。 内部の状態テーブルを参照する形式を取るために、パーセプトロンモデルと違っ て単独でテーブルをXOR形状に学習することも可能です 2入力LUTをXOR学習させた場合の例
11.
入力データのStochastic化と計算機効率 肝はオーバーサンプリング (⊿Σ変調やD級アンプ、高速度カメラなど) 11 データがバイナリ量子化され周波数が上がる (空間軸情報の時間軸への拡散) データ:演算比が 1:1 に近づき LSI内のトランジスタの演算器割り当て比率が上がり 効率の高い計算機が作れる
12.
計算機効率とデータ帯域の例 10M sample/s のデータに
160MHzの演算器を割り当てた場合、 演算器は16回再利用しないと効率が出ない 12 16個の係数を演算器にリロードするために、 メモリ/シーケンサ/DMAなどの回路リソースを消費 (計算機効率ダウン) 16倍にオーバーサンプリングして160M sample/s とすれば すべてが専用計算気にできるのでリソースの100%を演算器に割り当て可能 (FPGAの場合、係数をすべてLUTに織り込める)
13.
いったんまとめると • Stochastic性を使うとデジタル回路は直接Deepで学習で きる • アナログ値にStochastic性を持たせるためにバイナリ変調 (オーバーサンプリング)を掛けると空間の情報を時間に拡散 できる ⇒
情報の濃度を変えずにデータ:演算比率を変えられる • データ:演算比率が 1:1 になると効率の高い計算機アー キテクチャが可能になる(係数が固定でき、係数入れ替えの ための回路が不要になる) • LUT-Net が嵌まるアプリではFPGAで大変効率のいい機 械学習が使える可能性がある 13
14.
手書き数字(MNIST)認識の実験事例紹介 14 xc7z020clg400-1 こんな微小リソース量で 認識が1ミリ秒の遅延でできてます MNISTコア単体性能 CNN時318,877fps カメラも含めたシステム動作1000fps
15.
認識精度に対する高い省リソース性 15 https://twitter.com/Ryuz88/status/1318874376062685184 「何に対して高いの?」と言われると困るのですが、 当時(ICCD2020)の同条件の発表より、早い段階(ICCE2019)で 小サイズ/高認識率を発表していたわけで…
16.
BinaryBrain の話 • どうやって学習させるの?
となったときに 6入力1出力のLUTモデルが 細かすぎて、cuBLAS とか使って速く書くのが困難。 • なので、PyTorch とか Tensorflow でやるのは困難 • 仕方がないから自作しました → BinaryBrain • 現在 RNN 対応とかもしつつ Ver 4 を公開中 • https://github.com/ryuz/BinaryBrain 16
17.
当時実験できていたこと 17 分類器(Classification) MNIST 手書き文字 認識率 99% CIFAR-10 一般物体10種 認識率60% Auto Encoder
Regression 特徴化とそこからの画像生成 重回帰分析のフィッティング
18.
今少し手を付けていたもの 18 https://ryuz.hatenablog.com/entry/2021/08/12/120436 • RNNっぽいことに手を出して、行けそうな雰囲気は確認 • DMAとか書くのがめんどくさくて実装確認が進んでいない •
試しに HLS 向けに C言語出力させてみたがHLSのコンパイルが進まないので断念中
19.
おわりに • FPGAでしか扱えないリアルタイム信号処理領域は依 然として存在する • FPGAは大規模化は依然続いており、ケースによって はルールベースのアルゴリズムではもてあます程度の規模 •
LUT-Network は先に回路リソースを固定して、その範 囲でベストエフォートな認識性能を出すよう学習可能 • 既にFPGAを使っていて、SOTAな認識はいらないがルー ルベースでは到達できない微妙なレンジが狙いたいとき、 LUT-Net は結構よいソリューションでは?。 19
20.
• 著者アクセス先 • 渕上
竜司 (Ryuji Fuchikami) • e-mail : ryuji.fuchikami@nifty.com • Web-Site : http://ryuz.my.coocan.jp/ • Blog. : http://ryuz.txt-nifty.com/ • GitHub : https://github.com/ryuz/ • Twitter : https://twitter.com/Ryuz88 • Facebook : https://www.facebook.com/ryuji.fuchikami • YouTube : https://www.youtube.com/user/nekoneko1024 20
Download now