Recommended
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PPTX
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
PPT
PDF
PDF
PDF
PDF
PDF
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PDF
PPTX
PDF
PDF
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
PDF
PDF
Synthesijer.Scala (PROSYM 2015)
PDF
PDF
PDF
PPTX
Odyssey MAX 10 FPGA入門セミナーテキスト
PPTX
PPTX
Androidとfpgaを高速fifo通信させちゃう
More Related Content
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
What's hot
PDF
PDF
PPTX
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
PPT
PDF
PDF
PDF
PDF
PDF
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PDF
PPTX
PDF
PDF
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
PDF
PDF
Synthesijer.Scala (PROSYM 2015)
PDF
PDF
PDF
Similar to Google 20130218
PPTX
Odyssey MAX 10 FPGA入門セミナーテキスト
PPTX
PPTX
Androidとfpgaを高速fifo通信させちゃう
PPTX
PPTX
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
Synthesijer fpgax 20150201
PPTX
KEY
KEY
PDF
IEICE technical report (RECONF), January 2013.
PDF
PDF
PDF
PPTX
More from Takefumi MIYOSHI
PDF
ACRi_webinar_20220118_miyo
PDF
Misc for edge_devices_with_fpga
PDF
PDF
PDF
PDF
PDF
PDF
PDF
RISC-V introduction for SIG SDR in CQ 2019.07.29
PPTX
Abstracts of FPGA2017 papers (Temporary Version)
PDF
PDF
PDF
Synthesijer zynq qs_20150316
PDF
PDF
PDF
Synthesijer and Synthesijer.Scala in HLS-friends 201512
PDF
PDF
Synthesijer jjug 201504_01
PDF
Synthesijer - HLS frineds 20190511
PDF
Google 20130218 1. 2. 三好健文 - e-trees. Japan, Inc.
東工大→東大→東工大→電通大→現在
コンパイラとかHW/SW協調設計とか
囲碁専用ハードウェア
CUDA/MPIコンパイラ
ネットワーク処理の専用ハードウェア化
ストリーム処理専用アーキテクチャ
JavaRock
2 2012.8.17 @虎ノ門
3. FPGAとは?
本章では,高位設計言語である Bluespec System Verilog を紹介する.こ
の言語では,コンパイル時にしっかりエラー検出ができ,また,さまざまなライブ
ラリも提供している.FPGA や ASIC が大規模化し複雑な回路を設計する機会が
Field Programmable Gate Array
増えてきた今,知っておくべき技術だろう. (編集部) 三好 健文
論理回路・データパスを自由に作り込める
Verilog HDL や VHDL を使った設計で,
HDL がドレスを着たお姫さまだとすると,コンパイル時
― あぁ∼,数字って 32 ビットだった.うっかりキャスト にエラーをしっかり検出してくれるが故にコンパイルを通
されていたよ… すのが困難な反面,コンパイルさえ通れば合成した回路が
・ クロックレベルの同期と並列性の活用
― テスト ベンチのステート マシンを書くのが面倒だな.
・ きちんと動作してくれる Bluespec はパワフルなツンデレ
― モジュールのインスタンシーエーションで入出力ピン 娘と筆者はイメージしています(図 2)
.
をつなぎ忘れていた
という思いをしたことはありませんか?
単純な記述の羅列や細かいミスへの注力が続くと,本来
力を入れるべき,アーキテクチャの設計まで億劫になって
しまいます.また,
「コンパイル(論理合成)は通るのに,
シミュレーションや FPGA 上で動作させると,何かおか
しい」という事態に頭を悩ませ,原因はうっかりミスだっ
たということも一度や二度ではないと思います.
記述の手間がもっと省けて,コンパイル時に強力にエ
ラー・チェックしてくれる HDL 言語ないかなあ…という
要 求 に 応 え て く れ る の が Bluespec System Verilog で す
(図 1)
.VHDL がまじめなキャリア・ウーマン,Verilog 出典: CQ出版 Interface 2011年2月号より
▲ 図 2 Bluespec System Verilog は ツ
ンデレ娘
3
4. FPGAの利用シーン
独自の回路を実現できるハードウェア
特定の処理を低消費電力で高性能処理
デバイスに近い処理を簡単に実現
自由なI/Oポートの定義
http://japan.xilinx.com/products/boards-and-kits/EK-K7-KC705-G.htm
ASIC開発のプロトタイプとして
http://www.micron.com/about/news-and-events/events/xfest-2012
特定用途向け少数生産の製品として
4
5. FPGAの利用シーン
独自の回路を実現できるハードウェア
特定の処理を低消費電力で高性能処理
デバイスに近い処理を簡単に実現
自由なI/Oポートの定義
http://japan.xilinx.com/products/boards-and-kits/EK-K7-KC705-G.htm
ASIC開発のプロトタイプとして
http://www.micron.com/about/news-and-events/events/xfest-2012
特定用途向け少数生産の製品として
あるいは,オリジナルの演算コンポーネントとして
5
6. freeocean ちょっ
と宣伝
ハードウェアWebキャッシュサーバ
最大スループット: 1Gbps
最大同時処理コネクション数: 50万
秒間同時接続数: 約2万HTTPリクエスト
最大消費電力: 約160W
Since 2006
http://e-trees.jp/index.php/製品/freeocean/
6
7. freeocean-ng 構想 ちょっ
と相談
ハードウェアWebキャッシュサーバ
最大スループット: 20Gbps
最大同時処理コネクション数: 50万
秒間同時接続数: 約2万HTTPリクエスト
最大消費電力: 200W以下
7
8. 9. FPGA に関してよく聞くフレーズ
向いてる計算ならGPUやCPUより速いよ
そんなのFPGAなら1クロックでできるし!!
Smith-Waterman 法による多重配列アライメン ト処理とモンテカルロ法
ベースの金融シミュレーショ ンを FPGA で実行した場合,それぞれ CPU
に比べ て 228 倍と 545 倍高速に処理できた
[ 1 ] Reconfigurable Computing in the Multi-Core Era.
In Internal Workshop on Highly-Efficient Accelerators
and Reconfigurable Technologies, 2010.
9
10. FPGA に関してよく聞くフレーズ
向いてる計算ならGPUやCPUより速いよ
そんなのFPGAなら1クロックでできるし!!
と,いいながら
うーん,メモリ少ないんですよね...
浮動小数点数演算はちょっと苦手かも...
FPGAの性能に関して,ソフトウェア・アプリ開発者と
イメージを共有したい
10
11. 12. 13. 14. 15. FPGAの内部はどうなっているのか?
X-Ref Target - Figure 3
COUT
DI
DI2 CLK WE D
D6:D1 A6:A1 O6
WA6:WA1 O5 D Q
LUT CE D5Q
RAM CK MC31
ROM DI1 CARRY4 SRINIT0 CY DMUX
SRINIT1 XOR
DPRAM64 O5
DPRAM32 SR O6
SPRAM64
SPRAM32 D Q DQ
SRL16 FF
MC31 CE
SRL32 WA8 LATCH
CY CK
WA7 AND2L
XOR
MC31 OR2L
DX SRINIT0
O5 SRINIT1
DX O6
SR
CI
DI2 CLK WE
A6:A1 O6 C
C6:C1
WA6:WA1 O5 D Q
LUT CE
RAM CK C5Q
ROM DI1 SRINIT0 F7
SRINIT1 CY
DPRAM64 XOR CMUX
DPRAM32 SR O5
SPRAM64 O6
SPRAM32
SRL16
SRL32 WA8 F7
WA7 CY D Q CQ
FF
MC31 XOR CE LATCH
CX CK AND2L
CX O5 OR2L
CLK O6 SRINIT0
SRINIT1
SR
WE
CE
SR
BI
DI2 CLK WE B
B6:B1 A6:A1 O6
WA6:WA1 O5 D Q
LUT CE B5Q
RAM CK F8
ROM DI1 SRINIT0 CY
BMUX
SRINIT1 XOR
DPRAM64 O5
DPRAM32 SR O6
SPRAM64
SPRAM32 D FF Q BQ
SRL16 WA8 F8
CY
CE LATCH
SRL32 CK AND2L
WA7 XOR
MC31 BX OR2L
O5 SRINIT0
BX O6 SRINIT1
SR
6入力
AI
DI2 CLK WE A
A6:A1 A6:A1 O6
WA6:WA1 O5 D Q
LUT CE A5Q
RAM CK F7
ROM DI1 SRINIT0 CY
XOR AMUX
SRINIT1
DPRAM64 O5
DPRAM32 SR O6
SPRAM64
SPRAM32 D Q AQ
SRL16 WA8 F7 FF
CY
CE LATCH
SRL32
WA7 XOR CK AND2L
MC31 AX OR2L
O5 SRINIT0
O6 SRINIT1
SR
1
AX
CIN
ug384_03_042309
3 : SLICEM
15
16. 17. 18. 19. 20. 21. 浮動小数点数演算が苦手?
コンポーネントだけなら
32bit 単精度コア XC7K325Tなら
291個入る?
加減算器 175スライス
XC7K325Tなら
乗算器 49スライス,3DSP 280個入る?
64bit 倍精度コア XC7K325Tなら
169個入る?
加減算器 301スライス
XC7K325Tなら
乗算器 143スライス,11DSP 76個入る?
たぶん,こういう方向で何かあればいいんじゃないかなあ...
21
22. 23. 24. FPGA
HDLに実装したUDP/IPの性能
959.1Mbps
スループット
FPGA 1000BASE-T
1Gbps
UDP
(Octet) (Mbps)
64 130 961538 486.4
256 322 388198 792.9
1024 1090 114678 940.6
1472 1538 81274 959.1
表 3 リソース使用量の比較結果
FPGA !!
レイテンシ(μ秒)
レジスタ数 LUT 数 占有スライス数 BRAM36E1
Native 1620 2212 779 12
JavaRock 1472 2084 785 12
e7UDP/IP IP FPGA
GbE
PC e7UDPIP-Core
user-module
MAC
RX BRAM
TX BRAM
16Byte 256Byte 1024Byte
図 7 イーサネットを介して PC と FPGA を接続するシステムの例
FPGA 61 77 120
PC(1)
JavaRock で合成した場合のハードウェアリソース量が下回っ
Pentium4 2.8GHz
PC(1) Java 228 200 222 たが,読み書きをカウンタするレジスタの使い方などの違いに
512MB
CentOS
よるもので本質的な違いはないと考えられる.また合成の結果
PC(1) C 149 149 196 得られた最高動作周波数はどちらも 211.751MHz であった.
4. 3 ケース 2: イーサネットで接続する場合
PC(2)
PC(2) Java 200 200 202 Core i7-3930K 3.2GHz
次に,協調設計の対象となる FPGA と CPU が UDP/IP 通
16GB
信を介してデータを共有するシステムを設計することを考える.
Windows7 Pro.
イーサネットインタフェイスは FPGA でも一般的になりつつ
あり,多くの評価ボードでもイーサネットポートが搭載されて
Xilinx ISE
いる.イーサネットを使うことで,接続する CPU や FPGA の
24
個数や物理的な配置を比較的自由に取り扱うことができるため,
25. 26. 27. Universal Protocol Line ちょっ
と寄道
UPL
= w
a
b x
c y
d z
[a,b,c,d] w=a+b,x=b-c, [w,x,y,z]
y=w/x,z=d+1
a b c
w x y z
27
28. 29. 高位合成言語
手軽なハードウェア開発を夢見て
Vol. 29 No. 1 Feb. 2012 81
表1 ベース言語別に分類した高位合成言語の例
ベースの言語 言語名
C BACH-C [5],Handel-C [6],DeepC Compiler [7],PICASSO [8],COBRA-ABS [9],
DEFACTO Compiler [10],Streams-C [11],GARP C Compiler [12],SA-C [13],
Impulse-C [14],SpecC [15],GorillaC [16]
C++ SystemC [17],OCAPI [18],HP-Machine [19]
Java Galadriel/Nenya [20],JHDL [21],Lime [22],MaxCompiler [23],Sea Cucumber [24],
JavaRock [25]
C# Kiwi [26]
Python PHDL [27],MyHDL [28]
Ruby RHDL [29]
ML CAPH [30]
Fortran DeepC Compiler [7],ROCCC [31],SRC-6 [32]
Haskell Lava [33], Bluespec System Verilog [34](BSV)
Matlab MATCH [35],DEFACTO Compiler [10]
た言語および言語処理系では,高水準言語の機能を また,オブジェクト指向言語において,クラスのイ
用いて記述された部分とハードウェア化の対象とな ンスタンスの動的な生成を実現するのは困難である. 29
30. 高位合成言語
タイプ別に高位合成言語を分けてみた
既存の高水準言語ベースのHDL:
ImpulseC, MaxCompiler など
既存の高水準言語をハードウェアに:
AutoESL, CyberWorkBench, Lime, JavaRock
モダンな概念を取り入れた新しいHDL:
Bluespec
30
31. JavaRock http://javarock.sourceforge.net/
JavaRockの目指すところ
JavaプログラムをそのままHW化する
追加構文,データ型は導入しない
記述に制限は加える
HDLで書けることをJavaで書けるようにする ではない Vol. 48 No. 5 FPGA 向け高位合成言語としての Java の活用手法の検討 9
Javaで書けることを全部HDLにする ではない
Vol. 48 No. 5 FPGA 向け高位合成言語としての Java の活用手法の検討
Game
2
player
Player
player
FPGAMain
9
monitor rs232c
ICFPTPlayer RandomPlayer MCPlayer MonitorWrapper RS232CWapper
calc
Calculator HDL modules HDL modules
player player
Game Player FPGAMain
2 Executable as Software Implement-able onto FPGA
monitor rs232c JVM FPGA
.java% ICFPTPlayer
calc
RandomPlayer MCPlayer MonitorWrapper RS232CWapper
図 15 connect6 のデバッグで用いたクラスのクラス図
Calculator HDL modules HDL modules
Java %
Executable as Software Implement-able onto FPGA
図 17 VGA グラフィクス描画ハードウェアをソフトウェアでデ
JVM
JVM% FPGA
SwingFrame
vga
VGAJavaTest
vga
VGAIf
バッグ
図 15 connect6 のデバッグで用いたクラスのクラス図
SwingCanvas monitor
VGAWrapper
Java % HDL modules
図 17 VGA グラフィクス描画ハードウェアをソフトウェアでデ
SwingFrame
vga
VGAJavaTest
vga
VGAIf
バッグ Executable as Software Implement-able onto FPGA
JVM FPGA
SwingCanvas monitor
図 16 グラフィクス描画ハードウェア設計のためのクラス構造
JavaRock%
VGAWrapper
.vhdl% /
HDL modules
と ICFTPPlayer.java として Java で実装する.
図 15 に ,Java で 実 装 し た connect6 を デ バッ
グ す る 際 に 利 用 し た ク ラ ス 群 の ク ラ ス 図 を 示 す.
Executable as Software Implement-able onto FPGA
JVM FPGA
ICFPTPlayer と Calculator からなる ICFPT で提 図 18 VGA グラフィクス描画ハードウェア
示された connect6 プレイヤは,他の幾つかのプレー
図 16 グラフィクス描画ハードウェア設計のためのクラス構造
ヤ実装と共に Player インターフェイスを実装するク
ラスである.このクラスのインスタンスは,Game と
作成した描画対象である SwingFrame をインスタンシ
エーションすることで図 17 に示すようにソフトウェ
31
と ICFTPPlayer.java として Java で実装する.
32. 高位合成言語
HDL覚えなくてもHW設計ができる
...というのは言い過ぎかもですが
ImpluseC
JavaRock
http://www.cs.tsukuba.ac.jp/~yoshiki/FPGA/Contest/index.php?FPGA2011%C1%B4%C2%D0%C0%EF%CD%FA%CE%F2
32
33. 34.