Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LUT-Network ~その後の話~
Search
Ryuji Fuchikami
May 07, 2022
Technology
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LUT-Network ~その後の話~
コロナもあってどこにも発表できなかったのですが、資料だけ作ったので置いておきます。
Ryuji Fuchikami
May 07, 2022
More Decks by Ryuji Fuchikami
See All by Ryuji Fuchikami
Verilator + Rust + gRPC と Efinix の RISC-V でAIアクセラレータをAIで作ってる話 RTLを語る会(18) 2025/11/08
ryuz88
0
570
オリジナルの深層学習で HLS Challenge にチャレンジ
ryuz88
0
660
Zynq MP SoC で楽しむエッジコンピューティング ~RTLプログラミングのススメ~
ryuz88
0
2.3k
Rust で RTOSを考える
ryuz88
0
210
Verilatorやってみた! ~ OpenCVでテストベンチを書いてみた ~
ryuz88
0
220
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using LUT-based Signal Processing and its Time-domain Extension for Multi-bit Processing
ryuz88
0
240
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
ryuz88
0
83
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
ryuz88
0
1.7k
Other Decks in Technology
See All in Technology
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
320
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
120
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
水を運ぶ人としてのリーダーシップ
izumii19
2
170
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
180
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
170
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
160
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
270
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
260
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
460
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.1k
手塩にかけりゃいいってもんじゃない
ming_ayami
0
610
Featured
See All Featured
Building an army of robots
kneath
306
46k
How GitHub (no longer) Works
holman
316
150k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
430
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
860
GraphQLとの向き合い方2022年版
quramy
50
15k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
The Limits of Empathy - UXLibs8
cassininazir
1
360
How to train your dragon (web standard)
notwaldorf
97
6.7k
Transcript
LUT-Network ~その後の話~ 2022/05/07 Ryuji Fuchikami 渕上 竜司
これまでの経緯とか 私が LUT-Network を FPGAX#11 (2019/02/02)で発表させ ていただいて2年以上が経ちました。 その後、夏のAI EdgeハードウェアMeetup in
福岡 で発表したり SWEST21で発表していただいたり。 そして、@FIssiki様の多大なるご協力のもと、ICCE2019(Berlin)にて発 表できました(私日本で仕事してたので、当日何もしてませんが)。 BinaryBrain も Ver4.2.2 となり Star もいっぱい頂きました PyPI のダウンロード数もそこそこ有難いレベルに(感謝) 2
改めて LUT-Network の本質を 再考してみます 3
(ある工夫を加えることで) デジタル回路は微分可能 という話 4
微分可能なものは そのままDeep学習可能 5
微分可能な条件とは… 観測したときにアナログ値の確率で1が観測されるバイナリ値に変換すること 6 例) ⊿Σ変調や、D級アンプなどもこの一例である
Stochastic演算 7 1110111101 0100111010 0100111000 1の出現率0.8 1の出現率0.5 0.8×05 = 0.4
お互いに相関無く確率的にのみ1/0が現れるデータであれば、 ANDゲート1個で出現確率の乗算が出来る 1の出現率0.4 バイナリ変調済みデータ列はゲート1個で乗算できる可能性がある
この考えをFPGAのLUTに適用すると… 8
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 の発表資料などをご参照ください)
Stochastic-LUTモデルの内部のパラメータ 10 input[n-1:0] output LUTテーブルは入力数nに対してn次元を持ち、その中で連続体として振舞います。 上記は2入力LUTにXORを学習させた場合の模式図です。 内部の状態テーブルを参照する形式を取るために、パーセプトロンモデルと違っ て単独でテーブルをXOR形状に学習することも可能です 2入力LUTをXOR学習させた場合の例
入力データのStochastic化と計算機効率 肝はオーバーサンプリング (⊿Σ変調やD級アンプ、高速度カメラなど) 11 データがバイナリ量子化され周波数が上がる (空間軸情報の時間軸への拡散) データ:演算比が 1:1 に近づき LSI内のトランジスタの演算器割り当て比率が上がり
効率の高い計算機が作れる
計算機効率とデータ帯域の例 10M sample/s のデータに 160MHzの演算器を割り当てた場合、 演算器は16回再利用しないと効率が出ない 12 16個の係数を演算器にリロードするために、 メモリ/シーケンサ/DMAなどの回路リソースを消費 (計算機効率ダウン)
16倍にオーバーサンプリングして160M sample/s とすれば すべてが専用計算気にできるのでリソースの100%を演算器に割り当て可能 (FPGAの場合、係数をすべてLUTに織り込める)
いったんまとめると • Stochastic性を使うとデジタル回路は直接Deepで学習で きる • アナログ値にStochastic性を持たせるためにバイナリ変調 (オーバーサンプリング)を掛けると空間の情報を時間に拡散 できる ⇒ 情報の濃度を変えずにデータ:演算比率を変えられる
• データ:演算比率が 1:1 になると効率の高い計算機アー キテクチャが可能になる(係数が固定でき、係数入れ替えの ための回路が不要になる) • LUT-Net が嵌まるアプリではFPGAで大変効率のいい機 械学習が使える可能性がある 13
手書き数字(MNIST)認識の実験事例紹介 14 xc7z020clg400-1 こんな微小リソース量で 認識が1ミリ秒の遅延でできてます MNISTコア単体性能 CNN時318,877fps カメラも含めたシステム動作1000fps
認識精度に対する高い省リソース性 15 https://twitter.com/Ryuz88/status/1318874376062685184 「何に対して高いの?」と言われると困るのですが、 当時(ICCD2020)の同条件の発表より、早い段階(ICCE2019)で 小サイズ/高認識率を発表していたわけで…
BinaryBrain の話 • どうやって学習させるの? となったときに 6入力1出力のLUTモデルが 細かすぎて、cuBLAS とか使って速く書くのが困難。 • なので、PyTorch
とか Tensorflow でやるのは困難 • 仕方がないから自作しました → BinaryBrain • 現在 RNN 対応とかもしつつ Ver 4 を公開中 • https://github.com/ryuz/BinaryBrain 16
当時実験できていたこと 17 分類器(Classification) MNIST 手書き文字 認識率 99% CIFAR-10 一般物体10種 認識率60%
Auto Encoder Regression 特徴化とそこからの画像生成 重回帰分析のフィッティング
今少し手を付けていたもの 18 https://ryuz.hatenablog.com/entry/2021/08/12/120436 • RNNっぽいことに手を出して、行けそうな雰囲気は確認 • DMAとか書くのがめんどくさくて実装確認が進んでいない • 試しに HLS
向けに C言語出力させてみたがHLSのコンパイルが進まないので断念中
おわりに • FPGAでしか扱えないリアルタイム信号処理領域は依 然として存在する • FPGAは大規模化は依然続いており、ケースによって はルールベースのアルゴリズムではもてあます程度の規模 • LUT-Network は先に回路リソースを固定して、その範
囲でベストエフォートな認識性能を出すよう学習可能 • 既にFPGAを使っていて、SOTAな認識はいらないがルー ルベースでは到達できない微妙なレンジが狙いたいとき、 LUT-Net は結構よいソリューションでは?。 19
• 著者アクセス先 • 渕上 竜司 (Ryuji Fuchikami) • e-mail :
[email protected]
• 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