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
160
Is Object-Oriented nessesary?
kishida
0
39
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
31
21k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
4.5k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
23
12k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
24
7.1k
Java 21の概要 / outline of Java 21
kishida
9
6.1k
エンジニアはLLMとどう付き合うか / How engineer get along with LLM
kishida
19
13k
Other Decks in Technology
See All in Technology
A (short) History of AI
harishpillay
0
100
ビジネスとエンジニアリングの接合点 そしてコード品質がそこに及ぼす影響 v1.1 / The Intersections of Business and Engineering, and The Impact of Code Quality There (v1.1)
mtx2s
11
2.4k
Databricks におけるデータエンジニアリング
databricksjapan
0
360
Four keys改善の取り組み事例紹介
sansantech
PRO
2
220
検証を通して見えてきたTiDBの性能特性
lycorptech_jp
PRO
3
1.3k
2024/4/26 コンピュータ歴史博物館解説告知
toshi_atsumi
0
180
OpenShiftはじめの一歩から継続的なチャレンジ
mame500
0
250
Algyan イベント振り返り
linyixian
0
170
[PlatformCon 24] Platform Orchestrators: The Missing Middle of Internal Developer Platforms?
danielbryantuk
0
160
株式会社EventHub・エンジニア採用資料
eventhub
0
1.9k
日本におけるデータエンジニアリングのこれまでとこれから
foursue
9
1.7k
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
0
370
Featured
See All Featured
Become a Pro
speakerdeck
PRO
9
4.5k
Gamification - CAS2011
davidbonilla
76
4.6k
4 Signs Your Business is Dying
shpigford
175
21k
Embracing the Ebb and Flow
colly
78
4.1k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
It's Worth the Effort
3n
180
27k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.3k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
A better future with KSS
kneath
230
16k
Raft: Consensus for Rubyists
vanstee
130
6.2k
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やりましょう