SlideShare ist ein Scribd-Unternehmen logo
1 von 72
Downloaden Sie, um offline zu lesen
FPGAによるI/Oインテンシブなデータ 
処理の高性能化 
株式会社イーツリーズ・ジャパン/わさらぼ合同会社 
三好 健文 
2014.12.1
Authentication 
2 
(株)イーツリーズ・ジャパン 
FPGAでWeb(キャッシュ)サーバを作ってきた(いる)会社 
2000 
2002 
2004 
2006 
2008 
2010 
2012 
TCP HTTP/1.0 
IPv4 
TCP band width ctrl. 
IPv6 Redundant load balancing 
IP filter 
TCP port forwarding 
HTTP/1.1 
“FPGA” で “高速ネットワーク処理” 
〜2014
3 
わさらぼ合同会社 - Synthesijer 
✔ JavaプログラムをFPGA上のハードウェアに変換する高位合成処理系 
✔ ソフトウェアとして実行可能.動作の確認、検証に 
✔ 複雑なアルゴリズムのハードウェア実装が楽に 
✔ オブクジェクト指向設計による再利用性の向上 
✔ 特殊な記法,追加構文はない 
Opensource 
http://synthesijer.sourceforge.net 
✔ 書けるプログラムに制限は加える(動的なnew,再帰などは不可) 
Javaコンパイラ 
フロントエンド 
HW開発フロー 
Synthesijer 
エンジン 
Javaコンパイラ 
バックエンド 
合成 
配置配線 
while(){ 
if(...){ 
… 
}else{ 
… 
… 
} 
…. 
} 
(いつもの)SW開発フロー 
複雑な状態遷移も,Javaの制御構文を使って楽に設計できる同じJavaプログラムをソフトウェアとしても 
FPGA上のハードウェアとしても実行可能
4 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について
5 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について
6 
FPGAとは? 
Field Programmable Gate Array 
✔ 論理回路・データパスを自由に作り込めるLSI 
✔ クロックレベルの同期と並列性を活用した処理を実現
7 
FPGAとは? 
Field Programmable Gate Array 
✔ 論理回路・データパスを自由に作り込めるLSI 
✔ I/Oを自由に使える
8 
FPGAとは? 
Field Programmable Gate Array 
✔ 論理回路・データパスを自由に作り込めるLSI 
✔ I/Oを自由に使える 
✔ クロックレベルの同期と並列性を活用した処理を実現
9 
FPGAとは? 
Field Programmable Gate Array 
✔ 論理回路・データパスを自由に作り込めるLSI 
✔ I/Oを自由に使える 
✔ クロックレベルの同期と並列性を活用した処理を実現 
✔ ASIC開発のプロトタイプとして 
✔ 特定用途向け(少数生産)の製品として
10 
FPGAの中身についてもう少し 
“論理回路を作り込める”仕組み 
Xilinx社 Virtex-7のSliceの構造Altera社 Stratix-VのLABの構造 
Xilinx, WP405 Altera, Logic Array Blocks and Adaptive Logic Modules in Stratix V Devices 
01 
00 
2 0 
63 1 
〜〜 
〜〜
11 
FPGAの中身についてもう少し 
“論理回路を作り込める”仕組み 
✔ 汎用の論理構成要素 
+ 
✔ 多ポートの内蔵メモリ 
✔ DSP 
✔ DDRメモリコントローラ 
✔ 高速I/Oコントローラ(SERDES,符号化ユニット) 
✔ 汎用マイクロプロセッサ
Ratio = FPGA/ASIC, 種々のベンチマークの相乗平均 
12 
FPGAの中身についてもう少し 
“論理回路を作り込める”仕組みのオーバヘッド 
Logic Only Logic & DSP Logic & 
Memory 
Logic, Memory 
& DSP 
Area Ratio 40 28 37 21 
Critical Path 
Delay(Fastest Grade) 3.2 3.4 2.3 2.1 
Critical Path 
Delay(Slowest Grade) 4.3 4.5 3.1 2.8 
Dynamic Power 
Consumption 12 12 9.2 9.0 
[7] I. Kuon and J. Rose, “Measuring the gap between fpgas and asics,” 
Proceedings of the 2006 ACM/SIGDA 14th Inter- national Symposium on Field Programmable Gate Arrays, pp.21–30, 
FPGA ’06, ACM, New York, NY, USA, 2006.
13 
FPGAとは? 
Field Programmable Gate Array 
✔ 論理回路・データパスを自由に作り込めるLSI 
✔ I/Oを自由に使える 
✔ クロックレベルの同期と並列性を活用した処理を実現 
✔ ASIC開発のプロトタイプとして 
✔ 特定用途向け(少数生産)の製品として
14 
プラットフォームとしてのFPGA 
プロセッサの場合 
FPGAの場合高性能 
低消費電力 
コンパクト
15 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について
16 
“アプリケーション”は様々 
EE Times - Google's Project ARA Smartphones to Use Lattice ECP5 FPGAs 
http://www.eetimes.com/document.asp?doc_id=1321936 
FPGA入門 - どこで使われているか? 
http://www.fpga.co.jp/nyumon2.html
17 
“アプリケーション”は様々 
Node 0 
Node 1 
Node N 
+ Node i 
Op 
Op 
Op 
... 
e-trees.Japanの場合 
などなど
18 
アプリケーション研究事例 
@FCCM2014,FPL2014,FPGA2014 
- Fast, Power-Efficient Biophotonic Simulations for Cancer Treatment Using FPGAs 
- SMCGen: Generating Reconfigurable Design for Sequential Monte Carlo Applications 
- FPGA Gaussian Random Number Generators with Guaranteed Statistical Accuracy 
- FPGA Implementation of EM Algorithm for 3D CT Reconstruction 
- A Scalable Multi-engine Xpress9 Compressor with Asynchronous Data Transfer 
- FPGA Accelerated Online Boosting for Multi-target Tracking 
- High-Throughput Implementation of a Million-Point Sparse Fourier Transform 
- Power-efficient Re-gridding Architecture for Accelerating Non-uniform Fast Fourier Transform 
- Radix-4 and Radix-8 Booth Encoded Interleaved Modular Multipliers Over General Fp 
- Dataflow Acceleration of Krylov Subspace Sparse Banded Problems 
- A Highly-efficient and Green Data Flow Engine for Solving Euler Atmospheric Equations 
- An Efficient FPGA-based Hardware Framework for Natural Feature Extraction and Related Computer Vision Tasks 
- An Efficient Sparse Conjugate Gradient Solver Using a Benes Permutation Network 
- Efficient 3D Triangulation in Hardware for Dense Structure-from-Motion in Low-Speed Automotive Scenarios 
- FPGA-based Biophysically-Meaningful Modeling of Olivocerebellar Neurons 
- Square-Rich Fixed Point Polynomial Evaluation on FPGAs 
- Hardware Acceleration of Database Operations 
- A Scalable Sparse Matrix-Vector Multiplication Kernel For Energy-Efficient Sparse-BLAS On FPGAs 
- Binary Stochastic Implementation of Digital Logic 
- Accelerating Parameter Estimation for Multivariate Self-Exciting Point Processes 
- Energy-Efficient Multiplier-Less Discrete Convolver through Probabilistic Domain Transformation 
- …..
19 
アプリケーション研究事例 
FPGAドミナントではない会議での事例 
- The Click2NetFPGA Toolchain @USENIX ATC2012 
- SURF Algorithm in FPGA: a Novel Architecture for High Demanding Industrial Applications @DATE2012 
- Achieving 10Gbps line-rate key-value stores with FPGAs @USENIX HotCloud 2013 
- FPGA Acceleration for the Frequent Item Problem @ICDE 2010 
- An FPGA-based pattern classifier using data compression @IEEEI 2010 
- A reconfigurable fabric for accelerating large-scale datacenter services @ISCA 2014 
- LINQits: big data on little clients @ISCA 2013 
- Parallel Real-time Garbage Collection of Multiple Heaps in Reconfigurable Hardware @ISMM2014 
- Accelerating Machine-Learning Algorithms on FPGAs using Pattern-Based Decomposition @J. of Sig. Process. Syst. 
- Willow: A User-Programmable SSD @USENIX OSDI2014 
- Hardware Enforcement of Application Security Policies Using Tagged Memory @USENIX OSDI2008 
- Histograms as a Side Effect of Data Movement for Big Data @SIGMOD2014 
- Flexible Query Processor on FPGAs @VLDB2013 
- Complex Event Detection at Wire Speed with FPGAs @VLDB2010 
- Data Processing on FPGAs @VLDB2009 
- ….. 
などなどなど沢山
20 
“アプリケーション”は様々 
今回は “I/Oインテンシブ” で “高性能” な話 
FPGA 
高いスループットでたくさんのデータを処理
21 
“アプリケーション”は様々 
今回は “I/Oインテンシブ” で “高性能” な話 
1) http://www.theregister.co.uk/Print/2011/12/12/ibm_vs_oracle_data_centre_optimisation/ 
2) http://www.redbooks.ibm.com/redpapers/pdfs/redp4725.pdf 
DB,金融,油田探索... 
1) 
2) 
例: IBM Netteza
22 
アプリケーション研究事例 
FPGAドミナントではない会議での事例 
- The Click2NetFPGA Toolchain @USENIX ATC2012 
- SURF Algorithm in FPGA: a Novel Architecture for High Demanding Industrial Applications @DATE2012 
- Achieving 10Gbps line-rate key-value stores with FPGAs @USENIX HotCloud 2013 
- FPGA Acceleration for the Frequent Item Problem @ICDE 2010 
- An FPGA-based pattern classifier using data compression @IEEEI 2010 
- A reconfigurable fabric for accelerating large-scale datacenter services @ISCA 2014 
- LINQits: big data on little clients @ISCA 2013 
- Parallel Real-time Garbage Collection of Multiple Heaps in Reconfigurable Hardware @ISMM2014 
- Accelerating Machine-Learning Algorithms on FPGAs using Pattern-Based Decomposition @J. of Sig. Process. Syst. 
- Willow: A User-Programmable SSD @USENIX OSDI2014 
- Hardware Enforcement of Application Security Policies Using Tagged Memory @USENIX OSDI2008 
- Histograms as a Side Effect of Data Movement for Big Data @SIGMOD2014 
- Flexible Query Processor on FPGAs @VLDB2013 
- Complex Event Detection at Wire Speed with FPGAs @VLDB2010 
- Data Processing on FPGAs @VLDB2009 
- ….. 
などなどなど沢山
23 
freeocean@e-trees.Japan 
FPGA によるWebサーバー 
ネットワークI/F 100/1000BASE-T x 4 
対応プロトコルHTTP/1.1, (IPv4, IPv6, TCP, ICMP) 
メモリ(コンテンツ用) DDR2 SDRAM 4GB〜32GB 
最大同時コネクション数491,520 
サイズ1.5U(430x603x66 mm) 
最大消費電力300W未満
24 
freeocean@e-trees.Japan 
Ethernet IP 
TCP 
HTTP 
Ethernet IP 
TCP 
・・・ 
TCP 
TCP 
TCP 
・・・ 
TCP 
HTTP 
HTTP 
Filesystem 
+ 
Storage 
* モジュール構成はイメージです 
✔ 専用回路ならではの並列性の活用
25 
freeocean@e-trees.Japan 
✔ 専用回路ならではの並列性の活用 
KBps
26 
freeocean@e-trees.Japan 
✔ [参考] 今時のApache/PCにabで負荷をかけてみる 
✔ PCのスペック 
✔ 結果 
CPU Intel(R) Core(TM) i5-3570 CPU@3.4GHz 
メモリ 32GB 
ディスク Intel SSDC2W24 
OS Fedora release 17 
Apache Apache/2.2.23 
➔ 1kB ➔ 1MB 
並列度スループット(kBps) 
10 40225 
100 48865 
1000 12494 
並列度スループット(kBps) 
10 114565 
100 114568 
1000 N/A
27 
Memcached@Xilinx, ETH Zurich 
10G if 
Network stack Memcached 
DRAM 
Network 
adapter 
FPGA 
x86 DRAM 
motherboard 
Hash table Value store 
✔ Memcached部分はデータフローアーキテクチャ 
✔ レイテンシ = 481Cycles@156MHz 
https://www.usenix.org/sites/default/files/conference/protected-files/blott_hotcloud13_slides.pdf
28 
Memcached@Xilinx, ETH Zurich 
https://www.usenix.org/sites/default/files/conference/protected-files/blott_hotcloud13_slides.pdf
29 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について
30 
I/O処理システムとしてのFPGA 
✔ FPGAが持っているI/Oと関連コンポーネント 
✔ I/O性能の予備的な評価 
✔ 高性能化のためのアーキテクチャ設計
31 
I/Oと関連コンポーネント 
✔ 汎用入出力ポート (GPIO) 
✔ 高速シリアル通信ブロック 
✔ 光トランシーバ
32 
汎用入出力ポート 
✔ いろいろな用途に使われる 
✔ LEDチカチカとか...だけじゃない!! 
Xilinx, WP393 より 
✔ HP I/Oは1,866Mb/s(DDR3)や1,600Mb/s LVDSをサポート
33 
高速シリアル通信ブロック 
✔ 12.5Gb/s,13.1Gbpsといった高速転送をサポート 
✔ PCIeやSATA,あるいは生で利用. 
Xilinx, UG476 より
34 
FPGA x 光 
12chの高速トランシーバを光で伝送 
http://www.hitechglobal.com/Boards/Virtex7_PCIE_Gen3.htm
35 
I/O性能の予備的な評価 
✔ システムを作るにはI/Oは必須 
✔ 作り始める前に大体の性能を知っておきたい 
FPGA 
GbE, 10GbE 
例えば↓のようなシステムを想定したときの 
だいたいの性能見積もりをしたい 
PCIe 
SATA 
HDD,SSD 
ホストコンピュータ 
LAN 
WAN
36 
GbE 
GMII,RGMIIやSGMIIでPHYとFPGAを接続 
✔ PCS/PMA/PMDはPHYがやってくれる 
✔ FPGAは125MHz*8bitでEthernetフレームを送受 
FPGA 
PHY 
(ex. 88E1111) 
8-bit TX/RX 
MAC層 
@125MHz 
プリアンブルSFD 送り先MACアドレス送り先MACアドレスPID データSFD
37 
GbE 
FPGAによるUDP/IPプロトコルスタックの転送性能 
(e7UDP/IP @ e-trees.Japan) 
UDP 
データ長 
Ethernet/IP/ 
UDPヘッダ長 
Ethernetプリアンブル/ 
FCS/フレーム間ギャップ 
トータルパケット 
占有長(Octet) 
最大パケット 
数/1Gbps 
最大UDP 
転送データレート 
(Mbps) 
64 14+20+8 8+4+12 130 961538 492.3 
256 14+20+8 8+4+12 322 388198 795.0 
1024 14+20+8 8+4+12 1090 114678 939.4 
1472 14+20+8 8+4+12 1538 81274 957.1
38 
10GbE 
SFIでSFP+と接続 
FPGA 
10.3125Gbps 
高速シリアルI/O 
PCS/ 
PMA層 
MAC層 
64-bit TX/RX 
@156.25MHz 
プリアンブルSFD 送り先MACアドレス送り先MACアドレスPID データSFD 
GbEの時の1/8のサイクル数でヘッダを処理しなければいけない!!
39 
10GbE 
10GbEのコアを対向で接続したときの 
折り返しレイテンシとスループットを測定 
= 約9.3Gbpsの転送レートは達成できている
40 
PCIe Gen2 
✔ よくあるアクセラレータの実装を想定 
✔ KC705
41 
PCIe Gen2
FPGA VC709 
42 
PCIe Gen3 
PCIe 
Integrated 
Block 
cc 
cq 
pcie2axilite 
(xapp1201) 
rc 
rq bmd_writer/ 
bmd_reader 
config./ 
status 
DMA 
Engine 
SW 
Host 
Memory MIG 
On-board 
DDR3 
int. Controller 
FIFO 
FIFO 
axi_writer 
axi_reader 
bmd_writer/ 
bmd_reader 
AXI-ST 
256bit 
250MHz 
AXI-MM 
256bit 
250MHz 
PC->FPGA: 2KByte 
FPGA->PC: 128Byte 
src(64bit), dest(64bit), 
Length(<= 8MB), dir
43 
PCIe Gen3 
✔ *** Gen2 x8での読み書き性能の測定結果 
Write (FPGA Board DDR3 -> Host Memory) 
0 2000 4000 6000 8000 1000012000140001600018000 
1600 
1400 
1200 
1000 
800 
600 
400 
200 
0 
Bytes 
MBps 
Read (Host Memory -> FPGA Board DDR3) 
0 2000 4000 6000 8000 1000012000140001600018000 
2000 
1800 
1600 
1400 
1200 
1000 
800 
600 
400 
200 
0 
Bytes 
MBps
44 
SATA 
✔ e7SATA: コア+専用FPGAボード2Gb DDR3L 
Spartan6 
XC6SLX45T 
FMC
45 
SATA 
✔ e7SATA: コア+専用FPGAボード
46 
SATA 
✔ e7SATA FPGAボード内での読み出し性能測定 
0 500000 1000000 1500000 2000000 2500000 3000000 3500000 4000000 4500000 
300 
250 
200 
150 
100 
50 
0 
Micron 
Intel 
Fujitsu(1st) 
Fujitsu (2nd〜) 
Bytes 
Micron: RealSSD C400, Intel: Intel SSD 330 Series, Fujitsu: MHV2080BS(HDD) 
MBps
47 
LVDSによる高速通信 
これを活用して,1.6Gbpsなどの高速通信を行う
48 
LVDSによる高速通信 
たとえばADC/DACなどを接続するとき 
ADC→FPGA: 245.76MHz DDR * 14bit 
FPGA→DAC: 491.52MHz DDR * 8bit 
http://www.sdlabo.org 
FMC150@4DSP
データはどうせ移動させる 
移動途中で副次的に処理できる 
49 
なぜFPGAでデータ処理をするか? 
10G if 
Network stack Memcached 
DRAM 
Network 
adapter 
FPGA 
x86 DRAM 
motherboard 
Hash table Value store 
図は https://www.usenix.org/sites/default/files/conference/protected-files/blott_hotcloud13_slides.pdf より
50 
高性能化のためのアーキテクチャ 
✔ 組み合わせ回路(アプリケーション特化演算器)と 
データ並列性の活用 
✔ パイプライン並列化 
✔ データハンドリング機構 
リソース使用量,配線遅延を考慮しつつ 
性能を最大化する実装をみつける必要がある
51 
駄目な例 
... 
signal c: unsigned(WIDTH-1 downto 0); 
… 
process(clk) 
begin 
if clk'event and clk = '1' then 
c <= c + 1; 
end if; 
end process; 
...
52 
組み合わせ回路/データ並列性の活用 
✔ プロセッサと比べてFPGA回路のφは圧倒的に低速 
✔ 高速データ処理では1クロックでデータを捌く必要も 
✔ 時にはソフトウェア実装とは全く違う場合も 
条件 
・・・ 
条件 
v.s
53 
パイプライン並列化 
FIFO 
w [byte] 
f [Hz] 
実行 
ステージ 
スループット T [bps] 
FIFO 
実行 
ステージ 
実行 
ステージ 
パケットデータが d [byte] のとき全データ入力を受け取るのにかかる時間 = (d/w)*(1/f) [sec] 
同様に、全データの出力にかかる時間 = (d/w)*(1/f) [sec] 
スループットT [bps]を実現するとき、パケットデータを(8*d)*(1/T) [sec]内で処理し続ける必要がある 
→ 各モジュールで処理に使える時間 t は 8*d/T-2*d/(w*f) [sec] → (8*d/T-2*d/(w*f))/(1/f) [cycle] 
 たとえば、d=1500, T=1G, w=4, f=100Mのとき 
 1パケットあたりの処理にかけられるサイクル数は450サイクル. 
    f=200Mなら1650サイクル,w=16なら1012サイクル
54 
データハンドリング機構 
✔ I/O(外部メモリや各種I/F)は共有する必要がある 
✔ データ処理結果の一時的なバッファリングが必要 
(FIFOやBRAMを使用することが多い) 
✔ そんなに大きくはない + 自分で管理する必要がある 
ハンドシェイクジョインの出力をうまく捌くための適応型マージネットワークの例
55 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について
56 
FPGAの開発環境について 
✔ 開発フロー 
✔ 標準インターフェースでIPの活用が容易に(なりつつある) 
✔ 様々なDSLベースのFPGAシステム開発 
✔ 高位合成言語/高位合成処理系による開発
57 
開発フロー 
ある程度のパソコンで設計可能 
HDLを使ったRTL設計で所望のモジュールを実装 
RTLシミュレーションによる動作検証 
使用するFPGAにあわせた制約を定義 
ツールで合成,配置配線,FPGA構成情報生成 
実機で動作確認
58 
開発フロー 
開発の様子の例
59 
開発フロー 
ある程度のパソコンで設計可能 
HDLを使ったRTL設計で所望のモジュールを実装 
RTLシミュレーションによる動作検証 
使用するFPGAにあわせた制約を定義 
ツールで合成,配置配線,FPGA構成情報生成 
実機で動作確認 
結構つらい,時間がかかる
60 
標準I/FによるIPの活用 
✔ 検証済みモジュールを組み合わせてシステムを設計 
✔ 浮動小数点数演算コア 
✔ FFT 
✔ ビデオエンコーダ 
✔ プロトコルスタック などなどなど 
✔ AXI,Avalonといった標準I/FをFPGAベンダが定義
61 
IPの活用 
Xilinx IPインテグレータの設計画面の例
62 
IP接続向けの標準I/F 
✔ AXIやAvalonといたインターフェース 
✔ メモリマップド or ストリーム 
クロック 
リセット 
アドレス 
長さ 
サイズ 
各種ctrl/設定 
データ 
ストローブ 
データ有効 
各種ステータス 
データ 
ストローブ 
データ有効
63 
様々なDSLベースのシステム開発(1) 
RTL設計(あるいは少し抽象的なHW設計)を 
より楽にするためのDSL 
✔ MyHDL (Pythonベース) 
✔ JHDL (Javaベース) 
✔ Chisel (Scalaベース) 
✔ MaxCompiler (Javaベース) 
などなどなど
64 
様々なDSLベースのシステム開発(2) 
使用するプログラミングモデルに特化したDSL 
✔ Bluespec (並行プログラミング) 
✔ DIL (パイプラインプログラミング) 
✔ FloPoCo (浮動小数点数パイプライン) 
などなどなど
65 
様々なDSLベースのシステム開発(3) 
実装したいアプリケーションに特化したDSL 
✔ Spiral ←Linear Digital Processing 
✔ HDL Coder ← 信号処理(Matlab) 
✔ Optimus ← ストリーム処理 
✔ LINQ ← クエリプロセッシング 
などなどなど 
✔ DSLを作るツールも.(たとえば,LMS/Scala)
66 
Synthesijer.scala とは 
私もSynthesijer.scalaというのを設計中 
✔ ''Scala''ベースのDSL 
✔ signal, port: 状態を変更可能なオブジェクト 
✔ expr: 副作用なしの式 
✔ sequencer: 状態遷移機械 
✔ module: モジュール全体 
✔ 上記のオブジェクトをScalaでインスタンス化.つなぎ合わせる.
67 
Synthesijer.scala の例(1) 
✔ Lチカ 
def generate_led() : Module = { 
val m = new Module("led") 
val q = m.outP("q") 
val counter = m.signal(32) 
q <= ref(counter, 5) 
val seq = m.sequencer("main") 
counter <= (seq.idle, VECTOR_ZERO) 
val s0 = seq.idle -> seq.add() 
counter <= (s0, counter + 1) 
return m 
} 
def generate_sim(target:Module, name:String) : SimModule = { 
val sim = new SimModule(name) 
val inst = sim.instance(target, "U") 
val (clk, reset, counter) = sim.system(10) 
inst.sysClk <= clk 
inst.sysReset <= reset 
return sim 
}
68 
高位合成言語/高位合成処理系 
✔ Vivado HLS 
✔ OpenCL対象の処理系 
✔ CyberWorkBench 
✔ Cynthesizer 
✔ Symphony C Compiler 
✔ ImpulseC 
✔ Lime 
などなどなど 
...私もSynthesijerを設計中
69 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について
70 
ポテンシャルをどう活かすか!! 
https://www.youtube.com/watch?v=FCmfcfPt4T4
71 
牧本先生の講演を生で
72 
コンテンツ 
✔ FPGAとは? 
✔ FPGAを使ったアプリケーション研究開発事例 
✔ データ(I/O)処理システムとしてのFPGA 
✔ FPGAの開発環境について

Weitere ähnliche Inhalte

Was ist angesagt?

FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi愛美 林
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02maruyama097
 
高速シリアル通信を支える技術
高速シリアル通信を支える技術高速シリアル通信を支える技術
高速シリアル通信を支える技術Natsutani Minoru
 
Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Takefumi MIYOSHI
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識なおき きしだ
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6Kentaro Ebisawa
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかなおき きしだ
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)Shinya Takamaeda-Y
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータShinya Takamaeda-Y
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門ryos36
 

Was ist angesagt? (20)

FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
高速シリアル通信を支える技術
高速シリアル通信を支える技術高速シリアル通信を支える技術
高速シリアル通信を支える技術
 
Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)
 
Fpgax 20130604
Fpgax 20130604Fpgax 20130604
Fpgax 20130604
 
FPGA
FPGAFPGA
FPGA
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
 
FPGAって、何?
FPGAって、何?FPGAって、何?
FPGAって、何?
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
Reconf 201506
Reconf 201506Reconf 201506
Reconf 201506
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
 
Google 20130218
Google 20130218Google 20130218
Google 20130218
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
なにわTech20160827
なにわTech20160827なにわTech20160827
なにわTech20160827
 

Ähnlich wie ICD/CPSY 201412

FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化Kazunori Sato
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発Ryuuta Tsunashima
 
Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Kentaro Ebisawa
 
pgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpupgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpuKohei KaiGai
 
Bthesis - A High-speed and Portable FPGA Accelerator
Bthesis - A High-speed and Portable FPGA AcceleratorBthesis - A High-speed and Portable FPGA Accelerator
Bthesis - A High-speed and Portable FPGA AcceleratorTakuma Usui
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理Motonori Shindo
 
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPCシステムズ株式会社
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...Takuma Usui
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックKentaro Ebisawa
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
ACRi panel_discussion_xilinx_hayashida_rev1.0
ACRi panel_discussion_xilinx_hayashida_rev1.0ACRi panel_discussion_xilinx_hayashida_rev1.0
ACRi panel_discussion_xilinx_hayashida_rev1.0直久 住川
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速するKohei KaiGai
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会Hitoshi Sato
 
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)Insight Technology, Inc.
 
そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~
そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~
そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~Brocade
 

Ähnlich wie ICD/CPSY 201412 (20)

FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発
 
Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4
 
pgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpupgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpu
 
Bthesis - A High-speed and Portable FPGA Accelerator
Bthesis - A High-speed and Portable FPGA AcceleratorBthesis - A High-speed and Portable FPGA Accelerator
Bthesis - A High-speed and Portable FPGA Accelerator
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
 
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
ACRi panel_discussion_xilinx_hayashida_rev1.0
ACRi panel_discussion_xilinx_hayashida_rev1.0ACRi panel_discussion_xilinx_hayashida_rev1.0
ACRi panel_discussion_xilinx_hayashida_rev1.0
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
20130126 sc12-reading
20130126 sc12-reading20130126 sc12-reading
20130126 sc12-reading
 
Linux on Powerの最新情報(2014年11月)
Linux on Powerの最新情報(2014年11月)Linux on Powerの最新情報(2014年11月)
Linux on Powerの最新情報(2014年11月)
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
 
そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~
そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~
そろそろビジネスに貢献するSDNを考えませんか?~キーワードは“オープン”~
 

Mehr von Takefumi MIYOSHI

Mehr von Takefumi MIYOSHI (19)

DAS_202109
DAS_202109DAS_202109
DAS_202109
 
ACRiルーム1年間の活動と 新たな取り組み
ACRiルーム1年間の活動と 新たな取り組みACRiルーム1年間の活動と 新たな取り組み
ACRiルーム1年間の活動と 新たな取り組み
 
RISC-V introduction for SIG SDR in CQ 2019.07.29
RISC-V introduction for SIG SDR in CQ 2019.07.29RISC-V introduction for SIG SDR in CQ 2019.07.29
RISC-V introduction for SIG SDR in CQ 2019.07.29
 
Misc for edge_devices_with_fpga
Misc for edge_devices_with_fpgaMisc for edge_devices_with_fpga
Misc for edge_devices_with_fpga
 
Cq off 20190718
Cq off 20190718Cq off 20190718
Cq off 20190718
 
Synthesijer - HLS frineds 20190511
Synthesijer - HLS frineds 20190511Synthesijer - HLS frineds 20190511
Synthesijer - HLS frineds 20190511
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
Hls friends 201803.key
Hls friends 201803.keyHls friends 201803.key
Hls friends 201803.key
 
Hls friends 20161122.key
Hls friends 20161122.keyHls friends 20161122.key
Hls friends 20161122.key
 
Slide
SlideSlide
Slide
 
Synthesijer and Synthesijer.Scala in HLS-friends 201512
Synthesijer and Synthesijer.Scala in HLS-friends 201512Synthesijer and Synthesijer.Scala in HLS-friends 201512
Synthesijer and Synthesijer.Scala in HLS-friends 201512
 
Das 2015
Das 2015Das 2015
Das 2015
 
Microblaze loader
Microblaze loaderMicroblaze loader
Microblaze loader
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
Synthesijer fpgax 20150201
Synthesijer fpgax 20150201Synthesijer fpgax 20150201
Synthesijer fpgax 20150201
 
Synthesijer hls 20150116
Synthesijer hls 20150116Synthesijer hls 20150116
Synthesijer hls 20150116
 
Fpgax 20130830
Fpgax 20130830Fpgax 20130830
Fpgax 20130830
 
Bluespec @waseda(PDF)
Bluespec @waseda(PDF)Bluespec @waseda(PDF)
Bluespec @waseda(PDF)
 

Kürzlich hochgeladen

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

ICD/CPSY 201412

  • 2. Authentication 2 (株)イーツリーズ・ジャパン FPGAでWeb(キャッシュ)サーバを作ってきた(いる)会社 2000 2002 2004 2006 2008 2010 2012 TCP HTTP/1.0 IPv4 TCP band width ctrl. IPv6 Redundant load balancing IP filter TCP port forwarding HTTP/1.1 “FPGA” で “高速ネットワーク処理” 〜2014
  • 3. 3 わさらぼ合同会社 - Synthesijer ✔ JavaプログラムをFPGA上のハードウェアに変換する高位合成処理系 ✔ ソフトウェアとして実行可能.動作の確認、検証に ✔ 複雑なアルゴリズムのハードウェア実装が楽に ✔ オブクジェクト指向設計による再利用性の向上 ✔ 特殊な記法,追加構文はない Opensource http://synthesijer.sourceforge.net ✔ 書けるプログラムに制限は加える(動的なnew,再帰などは不可) Javaコンパイラ フロントエンド HW開発フロー Synthesijer エンジン Javaコンパイラ バックエンド 合成 配置配線 while(){ if(...){ … }else{ … … } …. } (いつもの)SW開発フロー 複雑な状態遷移も,Javaの制御構文を使って楽に設計できる同じJavaプログラムをソフトウェアとしても FPGA上のハードウェアとしても実行可能
  • 4. 4 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について
  • 5. 5 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について
  • 6. 6 FPGAとは? Field Programmable Gate Array ✔ 論理回路・データパスを自由に作り込めるLSI ✔ クロックレベルの同期と並列性を活用した処理を実現
  • 7. 7 FPGAとは? Field Programmable Gate Array ✔ 論理回路・データパスを自由に作り込めるLSI ✔ I/Oを自由に使える
  • 8. 8 FPGAとは? Field Programmable Gate Array ✔ 論理回路・データパスを自由に作り込めるLSI ✔ I/Oを自由に使える ✔ クロックレベルの同期と並列性を活用した処理を実現
  • 9. 9 FPGAとは? Field Programmable Gate Array ✔ 論理回路・データパスを自由に作り込めるLSI ✔ I/Oを自由に使える ✔ クロックレベルの同期と並列性を活用した処理を実現 ✔ ASIC開発のプロトタイプとして ✔ 特定用途向け(少数生産)の製品として
  • 10. 10 FPGAの中身についてもう少し “論理回路を作り込める”仕組み Xilinx社 Virtex-7のSliceの構造Altera社 Stratix-VのLABの構造 Xilinx, WP405 Altera, Logic Array Blocks and Adaptive Logic Modules in Stratix V Devices 01 00 2 0 63 1 〜〜 〜〜
  • 11. 11 FPGAの中身についてもう少し “論理回路を作り込める”仕組み ✔ 汎用の論理構成要素 + ✔ 多ポートの内蔵メモリ ✔ DSP ✔ DDRメモリコントローラ ✔ 高速I/Oコントローラ(SERDES,符号化ユニット) ✔ 汎用マイクロプロセッサ
  • 12. Ratio = FPGA/ASIC, 種々のベンチマークの相乗平均 12 FPGAの中身についてもう少し “論理回路を作り込める”仕組みのオーバヘッド Logic Only Logic & DSP Logic & Memory Logic, Memory & DSP Area Ratio 40 28 37 21 Critical Path Delay(Fastest Grade) 3.2 3.4 2.3 2.1 Critical Path Delay(Slowest Grade) 4.3 4.5 3.1 2.8 Dynamic Power Consumption 12 12 9.2 9.0 [7] I. Kuon and J. Rose, “Measuring the gap between fpgas and asics,” Proceedings of the 2006 ACM/SIGDA 14th Inter- national Symposium on Field Programmable Gate Arrays, pp.21–30, FPGA ’06, ACM, New York, NY, USA, 2006.
  • 13. 13 FPGAとは? Field Programmable Gate Array ✔ 論理回路・データパスを自由に作り込めるLSI ✔ I/Oを自由に使える ✔ クロックレベルの同期と並列性を活用した処理を実現 ✔ ASIC開発のプロトタイプとして ✔ 特定用途向け(少数生産)の製品として
  • 14. 14 プラットフォームとしてのFPGA プロセッサの場合 FPGAの場合高性能 低消費電力 コンパクト
  • 15. 15 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について
  • 16. 16 “アプリケーション”は様々 EE Times - Google's Project ARA Smartphones to Use Lattice ECP5 FPGAs http://www.eetimes.com/document.asp?doc_id=1321936 FPGA入門 - どこで使われているか? http://www.fpga.co.jp/nyumon2.html
  • 17. 17 “アプリケーション”は様々 Node 0 Node 1 Node N + Node i Op Op Op ... e-trees.Japanの場合 などなど
  • 18. 18 アプリケーション研究事例 @FCCM2014,FPL2014,FPGA2014 - Fast, Power-Efficient Biophotonic Simulations for Cancer Treatment Using FPGAs - SMCGen: Generating Reconfigurable Design for Sequential Monte Carlo Applications - FPGA Gaussian Random Number Generators with Guaranteed Statistical Accuracy - FPGA Implementation of EM Algorithm for 3D CT Reconstruction - A Scalable Multi-engine Xpress9 Compressor with Asynchronous Data Transfer - FPGA Accelerated Online Boosting for Multi-target Tracking - High-Throughput Implementation of a Million-Point Sparse Fourier Transform - Power-efficient Re-gridding Architecture for Accelerating Non-uniform Fast Fourier Transform - Radix-4 and Radix-8 Booth Encoded Interleaved Modular Multipliers Over General Fp - Dataflow Acceleration of Krylov Subspace Sparse Banded Problems - A Highly-efficient and Green Data Flow Engine for Solving Euler Atmospheric Equations - An Efficient FPGA-based Hardware Framework for Natural Feature Extraction and Related Computer Vision Tasks - An Efficient Sparse Conjugate Gradient Solver Using a Benes Permutation Network - Efficient 3D Triangulation in Hardware for Dense Structure-from-Motion in Low-Speed Automotive Scenarios - FPGA-based Biophysically-Meaningful Modeling of Olivocerebellar Neurons - Square-Rich Fixed Point Polynomial Evaluation on FPGAs - Hardware Acceleration of Database Operations - A Scalable Sparse Matrix-Vector Multiplication Kernel For Energy-Efficient Sparse-BLAS On FPGAs - Binary Stochastic Implementation of Digital Logic - Accelerating Parameter Estimation for Multivariate Self-Exciting Point Processes - Energy-Efficient Multiplier-Less Discrete Convolver through Probabilistic Domain Transformation - …..
  • 19. 19 アプリケーション研究事例 FPGAドミナントではない会議での事例 - The Click2NetFPGA Toolchain @USENIX ATC2012 - SURF Algorithm in FPGA: a Novel Architecture for High Demanding Industrial Applications @DATE2012 - Achieving 10Gbps line-rate key-value stores with FPGAs @USENIX HotCloud 2013 - FPGA Acceleration for the Frequent Item Problem @ICDE 2010 - An FPGA-based pattern classifier using data compression @IEEEI 2010 - A reconfigurable fabric for accelerating large-scale datacenter services @ISCA 2014 - LINQits: big data on little clients @ISCA 2013 - Parallel Real-time Garbage Collection of Multiple Heaps in Reconfigurable Hardware @ISMM2014 - Accelerating Machine-Learning Algorithms on FPGAs using Pattern-Based Decomposition @J. of Sig. Process. Syst. - Willow: A User-Programmable SSD @USENIX OSDI2014 - Hardware Enforcement of Application Security Policies Using Tagged Memory @USENIX OSDI2008 - Histograms as a Side Effect of Data Movement for Big Data @SIGMOD2014 - Flexible Query Processor on FPGAs @VLDB2013 - Complex Event Detection at Wire Speed with FPGAs @VLDB2010 - Data Processing on FPGAs @VLDB2009 - ….. などなどなど沢山
  • 20. 20 “アプリケーション”は様々 今回は “I/Oインテンシブ” で “高性能” な話 FPGA 高いスループットでたくさんのデータを処理
  • 21. 21 “アプリケーション”は様々 今回は “I/Oインテンシブ” で “高性能” な話 1) http://www.theregister.co.uk/Print/2011/12/12/ibm_vs_oracle_data_centre_optimisation/ 2) http://www.redbooks.ibm.com/redpapers/pdfs/redp4725.pdf DB,金融,油田探索... 1) 2) 例: IBM Netteza
  • 22. 22 アプリケーション研究事例 FPGAドミナントではない会議での事例 - The Click2NetFPGA Toolchain @USENIX ATC2012 - SURF Algorithm in FPGA: a Novel Architecture for High Demanding Industrial Applications @DATE2012 - Achieving 10Gbps line-rate key-value stores with FPGAs @USENIX HotCloud 2013 - FPGA Acceleration for the Frequent Item Problem @ICDE 2010 - An FPGA-based pattern classifier using data compression @IEEEI 2010 - A reconfigurable fabric for accelerating large-scale datacenter services @ISCA 2014 - LINQits: big data on little clients @ISCA 2013 - Parallel Real-time Garbage Collection of Multiple Heaps in Reconfigurable Hardware @ISMM2014 - Accelerating Machine-Learning Algorithms on FPGAs using Pattern-Based Decomposition @J. of Sig. Process. Syst. - Willow: A User-Programmable SSD @USENIX OSDI2014 - Hardware Enforcement of Application Security Policies Using Tagged Memory @USENIX OSDI2008 - Histograms as a Side Effect of Data Movement for Big Data @SIGMOD2014 - Flexible Query Processor on FPGAs @VLDB2013 - Complex Event Detection at Wire Speed with FPGAs @VLDB2010 - Data Processing on FPGAs @VLDB2009 - ….. などなどなど沢山
  • 23. 23 freeocean@e-trees.Japan FPGA によるWebサーバー ネットワークI/F 100/1000BASE-T x 4 対応プロトコルHTTP/1.1, (IPv4, IPv6, TCP, ICMP) メモリ(コンテンツ用) DDR2 SDRAM 4GB〜32GB 最大同時コネクション数491,520 サイズ1.5U(430x603x66 mm) 最大消費電力300W未満
  • 24. 24 freeocean@e-trees.Japan Ethernet IP TCP HTTP Ethernet IP TCP ・・・ TCP TCP TCP ・・・ TCP HTTP HTTP Filesystem + Storage * モジュール構成はイメージです ✔ 専用回路ならではの並列性の活用
  • 25. 25 freeocean@e-trees.Japan ✔ 専用回路ならではの並列性の活用 KBps
  • 26. 26 freeocean@e-trees.Japan ✔ [参考] 今時のApache/PCにabで負荷をかけてみる ✔ PCのスペック ✔ 結果 CPU Intel(R) Core(TM) i5-3570 CPU@3.4GHz メモリ 32GB ディスク Intel SSDC2W24 OS Fedora release 17 Apache Apache/2.2.23 ➔ 1kB ➔ 1MB 並列度スループット(kBps) 10 40225 100 48865 1000 12494 並列度スループット(kBps) 10 114565 100 114568 1000 N/A
  • 27. 27 Memcached@Xilinx, ETH Zurich 10G if Network stack Memcached DRAM Network adapter FPGA x86 DRAM motherboard Hash table Value store ✔ Memcached部分はデータフローアーキテクチャ ✔ レイテンシ = 481Cycles@156MHz https://www.usenix.org/sites/default/files/conference/protected-files/blott_hotcloud13_slides.pdf
  • 28. 28 Memcached@Xilinx, ETH Zurich https://www.usenix.org/sites/default/files/conference/protected-files/blott_hotcloud13_slides.pdf
  • 29. 29 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について
  • 30. 30 I/O処理システムとしてのFPGA ✔ FPGAが持っているI/Oと関連コンポーネント ✔ I/O性能の予備的な評価 ✔ 高性能化のためのアーキテクチャ設計
  • 31. 31 I/Oと関連コンポーネント ✔ 汎用入出力ポート (GPIO) ✔ 高速シリアル通信ブロック ✔ 光トランシーバ
  • 32. 32 汎用入出力ポート ✔ いろいろな用途に使われる ✔ LEDチカチカとか...だけじゃない!! Xilinx, WP393 より ✔ HP I/Oは1,866Mb/s(DDR3)や1,600Mb/s LVDSをサポート
  • 33. 33 高速シリアル通信ブロック ✔ 12.5Gb/s,13.1Gbpsといった高速転送をサポート ✔ PCIeやSATA,あるいは生で利用. Xilinx, UG476 より
  • 34. 34 FPGA x 光 12chの高速トランシーバを光で伝送 http://www.hitechglobal.com/Boards/Virtex7_PCIE_Gen3.htm
  • 35. 35 I/O性能の予備的な評価 ✔ システムを作るにはI/Oは必須 ✔ 作り始める前に大体の性能を知っておきたい FPGA GbE, 10GbE 例えば↓のようなシステムを想定したときの だいたいの性能見積もりをしたい PCIe SATA HDD,SSD ホストコンピュータ LAN WAN
  • 36. 36 GbE GMII,RGMIIやSGMIIでPHYとFPGAを接続 ✔ PCS/PMA/PMDはPHYがやってくれる ✔ FPGAは125MHz*8bitでEthernetフレームを送受 FPGA PHY (ex. 88E1111) 8-bit TX/RX MAC層 @125MHz プリアンブルSFD 送り先MACアドレス送り先MACアドレスPID データSFD
  • 37. 37 GbE FPGAによるUDP/IPプロトコルスタックの転送性能 (e7UDP/IP @ e-trees.Japan) UDP データ長 Ethernet/IP/ UDPヘッダ長 Ethernetプリアンブル/ FCS/フレーム間ギャップ トータルパケット 占有長(Octet) 最大パケット 数/1Gbps 最大UDP 転送データレート (Mbps) 64 14+20+8 8+4+12 130 961538 492.3 256 14+20+8 8+4+12 322 388198 795.0 1024 14+20+8 8+4+12 1090 114678 939.4 1472 14+20+8 8+4+12 1538 81274 957.1
  • 38. 38 10GbE SFIでSFP+と接続 FPGA 10.3125Gbps 高速シリアルI/O PCS/ PMA層 MAC層 64-bit TX/RX @156.25MHz プリアンブルSFD 送り先MACアドレス送り先MACアドレスPID データSFD GbEの時の1/8のサイクル数でヘッダを処理しなければいけない!!
  • 39. 39 10GbE 10GbEのコアを対向で接続したときの 折り返しレイテンシとスループットを測定 = 約9.3Gbpsの転送レートは達成できている
  • 40. 40 PCIe Gen2 ✔ よくあるアクセラレータの実装を想定 ✔ KC705
  • 42. FPGA VC709 42 PCIe Gen3 PCIe Integrated Block cc cq pcie2axilite (xapp1201) rc rq bmd_writer/ bmd_reader config./ status DMA Engine SW Host Memory MIG On-board DDR3 int. Controller FIFO FIFO axi_writer axi_reader bmd_writer/ bmd_reader AXI-ST 256bit 250MHz AXI-MM 256bit 250MHz PC->FPGA: 2KByte FPGA->PC: 128Byte src(64bit), dest(64bit), Length(<= 8MB), dir
  • 43. 43 PCIe Gen3 ✔ *** Gen2 x8での読み書き性能の測定結果 Write (FPGA Board DDR3 -> Host Memory) 0 2000 4000 6000 8000 1000012000140001600018000 1600 1400 1200 1000 800 600 400 200 0 Bytes MBps Read (Host Memory -> FPGA Board DDR3) 0 2000 4000 6000 8000 1000012000140001600018000 2000 1800 1600 1400 1200 1000 800 600 400 200 0 Bytes MBps
  • 44. 44 SATA ✔ e7SATA: コア+専用FPGAボード2Gb DDR3L Spartan6 XC6SLX45T FMC
  • 45. 45 SATA ✔ e7SATA: コア+専用FPGAボード
  • 46. 46 SATA ✔ e7SATA FPGAボード内での読み出し性能測定 0 500000 1000000 1500000 2000000 2500000 3000000 3500000 4000000 4500000 300 250 200 150 100 50 0 Micron Intel Fujitsu(1st) Fujitsu (2nd〜) Bytes Micron: RealSSD C400, Intel: Intel SSD 330 Series, Fujitsu: MHV2080BS(HDD) MBps
  • 48. 48 LVDSによる高速通信 たとえばADC/DACなどを接続するとき ADC→FPGA: 245.76MHz DDR * 14bit FPGA→DAC: 491.52MHz DDR * 8bit http://www.sdlabo.org FMC150@4DSP
  • 49. データはどうせ移動させる 移動途中で副次的に処理できる 49 なぜFPGAでデータ処理をするか? 10G if Network stack Memcached DRAM Network adapter FPGA x86 DRAM motherboard Hash table Value store 図は https://www.usenix.org/sites/default/files/conference/protected-files/blott_hotcloud13_slides.pdf より
  • 50. 50 高性能化のためのアーキテクチャ ✔ 組み合わせ回路(アプリケーション特化演算器)と データ並列性の活用 ✔ パイプライン並列化 ✔ データハンドリング機構 リソース使用量,配線遅延を考慮しつつ 性能を最大化する実装をみつける必要がある
  • 51. 51 駄目な例 ... signal c: unsigned(WIDTH-1 downto 0); … process(clk) begin if clk'event and clk = '1' then c <= c + 1; end if; end process; ...
  • 52. 52 組み合わせ回路/データ並列性の活用 ✔ プロセッサと比べてFPGA回路のφは圧倒的に低速 ✔ 高速データ処理では1クロックでデータを捌く必要も ✔ 時にはソフトウェア実装とは全く違う場合も 条件 ・・・ 条件 v.s
  • 53. 53 パイプライン並列化 FIFO w [byte] f [Hz] 実行 ステージ スループット T [bps] FIFO 実行 ステージ 実行 ステージ パケットデータが d [byte] のとき全データ入力を受け取るのにかかる時間 = (d/w)*(1/f) [sec] 同様に、全データの出力にかかる時間 = (d/w)*(1/f) [sec] スループットT [bps]を実現するとき、パケットデータを(8*d)*(1/T) [sec]内で処理し続ける必要がある → 各モジュールで処理に使える時間 t は 8*d/T-2*d/(w*f) [sec] → (8*d/T-2*d/(w*f))/(1/f) [cycle]  たとえば、d=1500, T=1G, w=4, f=100Mのとき  1パケットあたりの処理にかけられるサイクル数は450サイクル.     f=200Mなら1650サイクル,w=16なら1012サイクル
  • 54. 54 データハンドリング機構 ✔ I/O(外部メモリや各種I/F)は共有する必要がある ✔ データ処理結果の一時的なバッファリングが必要 (FIFOやBRAMを使用することが多い) ✔ そんなに大きくはない + 自分で管理する必要がある ハンドシェイクジョインの出力をうまく捌くための適応型マージネットワークの例
  • 55. 55 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について
  • 56. 56 FPGAの開発環境について ✔ 開発フロー ✔ 標準インターフェースでIPの活用が容易に(なりつつある) ✔ 様々なDSLベースのFPGAシステム開発 ✔ 高位合成言語/高位合成処理系による開発
  • 57. 57 開発フロー ある程度のパソコンで設計可能 HDLを使ったRTL設計で所望のモジュールを実装 RTLシミュレーションによる動作検証 使用するFPGAにあわせた制約を定義 ツールで合成,配置配線,FPGA構成情報生成 実機で動作確認
  • 59. 59 開発フロー ある程度のパソコンで設計可能 HDLを使ったRTL設計で所望のモジュールを実装 RTLシミュレーションによる動作検証 使用するFPGAにあわせた制約を定義 ツールで合成,配置配線,FPGA構成情報生成 実機で動作確認 結構つらい,時間がかかる
  • 60. 60 標準I/FによるIPの活用 ✔ 検証済みモジュールを組み合わせてシステムを設計 ✔ 浮動小数点数演算コア ✔ FFT ✔ ビデオエンコーダ ✔ プロトコルスタック などなどなど ✔ AXI,Avalonといった標準I/FをFPGAベンダが定義
  • 61. 61 IPの活用 Xilinx IPインテグレータの設計画面の例
  • 62. 62 IP接続向けの標準I/F ✔ AXIやAvalonといたインターフェース ✔ メモリマップド or ストリーム クロック リセット アドレス 長さ サイズ 各種ctrl/設定 データ ストローブ データ有効 各種ステータス データ ストローブ データ有効
  • 63. 63 様々なDSLベースのシステム開発(1) RTL設計(あるいは少し抽象的なHW設計)を より楽にするためのDSL ✔ MyHDL (Pythonベース) ✔ JHDL (Javaベース) ✔ Chisel (Scalaベース) ✔ MaxCompiler (Javaベース) などなどなど
  • 64. 64 様々なDSLベースのシステム開発(2) 使用するプログラミングモデルに特化したDSL ✔ Bluespec (並行プログラミング) ✔ DIL (パイプラインプログラミング) ✔ FloPoCo (浮動小数点数パイプライン) などなどなど
  • 65. 65 様々なDSLベースのシステム開発(3) 実装したいアプリケーションに特化したDSL ✔ Spiral ←Linear Digital Processing ✔ HDL Coder ← 信号処理(Matlab) ✔ Optimus ← ストリーム処理 ✔ LINQ ← クエリプロセッシング などなどなど ✔ DSLを作るツールも.(たとえば,LMS/Scala)
  • 66. 66 Synthesijer.scala とは 私もSynthesijer.scalaというのを設計中 ✔ ''Scala''ベースのDSL ✔ signal, port: 状態を変更可能なオブジェクト ✔ expr: 副作用なしの式 ✔ sequencer: 状態遷移機械 ✔ module: モジュール全体 ✔ 上記のオブジェクトをScalaでインスタンス化.つなぎ合わせる.
  • 67. 67 Synthesijer.scala の例(1) ✔ Lチカ def generate_led() : Module = { val m = new Module("led") val q = m.outP("q") val counter = m.signal(32) q <= ref(counter, 5) val seq = m.sequencer("main") counter <= (seq.idle, VECTOR_ZERO) val s0 = seq.idle -> seq.add() counter <= (s0, counter + 1) return m } def generate_sim(target:Module, name:String) : SimModule = { val sim = new SimModule(name) val inst = sim.instance(target, "U") val (clk, reset, counter) = sim.system(10) inst.sysClk <= clk inst.sysReset <= reset return sim }
  • 68. 68 高位合成言語/高位合成処理系 ✔ Vivado HLS ✔ OpenCL対象の処理系 ✔ CyberWorkBench ✔ Cynthesizer ✔ Symphony C Compiler ✔ ImpulseC ✔ Lime などなどなど ...私もSynthesijerを設計中
  • 69. 69 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について
  • 72. 72 コンテンツ ✔ FPGAとは? ✔ FPGAを使ったアプリケーション研究開発事例 ✔ データ(I/O)処理システムとしてのFPGA ✔ FPGAの開発環境について