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
FPGA入門 / Introduction of FPGA 2019
Search
Naoki Kishida
July 10, 2019
Technology
0
1.1k
FPGA入門 / Introduction of FPGA 2019
2019年7月10日に「夏のAI EdgeハードウェアMeetup in 福岡」で発表した資料です
Naoki Kishida
July 10, 2019
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
Java 22 Overview
kishida
1
220
Is Object-Oriented nessesary?
kishida
0
56
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
33
23k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
4.8k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
23
14k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
24
7.2k
Java 21の概要 / outline of Java 21
kishida
10
6.2k
エンジニアはLLMとどう付き合うか / How engineer get along with LLM
kishida
19
14k
Other Decks in Technology
See All in Technology
【OpsJAWS】踏み台サーバーって何がうれしいんだっけ?
hssh2_bin
10
3.6k
Oracle Database 23ai セキュリティ新機能
oracle4engineer
PRO
1
1.9k
GoのWebプロダクトに途中参加するときのキャッチアップ #layerxgo / How to catch up Go web product
budougumi0617
6
520
.NET 8 New Features with Code Examples
_mertmetin
0
200
いまからでも遅くない!仮想化基盤運用者に向けたコンテナ基盤移行で気にすべきポイント
moribito
0
110
データベース06: SQL (3/3) 副問い合わせ
trycycle
0
120
TCPポート使い切り事件
motooka
1
120
検索失敗率のモニタリングから改善まで - Search Engineering Tech Talk 2024 Spring
magicpieh28
4
150
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
39k
CSPが提供しない、フレッツ網をつかった閉域接続サービス&データ持ち込みにつかえるサービス 3選
armaniacs
1
930
シビックテックによる、社会と民主主義のアップデート
halsk
2
170
プロダクトオーナー向け生成AI支援サービスの仮説検証事例
yosuke_matsuura
PRO
1
200
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
86
45k
The Cost Of JavaScript in 2023
addyosmani
22
4k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
Clear Off the Table
cherdarchuk
86
310k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
The Pragmatic Product Professional
lauravandoore
26
5.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.4k
Optimising Largest Contentful Paint
csswizardry
13
2.5k
Building Applications with DynamoDB
mza
88
5.7k
Transcript
FPGA入門 夏のAI EdgeハードウェアMeetup in 福岡 2019年7月10日 きしだなおき
FPGAとは • Field Programmable Gate Array – Field 現場で –
Programmable プログラム可能な – Gate 論理素子が – Array いっぱい並んだやつ • 現場でプログラムできる論理回路
FPGAの仕組み
回路の合成 • 例:3入力でORとANDの組み合わせ
回路にはいろいろある • XORやNOTなどいろいろ組み合わせると大変 • 全部用意しようとすると使わない素子が多く なる • 回路に無駄
回路の入出力の組み合わせ 入力 出力 000 0 100 0 010 0 110
1 001 1 101 1 011 1 111 1
LUT(LookUp Table) • 入出力をあらかじめメモリにもっておけばい い • 製品としては4入力LUTや6入力LUT 入力 出力 000
0 100 0 010 0 110 1 001 1 101 1 011 1 111 1
論理ブロック • Logical Element(LE) Intel(Altera) • Logical Cell(LC) Xilinx
配線 • 論理ブロックが格子状に配置 • 周囲に配線 • アイランドスタイル
乗算回路とメモリ • 乗算やメモリを論理ブロックの組み合わせで 実現すると効率がわるい • 乗算回路やメモリ(SRAM)がのってる
FPGAは基本的にはメモリ回路 • LUTの基本はメモリ • 配線スイッチもメモリ • 配線データを書き込むだけ
FPGAとCPU • CPUとは – メモリから命令をよびだして、命令にしたがった 回路で処理を行う – ノイマン型アーキテクチャ
FPGAなら • 命令を読み込む必要なく、回路をやりたい処 理のとおり並べることができる • 非ノイマン型アーキテクチャ
FPGAの利点 • 命令を読み込む必要がない – 処理を行うまでのタイムラグが少ない • 低レイテンシ – 命令解析のための回路が不要 •
余分な回路がないので低消費電力 • 細かな並列化
FPGAでの開発 • 回路記述 – VHDLやVerilogHDLなど • 論理合成 – HDLを論理回路に変換 •
配置配線 – 論理回路を実際の回路に配置 • コンフィギュレーション – FPGAに回路情報を設定
ソフトウェアとの違い • 配線は記述順序は関係ない • 状態はレジスタで保持してクロックなど契機 に変更
HDLの問題点 • 書くのが面倒 • 書くのが面倒 • 論理合成に時間がかかる – 数時間かかったりする •
デバッグが面倒 • デバッグが面倒 • テストも面倒 • テストも面倒 • いろいろ面倒
IPを使う • Intellectual Property • ようするにライブラリ • だれかが作って検証してる
SoC • System on Chip • CPU回路のせちゃえ – ソフトコアCPU •
物理CPUのせちゃえ – FPGAの微細化 – チップに余裕 – 再構成可能回路が大量にあってもしかたない – そうだARMを乗せよう
高位合成 • CとかJavaとかで書いてHDLに変換 • アルゴリズムの検証がソフトウェアとして行 える – デバッガなどが使える – コンパイルが速い
• OpenCL – GPUやCPUでの並列にも対応
FPGAのつかいどころ • 画像・映像処理 – Mac ProにはFPGAが載っていて動画エンコーディ ングなどに使える • ネットワーク処理 •
「人工知能」 • IoT
人工知能 • 深層ニューラルネットワーク • たくさんの掛け算・足し算を要素ごとに行う
IoT • たくさんのセンサーから常時データが送られ る • ほとんどのデータは無駄 • 人工知能(深層ニューラルネットワーク)に学習 させて、必要なデータだけを送信 •
低消費電力
実際に試すには? • FPGA開発ボード – DE0-CVやDE0-nano(Intel) • WindowsかLinux • Macの場合はiverilogで信号の確認だけ・・・ –
VirtualBoxなどを使ってLinuxを動かせばOK
FPGAやりましょう