SlideShare a Scribd company logo
1 of 46
Download to read offline
FPGAベースのソーティング
アクセラレータの設計と実装
小林 諒平† 吉瀬 謙二†
†東京工業大学 大学院情報理工学研究科
2015年04月17日 10:50-11:15
コンピュータシステム研究会@明治大学中野キャンパス
ディペンダブルコンピューティングシステムおよび一般
講演時間20分 + 質疑5分
l FPGAベースのソーティングアクセラレータの
設計と実装
Ø キーワード
﹣ FPGA
﹣ アクセラレータ
﹣ ソーティングネットワーク
﹣ マージソートツリー
概要
1
……, 3, 1, 2, 4
1
2
34
2
はじめに
l FPGAによる高速化の研究が注目されている
FPGAベースのソーティングシステム(1/2)
3
データベース[1] 画像処理[2] データ圧縮[3]
[1] Rene Mueller et al, Sorting Networks on FPGAs, The VLDB Journal 2012
[2] Ratnayake, K et al,
An FPGA Architecture of Stable-Sorting on a Large Data Volume : Application to Video Signals,
CISS 2007
[3] Martinez, J et al,
An FPGA-based parallel sorting architecture for the Burrows Wheeler transform
ReConFig 2005
l しかし,提案されたシステムはさほど高性能
ではない.
l [1]では
Ø Xilinx Virtex-5に提案システムを実装し評価
Ø Virtex-5に組み込まれているPower PC440と比較
して1.1倍高速
l [2]では
Ø Altera Stratix IVに提案システムを実装し評価
Ø 666MHzで動作するARM CortexA9と比較して
13倍高速
FPGAベースのソーティングシステム(2/2)
4
[1] Rene Mueller et al, The VLDB Journal 2012
[2] Yuhui Bai et al, FPGA 14
l 以下の2つのソーティングアーキテクチャを
採用したハードウェアを提案
Ø ソーティングネットワーク
Ø マージソートツリー
提案手法
5
1
4
3
2
4
3
2
1
>
>
>
ソーティングネットワーク
FPGA
マージソートツリー
6
ソーティングネットワーク
l ワイヤ,コンパレータから構成される,数列を
ソートするネットワーク
l 例:4つの要素をソートするネットワーク
ソーティングネットワーク*
7
1
4
3
2
4
3
2
1
バブルソートのネットワーク
* Donald E. Knuth. The Art of Computer Programming. 1998.
l バッチャー奇遇マージソート*
Ø 最も高効率なソーティングネットワーク**
提案するハードウェアに組み込まれている
ソーティングネットワーク
8
IN OUT
16本の入出力を有するバッチャー奇遇マージソーティングネットワーク
* K. E. Batcher et al, Sorting Networks and Their Applications, AFIPS '68
** Rene Mueller et al, Sorting Networks on FPGAs, The VLDB Journal 2012
l ソーティングネットワークとは
Ø ワイヤ,コンパレータから構成される数列をソート
するネットワーク
Ø コンパレータの接続方法を変更することで様々な
ソーティングアルゴリズムを実装出来る
l 利点
Ø 要素を並列にソートできる
Ø 複雑な制御機構を必要としない
l 欠点
Ø 大きなデータセットには不向き
﹣ コンパレータの数が膨大に...
ソーティングネットワークのまとめ
9
10
マージソートツリー
l ソートセルを2分木状に接続することによって構
成される,マージソートを実行するデータパス
マージソートツリー*
11
>
>
>
FIFO
ソートセル>
4-way マージソートツリー
* Dirk Koch et al, FPGASort, FPGA 11
l マージソートツリーでソートが実行される様子
マージソートツリーでのソート
12
>
>
>
>
>
>
>
>
>
89
35
13
22 1
3
3
22
1
2
1
89
5
3
7 5
1
2
3
2
5
22
3
7
98
x
x: Invalid Value
Cycle N Cycle N+1 Cycle N+2
13
提案するソーティングハードウェアの
設計と実装
l ソーティングハードウェアのデータパス
Ø データ型は32bitの整数型
提案するソーティングハードウェア
14
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
デバッグ用のモジュール
15
例:1 256のソーティング
l Initial Data Generatorから生成された
初期データをDRAMにライトする
1 256を昇順にソートする
16
256 255 254 … 64 63 …
3 2 1
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
l 降順の並びのデータ列がDRAMに書き込まれる
Ø これを昇順にソートする
1 256を昇順にソートする
17
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
256
255
254
253
252
1
l DRAMから読み出してSorting Networkに
転送する
1 256を昇順にソートする
18
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
256
255
254
…
6463…321
256
255
254
253
252
1
l Sorting Networkで16要素ずつソートされる
Ø ソート済みのデータ列が16個できる
1 256を昇順にソートする
19
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
16 … 3 2 1 32 … 19 18 17 256 … 243 242 241
ソート済みのデータ列(16要素)
256
255
254
253
252
1
l Input Bufferに格納された後,Merge Sorter
Treeに送られる
1 256を昇順にソートする
20
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
241242243256…
225226240…
224…
208…
227
210211
194195
209
193
256
255
254
253
252
1
l Merge Sorter Treeの根からソートされた
データ列が出力される
1 256を昇順にソートする
21
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
241242243256…
226227240…
224…
208…
228
210211 209
193 194
195
…
196
201
202
225
203
256
255
254
253
252
1
l 16要素ずつソートされたデータ列がマージされ,
ソート済みのデータ列が4個できる
1 256を昇順にソートする
22
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
64 … 3 2 1 128 … 67 66 65 256 … 195 194 193
ソート済みのデータ列(64要素)
192 … 131 130 129256
255
254
253
252
1
l Merge Sorter Treeから出力されたデータ列を
DRAMにライトする
1 256を昇順にソートする
23
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
193 194 195 196 197
198
199 200 201 202 203 204 ……
この領域にライト256
255
254
253
252
1
l データ列が完全にソートされていない
(部分的にソートされた列が4つ)
Ø 再び,Merge Sorter Treeに通す必要がある
1 256を昇順にソートする
24
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
256
255
254
253
252
1
193
194
195
62
63
64
l DRAMから読み出してSorting Networkに
転送する
1 256を昇順にソートする
25
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
193
194
195
…
129130…626364
この領域からリード256
255
254
253
252
1
193
194
195
62
63
64
l このとき,Sorting Networkはただのデータの
通り道
Ø 既に部分ごとのソートは実行されているため
1 256を昇順にソートする
26
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
256
255
254
253
252
1
193
194
195
62
63
64
l Input Bufferに格納された後,Merge Sorter
Treeに送られる
1 256を昇順にソートする
27
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
256
255
254
253
252
1
193
194
195
62
63
64
193194195256…
129130192…
128…
64…
131
6667
23
65
1
l Merge Sorter Treeの根からソートされた
データ列が出力される
1 256を昇順にソートする
28
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
256
255
254
253
252
1
193
194
195
62
63
64
64…
1 2 3
…
4
51
52
225
53
193194195256…
129130192…
128…
131
6667 65
l Merge Sorter Treeから出力されたデータ列を
DRAMにライトする
1 256を昇順にソートする
29
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
1 2 3 4 5
6
7 8 9 10 11 12 ……
この領域にライト256
255
254
253
252
1
193
194
195
62
63
64
l データ列が完全にソートされた
Ø DRAM -> Sorting Network -> Merge Sorter Tree
-> DRAMのパスを通す事でデータ列をソートできる
﹣ パスを通す回数:logway数(要素数/16)
1 256を昇順にソートする
30
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
1
2
3
4
5
256
193
194
195
62
63
64
l 完全にソートされたデータ列をHost PCに送信
Ø ソフトウェアとソート結果を比較してアクセラレータ
が正しく動作しているかを検証
1 256を昇順にソートする
31
DRAM
Host PC
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
DRAMの中身
1
2
3
4
5
256
193
194
195
62
63
64
この領域からリード
1 2 3
4
56…
l 使用したプラットフォーム
Ø Xilinx FPGA VC707評価キット
ハードウェアの実装(1/2)
32
Power In
UART Port
JTAG Port
DDR3 SO-DIMM DRAM
(4GB*, 800MHz/1600Mbps)
* 評価ボード付属のメモリは1GB 800MHz/1600MbpsのDDR3 SO-DIMMメモリ
Virtex-7 VX485T FPGA
l Verilog HDLで回路を記述
l 論理合成ツールはVivado2014.4
Ø 合成オプションの設定はデフォルト
l DRAMコントローラの実装
Ø Xilinxが提供しているIPコアを利用
l Initial Data Generator
Ø 以下の数列の生成をサポート
﹣ 疑似乱数生成器Xorshift*によるランダムな数列
﹣ ソート済みの数列
﹣ 逆順にソートされた数列
ハードウェアの実装(2/2)
33
* George Marsaglia, Xorshift RNGs, Journal of Statistical Software 2003.
34
ソーティングハードウェアの評価
l  ソーティングの実行時間とハードウェアリソース
使用率を評価
Ø データセットは256M個 int型の要素(1要素:4Byte)
l  対戦相手:Intel Corei7-4770 @ 3.4GHz
Ø シングルスレッド
Ø gcc 4.8.2 (-O3オプション)
Ø ソーティングアルゴリズム
﹣ マージソート
﹣ クイックソート
l  実行時間の計測方法
Ø FPGA -> 実行サイクル数をカウンタで取得して算出
Ø CPU -> gettimeofday
評価
35
l Xorshiftの場合で比較
8-wayでの性能向上率
﹣ 3.05倍(マージソート比), 2.42倍(クイックソート比)
Ø 16-wayでの性能向上率
﹣ 4.07倍(マージソート比), 3.24倍(クイックソート比)
ソーティングの実行時間の比較
36
0
10
20
30
40
50
60
merge sort quick sort 8-way 16-way
SortingProcessTime[sec]
xorshift
sorted
reverse
ü  動作周波数
ロジック -> 200MHz
DRAM -> 800MHz
l 8-way, 16-wayの構成のハードウェアリソース
使用率
ハードウェアリソース使用率の評価
37
0
10
20
30
40
50
60
70
80
90
100
FF LUT LUT RAM BlockRAM
HardwareResourceUtilization[%]
8-way
16-way
l マージソートツリーを複製してスループット
を向上
マージソートツリーの複製による性能向上
38
DRAM
Host PC
512-bit
shift register
512-bit
shift register
512-bit
shift register
>
>
>
32
32
32
32
3232
32
32
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512-bit
shift register
32
512
512
512
512
Input Buffer
Merge Sorter Tree
512-bit
shift register
Initial Data
Generator
Sorting
Network
512
512
512
512
DRAM
Controller
UART
Controller
Output Buffer 32512512
512
512
512
512
1
64
FPGA
0
10
20
30
40
50
60
merge sort quick sort 8-way/8-parallel
SortingProcessTime[sec]
xorshift
sorted
reverse
l Xorshiftの場合で比較
Ø マージソートと比較して10.06倍高速化
Ø クイックソートと比較して8.01倍高速化
性能評価
(マージソートツリーを8個複製)
39
ü  動作周波数
ロジック -> 200MHz
DRAM -> 800MHz
10.06x
8.01x
l 8-way/8-parallelの構成のハードウェア
リソース使用率
ハードウェアリソース使用率の評価
40
0
10
20
30
40
50
60
70
80
90
100
FF LUT LUT RAM BlockRAM
HardwareResourceUtilization[%]
Input BufferとOutput Bufferの
エントリ数を適切に設定すれば
改善される可能性がある
l 8-way/8-parallelのソーティングハードウェア
Ø 一般的なデスクトップと比較して最大10倍高速に
動作
Ø しかし,関連研究[Casperら, FPGA 14]と比較して
約7倍低速...
l 関連研究が高速である理由
Ø way数が多い(8k-way 2)ため,FPGA内でソート
出来る要素が多い
Ø マージソートツリーが高スループット
関連研究との比較
41
l 例:1サイクルに4要素出力できるソートセル
Ø フィードバックパスを取り入れているのがポイント
関連研究[Casperら, FPGA 14]の手法
42
Hardware Acceleration of Database Operation の
154ページFigure 6から引用
l 関連研究より更に高速なソーティング
ハードウェアの実現
Ø ソーティングロジックのスループットの向上
﹣ マージソートツリーの改良
﹣ マージソートツリーの複製
Ø メモリバンド幅の使用効率の手法
﹣ ソーティングロジックのスループットが高くなる
→メモリバンド幅がシステム全体のボトルネック
﹣ メモリバンド幅の使用効率を向上させ,かつ動作周波数
を低下させない手法が必要
今後の方針
43
44
まとめと今後の課題
l  本研究の主張
Ø  2つの手法を組み合わせた高速なソーティングシステムを提案
﹣ ソーティングネットワーク,マージソートツリー
Ø  提案したシステムをHDLで記述し,正しく安定して動作している
ことを確認
l  性能(8-way/8-parallel)
Ø  周波数: 200MHz
Ø  Intel Corei7-4770 @ 3.4GHz(シングルスレッド)と比較して
﹣ 10.06倍高速(マージソート比),8.01倍高速(クイックソート比)
l  関連研究[Casperら, FPGA 14]との比較
Ø  我々のシステムは約7倍低速である
l  今後の課題
Ø  ソーティングアクセラレータを更に高速化
﹣ マージソートツリーの改良
﹣ メモリバンド幅の使用効率を向上させるための手法の検討
まとめと今後の課題
45

More Related Content

What's hot

高位合成友の会(2018秋)スライド
高位合成友の会(2018秋)スライド高位合成友の会(2018秋)スライド
高位合成友の会(2018秋)スライド一路 川染
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02maruyama097
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法Kentaro Sano
 
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基礎知識なおき きしだ
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータShinya Takamaeda-Y
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)Shinya Takamaeda-Y
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA Japan
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようShinya Takamaeda-Y
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Takefumi MIYOSHI
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみたHiroki Nakahara
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)Shinya Takamaeda-Y
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかなおき きしだ
 

What's hot (20)

高位合成友の会(2018秋)スライド
高位合成友の会(2018秋)スライド高位合成友の会(2018秋)スライド
高位合成友の会(2018秋)スライド
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
Fpga local 20130322
Fpga local 20130322Fpga local 20130322
Fpga local 20130322
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
 
Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
 
Vyatta 201310
Vyatta 201310Vyatta 201310
Vyatta 201310
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGA
FPGAFPGA
FPGA
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
 
Reconf_201409
Reconf_201409Reconf_201409
Reconf_201409
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
 

Viewers also liked

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
 
Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...
Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...
Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...Ryohei Kobayashi
 
IEICE technical report (RECONF), January 2013.
IEICE technical report (RECONF), January 2013.IEICE technical report (RECONF), January 2013.
IEICE technical report (RECONF), January 2013.Ryohei Kobayashi
 
CMPP 2012 held in conjunction with ICNC’12
CMPP 2012 held in conjunction with ICNC’12CMPP 2012 held in conjunction with ICNC’12
CMPP 2012 held in conjunction with ICNC’12Ryohei Kobayashi
 
3bOS: A flexible and lightweight embedded OS operated using only 3 buttons
3bOS: A flexible and lightweight embedded OS operated using only 3 buttons3bOS: A flexible and lightweight embedded OS operated using only 3 buttons
3bOS: A flexible and lightweight embedded OS operated using only 3 buttonsRyohei Kobayashi
 
A survey of how to efficiently implement application-specific hardware on an ...
A survey of how to efficiently implement application-specific hardware on an ...A survey of how to efficiently implement application-specific hardware on an ...
A survey of how to efficiently implement application-specific hardware on an ...Ryohei Kobayashi
 
The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014
The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014
The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014Codemotion
 
FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...
FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...
FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...Ryohei Kobayashi
 
私が上智に通って唯一誇れること
私が上智に通って唯一誇れること私が上智に通って唯一誇れること
私が上智に通って唯一誇れることRyohei Kobayashi
 
A Cost-Effective and Scalable Merge Sort Tree on FPGAs
A Cost-Effective and Scalable Merge Sort Tree on FPGAsA Cost-Effective and Scalable Merge Sort Tree on FPGAs
A Cost-Effective and Scalable Merge Sort Tree on FPGAsTakuma Usui
 
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011 『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011 Koichi Hamada
 
A High-speed Verilog HDL Simulation Method using a Lightweight Translator
A High-speed Verilog HDL Simulation Method using a Lightweight TranslatorA High-speed Verilog HDL Simulation Method using a Lightweight Translator
A High-speed Verilog HDL Simulation Method using a Lightweight TranslatorRyohei Kobayashi
 
慣れない言語で 車輪の再発明をしよう〜JavaScriptでツリーソート編〜
慣れない言語で車輪の再発明をしよう〜JavaScriptでツリーソート編〜慣れない言語で車輪の再発明をしよう〜JavaScriptでツリーソート編〜
慣れない言語で 車輪の再発明をしよう〜JavaScriptでツリーソート編〜Hiromu Shioya
 

Viewers also liked (15)

Presentacion de orange institucional
Presentacion de orange institucionalPresentacion de orange institucional
Presentacion de orange institucional
 
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
 
Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...
Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...
Fully-Functional FPGA Prototype with Fine-Grain Programmable Body Biasing (FP...
 
IEICE technical report (RECONF), January 2013.
IEICE technical report (RECONF), January 2013.IEICE technical report (RECONF), January 2013.
IEICE technical report (RECONF), January 2013.
 
CMPP 2012 held in conjunction with ICNC’12
CMPP 2012 held in conjunction with ICNC’12CMPP 2012 held in conjunction with ICNC’12
CMPP 2012 held in conjunction with ICNC’12
 
3bOS: A flexible and lightweight embedded OS operated using only 3 buttons
3bOS: A flexible and lightweight embedded OS operated using only 3 buttons3bOS: A flexible and lightweight embedded OS operated using only 3 buttons
3bOS: A flexible and lightweight embedded OS operated using only 3 buttons
 
A survey of how to efficiently implement application-specific hardware on an ...
A survey of how to efficiently implement application-specific hardware on an ...A survey of how to efficiently implement application-specific hardware on an ...
A survey of how to efficiently implement application-specific hardware on an ...
 
hpc2013_20131223
hpc2013_20131223hpc2013_20131223
hpc2013_20131223
 
The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014
The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014
The MySQL and MariaDB story - Michael "Monty" Widenius - Codemotion Milan 2014
 
FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...
FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...
FACE: Fast and Customizable Sorting Accelerator for Heterogeneous Many-core S...
 
私が上智に通って唯一誇れること
私が上智に通って唯一誇れること私が上智に通って唯一誇れること
私が上智に通って唯一誇れること
 
A Cost-Effective and Scalable Merge Sort Tree on FPGAs
A Cost-Effective and Scalable Merge Sort Tree on FPGAsA Cost-Effective and Scalable Merge Sort Tree on FPGAs
A Cost-Effective and Scalable Merge Sort Tree on FPGAs
 
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011 『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
 
A High-speed Verilog HDL Simulation Method using a Lightweight Translator
A High-speed Verilog HDL Simulation Method using a Lightweight TranslatorA High-speed Verilog HDL Simulation Method using a Lightweight Translator
A High-speed Verilog HDL Simulation Method using a Lightweight Translator
 
慣れない言語で 車輪の再発明をしよう〜JavaScriptでツリーソート編〜
慣れない言語で車輪の再発明をしよう〜JavaScriptでツリーソート編〜慣れない言語で車輪の再発明をしよう〜JavaScriptでツリーソート編〜
慣れない言語で 車輪の再発明をしよう〜JavaScriptでツリーソート編〜
 

Similar to FPGAベースのソーティングアクセラレータの設計と実装

IEICE technical report (RECONF), January 2015.
IEICE technical report (RECONF), January 2015.IEICE technical report (RECONF), January 2015.
IEICE technical report (RECONF), January 2015.Takuma Usui
 
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
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiNoriyuki Yamaguchi
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishYohei Azekatsu
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlowToshiki Tsuboi
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会Hitoshi Sato
 
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Hiroshi Matsumoto
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstreamwata2ki
 
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
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めYou&I
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Yukio Kumazawa
 
Network as a Service - Data plane evolution and abstraction by NSM
Network as a Service - Data plane evolution and abstraction by NSMNetwork as a Service - Data plane evolution and abstraction by NSM
Network as a Service - Data plane evolution and abstraction by NSMMiya Kohno
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fixstars Corporation
 
オリジナルMIDIシーケンサ 開発ノート
オリジナルMIDIシーケンサ 開発ノートオリジナルMIDIシーケンサ 開発ノート
オリジナルMIDIシーケンサ 開発ノートyou_ucchy
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料直久 住川
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsKohei KaiGai
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)Ryuuta Tsunashima
 

Similar to FPGAベースのソーティングアクセラレータの設計と実装 (20)

IEICE technical report (RECONF), January 2015.
IEICE technical report (RECONF), January 2015.IEICE technical report (RECONF), January 2015.
IEICE technical report (RECONF), January 2015.
 
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...
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publish
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlow
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstream
 
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
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
Zenkoku78
Zenkoku78Zenkoku78
Zenkoku78
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
 
Network as a Service - Data plane evolution and abstraction by NSM
Network as a Service - Data plane evolution and abstraction by NSMNetwork as a Service - Data plane evolution and abstraction by NSM
Network as a Service - Data plane evolution and abstraction by NSM
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
オリジナルMIDIシーケンサ 開発ノート
オリジナルMIDIシーケンサ 開発ノートオリジナルMIDIシーケンサ 開発ノート
オリジナルMIDIシーケンサ 開発ノート
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
 

FPGAベースのソーティングアクセラレータの設計と実装