SlideShare a Scribd company logo
1 of 40
Download to read offline
手軽な外付けFPGAアクセラレータによる
ソーティングの高速化
2015/03/18 情報処理学会 第77回全国大会 @京都大学吉田キャンパス
FPGAとアクセラレータ[3K会場] 発表12分 + 質疑応答3分
☆臼井 琢真†1 吉瀬 謙二†2
†1 東京工業大学 工学部情報工学科
†2東京工業大学 大学院情報理工学研究科
High-speed Sorting using Portable FPGA Accelerator
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
1
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
2
FPGAアクセラレータ
►特定の処理を低消費電力かつ高速に実行可能
►科学技術計算やデータベース処理など
►IntelやdwangoがFPGAエンジニアを募集
目的: 手軽な外付けFPGAアクセラレータ
►様々な環境で使える,持ち運べる
►ホストPCとのデータ送受信のためのインターフェースが重要
►対象アプリ: 32bit要素のソーティング
Motivation
3
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
5
FPGA-ホストPC間のインターフェース比較
USB3.0は,外付けインターフェースの中でも
接続が非常に容易で,様々な環境で使える
PCI Express x1 に迫る高い転送速度
►通信速度がボトルネックになりにくい
→USB3.0を選択
6
接続方法 USB3.0 USB2.0 UART Ethernet PCI Express
最高速度(理論値) 5Gbps 480Mbps 数Mbps 1Gbps@GbE
10Gbps@XGbE
8GB/s@2.0 x8
1GB/s@2.0 x1
内蔵/外付 外付 外付 外付 外付 内蔵
最新PCでの普及率 ○ ○ × ×(XGbE) △
ホットスワップ ○ ○ × ○ ○
バスパワー 900mA,5V 500mA,5V × × 25/75W@x16
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
7
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
8
提案するFPGAアクセラレータ
9
持ち運べる
様々な環境で
使える USB3.0
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
10
複数のソート済みデータ列を1つにマージするデータパス
図は 4-way Merge Sorter Tree
ソート対象のデータ列が入力数より多い場合は複数回通す必要
Merge Sorter Tree
11
参考: A high performance sorting architecture exploiting run-time reconfiguration on fpgas for large problem sorting.
(Dirk Koch and Jim Torresen, FPGA ’11,)
>
>
> > Comparator
Short FIFO
入力レーン
=
way
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
12
2
Memory
>
>
>
4
6
5
3
1
7
8
Unit: ソート済みデータ列
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
13
Memory
>
>
>
2
6
3
7
8
2
4
6
5
3
1
7
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
14
Memory
>
>
>
2
6
3
7
4
5
1
8
3
2
8
4
5
1
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
15
Memory
>
>
>
6
7
2
3
7
6 2
8
4
5
1
8
4
5
1
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
16
Memory
>
>
>
6
37
3
8
2
4
5
1
8
4
5
1
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
17
Memory
>
> 6
7
6
8
2
3
>
4
5
1
8
4
5
1
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
18
Memory
>
>
>
4
5
1
8
2
3
6
7
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
19
Memory
>
>
>
1
4
5
8
完全にはソートされておらず
もう一度通す必要
Unit
Unit
Unit数は1/[way数]
となる
2
3
6
7
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
20
Memory
>
>
>
1
2
3
4
5
6
7
8
System Architecture
21
32bit
64bit,
2要素ずつ
ソート
64bit
System Architecture
22
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
23
特電 Artix-7 評価ボード
24
72mm
50mm
USB3.0 Peripheral
Controller
持ち運べる
USB3.0の通信速度
25
0.25 3.84
39.1
221
330
354
0.13 2.04
25.1
196
334
355
0
50
100
150
200
250
300
350
400
16 Bytes 256 Bytes 4K Bytes 64K Bytes 1M Bytes 16M Bytes
Bandwidth[MB/s]
Data Size
Host PC → FPGA
FPGA → Host PC
公称限界値: 360[MB/s]
今回ソート対象のデータ列は32M要素で128MB
限界転送速度達成の見込み
実装・検証
FPGA
8-way Merge Sorter Treeを実装
Xilinx Artix-7 XC7A100T @ 100MHz
ハードウェア記述言語: Verilog HDL
DRAM Controller: Xilinx Memory Interface
Generator(MIG) 7
Interface Moduleに特電IP(VHDL)を使用
H/W使用量 – Block RAM: 20%, Slice: 18%
検証アプリ
VisualStudio2013にてC言語で開発
OS: Windows 7
26
27
検証アプリコード概略
01:#define ELM = 32*1024*1024;
02:int data[ELM];
03:
04:int (main){
05: init(data); // データ列生成・初期化
06:
07: start = getTime();
08: USBWrite(data,ELM); // Send
09: USBRead(data,ELM); // Receive
10: end = getTime();
11:
12: errchk();
13: elapsed_time = end – start;
14: display(elapsed_time);
15:}
01:#define ELM = 32*1024*1024;
02:int data[ELM];
03:
04:int (main){
05: init(data);
06:
07: start = getTime();
08: MergeSort(data,0,ELM-1);
09:
10: end = getTime();
11:
12: errchk();
13: elapsed_time = end – start;
14: display(elapsed_time);
15:}
FPGAアクセラレータに
ソーティングさせる場合
ホストPC上のみで
ソーティングを行う場合
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
28
評価
パフォーマンスだけでなく高いPortabilityも評価するため
評価環境としてPCを4台用意
►USB3.0対応2台,USB2.0対応2台
►デスクトップとラップトップ
対象アプリ: 4バイトint型32M要素のソーティング
各PCにて,以下の二つの場合の実行時間を比較
►FPGAアクセラレータにソーティングをオフロード
►ホストPC上のみでマージソート
29
4種類の評価環境 – Computer A
30
Core i7-3770K
@3.50GHz
16GB DDR3 Memory
Supports USB3.0
High
Performance!
4種類の評価環境 – Computer B
31
Supports USB3.0
Core i3-4010U
@1.70GHz
4GB DDR3 Memory
Portable!
4種類の評価環境 – Computer C
32
Only supports USB2.0
Core i7-870
@2.93GHz
4GB DDR3 Memory
4種類の評価環境 – Computer D
33
Core Duo T2400
@1.83GHz
1GB DDR2 Memory
Only supports USB2.0
0
2
4
6
8
10
12
CPU FPGA CPU FPGA CPU FPGA CPU FPGA
Computer A Computer B Computer C Computer D
ElapsedTime[s]
Data Transfer
Sorting only
USB3.0
USB2.0
評価―int型32M個のソーティング
34
0
2
4
6
8
10
12
CPU FPGA CPU FPGA CPU FPGA CPU FPGA
Computer A Computer B Computer C Computer D
ElapsedTime[s]
Data Transfer
Sorting only
USB3.0
USB2.0
分析
35
性能向上不可能
通信時間 > CPUにおけるソーティング時間
0
2
4
6
8
10
12
CPU FPGA CPU FPGA CPU FPGA CPU FPGA
Computer A Computer B Computer C Computer D
ElapsedTime[s]
Data Transfer
Sorting only
USB3.0
USB2.0
分析
36
通信時間
大幅減
USB3.0で
性能向上
4.12 3.27 8.67 3.28
0
2
4
6
8
10
CPU FPGA CPU FPGA
Computer A Computer B
ElapsedTime[s]
評価 @USB3.0環境
37
2.64x
Faster
1.26x
Faster
Merge Sorter Treeを32-wayに拡張しComputer AのCPU比
1.88倍の高速化達成
様々な環境で
使える
発表の流れ
Motivation
FPGA-ホスト間のインターフェース検討
提案するFPGAソーティングアクセラレータ
►概要
►Merge Sorter Tree, System Architecture
►実装・検証
評価
►評価環境
►アクセラレータの性能評価
結論・今後の課題
38
結論・今後の課題
結論
►手軽な外付けFPGAアクセラレータを提案
◇ホストPCとの接続インターフェースにUSB3.0を採用
►対象アプリ: ソーティング
►USB2.0環境では提案するFPGAアクセラレータを用いても性能が向上しない
►USB3.0環境では性能が向上
◇ラップトップPC比2.60倍
◇デスクトップPC比1.26倍→32-way拡張時1.88倍
今後の課題
►より高速なソーティングアクセラレータの実装
►他のアプリケーションの高速化
◇グラフ処理,画像処理,データ圧縮etc…
39
発表履歴・予定
電子情報通信学会研究会(RECONF) 発表 (2015/01/30)
►「USB3.0接続の手軽で高速なFPGAアクセラレータ」
►臼井 琢真,小林 諒平,吉瀬 謙二
ARC 2015 POSTER SESSION (2015/04/15-17)
►“A Challenge of Portable and High-speed FPGA Accelerator”
►Takuma USUI, Ryohei KOBAYASHI, Kenji KISE
40

More Related Content

What's hot

What's hot (20)

FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
Fpga local 20130322
Fpga local 20130322Fpga local 20130322
Fpga local 20130322
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
20140310 fpgax
20140310 fpgax20140310 fpgax
20140310 fpgax
 
RPiの見つけ方
RPiの見つけ方RPiの見つけ方
RPiの見つけ方
 
ICD/CPSY 201412
ICD/CPSY 201412ICD/CPSY 201412
ICD/CPSY 201412
 
FPGAベースのソーティングアクセラレータの設計と実装
FPGAベースのソーティングアクセラレータの設計と実装FPGAベースのソーティングアクセラレータの設計と実装
FPGAベースのソーティングアクセラレータの設計と実装
 
Fpgax 20130604
Fpgax 20130604Fpgax 20130604
Fpgax 20130604
 
Bluetooth Low Energy入門講座 -part2
Bluetooth Low Energy入門講座 -part2Bluetooth Low Energy入門講座 -part2
Bluetooth Low Energy入門講座 -part2
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LT
 
FPGAって、何?
FPGAって、何?FPGAって、何?
FPGAって、何?
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器
 
なにわTech20160827
なにわTech20160827なにわTech20160827
なにわTech20160827
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
 

Similar to High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Convention, March 2015)

seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
Hirotaka Kawata
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
Yukio Saito
 
プロトコル変換ゲートウェイPTGWの 実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの 実証実験と評価
Takashi Kishida
 

Similar to High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Convention, March 2015) (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.
 
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試みFPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
楽天ネットワークエンジニアたちが目指す、次世代データセンターとは
楽天ネットワークエンジニアたちが目指す、次世代データセンターとは楽天ネットワークエンジニアたちが目指す、次世代データセンターとは
楽天ネットワークエンジニアたちが目指す、次世代データセンターとは
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
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
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
プロトコル変換ゲートウェイPTGWの 実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの 実証実験と評価
 

High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Convention, March 2015)