SlideShare a Scribd company logo
USB3.0接続の手軽で高速な
FPGAアクセラレータの設計と実装
2015/01/30 リコンフィギャラブルシステム研究会 @日吉
FPGA応用システム (14:55-15:15) 発表17分 + 質疑応答3分
☆臼井 琢真†1 小林 諒平†2 吉瀬 謙二†2
†1 東京工業大学 工学部情報工学科
†2東京工業大学 大学院情報理工学研究科
Design and Implementation of
Portable and High-speed FPGA Accelerator
employing USB3.0
発表概要
FPGAアクセラレータを用いたアプリ高速化のトレンド
FPGAアクセラレータを個人レベルで「手軽に」使う手段?
►様々なPCで使えて,かつなるべく持ち運べるものが望ましい
►ホストPCとFPGAアクセラレータを繋ぐインターフェイスに注目
USB3.0をインターフェイスに選択
►USBを搭載する様々なPCで使える
►モバイル環境での使用も可能
►様々なPCで評価
高速化するアプリにソーティング(int型32M個)を選択
アクセラレータを設計・実装・評価
1
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
2
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
3
題目「手軽」
4
Portable
様々な環境で
簡単に使える
持ち運べる
手軽
Interface
FPGAとの接続Interface比較
接続方法 UART USB3.0 PCI Express Ethernet
最高速度(理論値) 数Mbps 5Gbps 8GB/s @2.0 x8
1GB/s @2.0 x1
1Gbps@GbE
10Gbps@XGbE
接続の容易さ 簡単 簡単 少々面倒 簡単
ホットスワップ × ○ ○ ○
バスパワー × 900mA, 5V 25W/75W@ x16 ×
最新PCでの普及率 × ○ △ ○(GbE)
USB3.0はUARTよりは圧倒的に速い
PCI ExpressやXGbEには速度が劣る
しかし接続が非常に容易→手軽
6
我々の提案するFPGAアクセラレータ
6
持ち運べる
手軽様々な環境で
簡単に使える
USB3.0
対象アプリ: 32bitのint型要素32M個(128MB)のソーティング
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
7
32M要素(int型)のソーティング (@Core i7 3770K)
8
2.75 0.00 0.004.20 1.56 1.49
0
1
2
3
4
5
6
7
8
9
10
Random Sorted Reverse
ElapsedTime[s]
Type of Sequence
Quick Sort
Merge Sort
Over
2h
Over
2h
Merge Sortを
比較対象
2時間以上
(最悪計算𝑂(𝑛2))
2.75 0.00 0.004.20 1.56 1.49
0
1
2
3
4
5
6
7
8
9
10
Random Sorted Reverse
ElapsedTime[s]
Type of Sequence
Quick Sort
Merge Sort
Over
2h
Over
2h
32M要素(int型)のソーティング (@Core i7 3770K)
9
目標
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
10
System Architecture
11
32bit
64bit,
2要素ずつ
ソート
64bit
400MB/s
Merge Sorter Tree
複数のソート済みデータ列を1つにマージするデータパス
ソート対象のデータ列がway数より多い場合は複数回通す必要
図は4-wayだが,実際は8-wayのものを実装
12
参考: A high performance sorting architecture exploiting run-time reconfiguration on fpgas for large problem sorting.
(Dirk Koch and Jim Torresen, FPGA ’11,)
入力レーン数
=
way数
>
>
> > Comparator
Short FIFO
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
13
2
Memory
>
>
>
4
6
5
3
1
7
8
Unit: ソート済みデータ列
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
14
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}
15
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}
16
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}
17
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}
18
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} Unit数は8
19
Memory
>
>
>
4
5
1
8
2
3
6
7
Merge Sorter Tree
data = {2, 4, 6, 5, 3, 1, 7, 8}
20
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}
21
Memory
>
>
>
1
2
3
4
5
6
7
8
Merge Sorter Tree
data = {2, 4, 5, 6, 1, 3, 7, 8}
22
2
Memory
>
>
>
4
5
6
1
3
7
8
2
5
1
7
System Architecture (First step)
23
System Architecture (First step)
24
System Architecture (First step)
25
System Architecture (First step)
26
System Architecture (First step)
27
Not Fully
Sorted!
System Architecture (First step)
28
System Architecture (First step)
29
System Architecture (First step)
30
一度に書き込む量を
増やす
一度に書き込む
データが
少ないと低速
System Architecture (First step)
31
System Architecture (Intermediate steps)
32
DRAMから
読み出し
System Architecture (Intermediate steps)
33
System Architecture (Last step)
34
Fully
Sorted!
System Architecture (Last step)
35
Send back the
Fully Sorted Data
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
36
特電 Artix-7 評価ボード
37
72mm
50mm
USB3.0 Peripheral
Controller
持ち運べる
実装・検証
FPGA
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
38
検証アプリコード概略
43
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: finalize(data, 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: finalize(data, elapsed_time);
15:}
FPGAアクセラレータに
ソーティングさせる場合
ホストPC上のみで
ソーティングを行う場合
USB3.0の通信速度
40
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
限界転送速度達成の見込み
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
41
評価
パフォーマンスだけでなく高いPortabilityも評価するため
評価環境としてPCを4台用意
►USB3.0対応2台,USB2.0対応2台
►デスクトップとラップトップ
対象アプリ: 4バイトint型32M要素のソーティング
各PCにて,以下の二つの場合の実行時間を比較
►FPGAアクセラレータにソーティングをオフロード
►ホストPC上のみでマージソート
42
4種類の評価環境 – Computer A
43
Core i7-3770K
@3.50GHz
16GB DDR3 Memory
Supports USB3.0
High
Performance!
4種類の評価環境 – Computer B
44
Supports USB3.0
Core i3-4010U
@1.70GHz
4GB DDR3 Memory
Portable!
4種類の評価環境 – Computer C
45
Supports only USB2.0
Core i7-870
@2.93GHz
4GB DDR3 Memory
4種類の評価環境 – Computer D
46
Core Duo T2400
@1.83GHz
1GB DDR2 Memory
Supports only USB2.0
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
47
0
2
4
6
8
10
12
FPGA CPU FPGA CPU FPGA CPU FPGA CPU
Computer A Computer B Computer C Computer D
ElapsedTime[s]
Sorting
Data Transfer from Host PC to FPGA
Data Transfer from FPGA to Host PC
評価結果
48
USB3.0
USB2.0
評価結果 – 分析
49
0
2
4
6
8
10
12
FPGA CPU FPGA CPU FPGA CPU FPGA CPU
Computer A Computer B Computer C Computer D
ElapsedTime[s]
Sorting
Data Transfer from Host PC to FPGA
Data Transfer from FPGA to Host PC
性能向上不可能
USB2.0
USB3.0
通信時間 > CPUにおけるソーティング時間
評価結果 – 分析
50
0
2
4
6
8
10
12
FPGA CPU FPGA CPU FPGA CPU FPGA CPU
Computer A Computer B Computer C Computer D
ElapsedTime[s]
Sorting
Data Transfer from Host PC to FPGA
Data Transfer from FPGA to Host PC
通信時間
大幅減
ソーティング自体の時間
変化なし
USB3.0で
性能向上
USB3.0
評価結果
51
3.27 4.20 3.33 8.67
0
1
2
3
4
5
6
7
8
9
10
FPGA CPU FPGA CPU
Computer A Computer B
ElapsedTime[s]
1.28x
Faster
2.60x
Faster
USB3.0環境
様々な環境で
簡単に使える
発表の流れ
Motivation
►題目「手軽」 - USB3.0検討
►予備評価 – ホストPCにおけるソーティング
FPGAアクセラレータの設計・実装
►System Architecture, Merge Sorter Tree
►実装・検証
評価
►評価環境
►ソーティング性能評価・分析
結論・今後の課題
52
結論
USB3.0接続の手軽かつ高速なFPGAアクセラレータを提案
対象アプリ: ソーティング
USB2.0環境では提案するFPGAアクセラレータを用いても
性能が向上しない
►特に,Computer C では
通信時間がCPUにおけるソーティング時間を上回っている
USB3.0環境では性能が向上
►デスクトップPC比 1.28倍
►モバイルPC比 2.60倍
►高いPortabilityで手軽
53
今後の課題
Merge Sorter Tree のway数拡張
►更なる性能向上の見込み
他のアプリの高速化
►グラフ処理,画像処理,データ圧縮 etc…
54

More Related Content

PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
外部データラッパによる PostgreSQL の拡張
PPTX
Windows と leopard
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
PDF
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PDF
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
PDF
Postgre sql9.3 newlockmode_and_etc
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
外部データラッパによる PostgreSQL の拡張
Windows と leopard
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
Postgre sql9.3 newlockmode_and_etc

What's hot (20)

PDF
並列クエリを実行するPostgreSQLのアーキテクチャ
PDF
pg_bigmを用いた全文検索のしくみ(前編)
PDF
Lt ingaoho-jsonb+postgeres fdw
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
いまさら聞けないPostgreSQL運用管理
PDF
Pgunconf 20121212-postgeres fdw
PDF
C16 45分でわかるPostgreSQLの仕組み by 山田努
PDF
(JP) GPGPUがPostgreSQLを加速する
PDF
PostgreSQL13 新機能紹介
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
perfを使ったpostgre sqlの解析(後編)
PDF
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
シンプルでシステマチックな Linux 性能分析方法
PDF
まずやっとくPostgreSQLチューニング
PDF
20130203 OSS-DB Exam Silver 技術解説無料セミナー
PDF
9.3で進化した外部テーブル
PPTX
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PPTX
Dbts2012 unconference wttrw_yazekatsu_publish
PDF
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
並列クエリを実行するPostgreSQLのアーキテクチャ
pg_bigmを用いた全文検索のしくみ(前編)
Lt ingaoho-jsonb+postgeres fdw
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
いまさら聞けないPostgreSQL運用管理
Pgunconf 20121212-postgeres fdw
C16 45分でわかるPostgreSQLの仕組み by 山田努
(JP) GPGPUがPostgreSQLを加速する
PostgreSQL13 新機能紹介
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
perfを使ったpostgre sqlの解析(後編)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
シンプルでシステマチックな Linux 性能分析方法
まずやっとくPostgreSQLチューニング
20130203 OSS-DB Exam Silver 技術解説無料セミナー
9.3で進化した外部テーブル
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
Dbts2012 unconference wttrw_yazekatsu_publish
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
Ad

Similar to IEICE technical report (RECONF), January 2015. (20)

PDF
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
PDF
Bthesis - A High-speed and Portable FPGA Accelerator
PDF
FPGAベースのソーティングアクセラレータの設計と実装
PPTX
Myoshimi extreme
PDF
Zenkoku78
PDF
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
PDF
第9回ACRiウェビナー_日立/島田様ご講演資料
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
ソフトウェア技術者から見たFPGAの魅力と可能性
PDF
Tuning, etc.
PDF
[DL Hacks]FPGA入門
PDF
ACRi_webinar_20220118_miyo
PDF
FPGA startup 第一回 LT
PDF
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
PDF
El text.tokuron a(2019).watanabe190613
PDF
20220525_kobayashi.pdf
PDF
ICD/CPSY 201412
PPTX
総合技術特別講義講演資料2017
PDF
Reconf_201409
PDF
短距離古典分子動力学計算の 高速化と大規模並列化
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
Bthesis - A High-speed and Portable FPGA Accelerator
FPGAベースのソーティングアクセラレータの設計と実装
Myoshimi extreme
Zenkoku78
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
第9回ACRiウェビナー_日立/島田様ご講演資料
FPGA・リコンフィギャラブルシステム研究の最新動向
ソフトウェア技術者から見たFPGAの魅力と可能性
Tuning, etc.
[DL Hacks]FPGA入門
ACRi_webinar_20220118_miyo
FPGA startup 第一回 LT
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
El text.tokuron a(2019).watanabe190613
20220525_kobayashi.pdf
ICD/CPSY 201412
総合技術特別講義講演資料2017
Reconf_201409
短距離古典分子動力学計算の 高速化と大規模並列化
Ad

IEICE technical report (RECONF), January 2015.