55
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

IEICE technical report (RECONF), January 2015

Embed Size (px)

Citation preview

Page 1: IEICE technical report (RECONF), January 2015

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

Page 2: IEICE technical report (RECONF), January 2015

発表概要

FPGAアクセラレータを用いたアプリ高速化のトレンド

FPGAアクセラレータを個人レベルで「手軽に」使う手段?►様々なPCで使えて,かつなるべく持ち運べるものが望ましい

►ホストPCとFPGAアクセラレータを繋ぐインターフェイスに注目

USB3.0をインターフェイスに選択►USBを搭載する様々なPCで使える

►モバイル環境での使用も可能

►様々なPCで評価

高速化するアプリにソーティング(int型32M個)を選択

アクセラレータを設計・実装・評価1

Page 3: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

2

Page 4: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

3

Page 5: IEICE technical report (RECONF), January 2015

題目「手軽」

4

Portable

様々な環境で簡単に使える

持ち運べる

手軽

Interface

Page 6: IEICE technical report (RECONF), January 2015

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

Page 7: IEICE technical report (RECONF), January 2015

我々の提案するFPGAアクセラレータ

6

持ち運べる

手軽様々な環境で簡単に使える

USB3.0

対象アプリ: 32bitのint型要素32M個(128MB)のソーティング

Page 8: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

7

Page 9: IEICE technical report (RECONF), January 2015

32M要素(int型)のソーティング (@Core i7 3770K)

8

2.75 0.00 0.00 4.20 1.56 1.49 0

1

2

3

4

5

6

7

8

9

10

Random Sorted Reverse

Ela

pse

d T

ime[s

]

Type of Sequence

Quick Sort

Merge Sort

Over

2h

Over

2hMerge Sortを

比較対象

2時間以上(最悪計算𝑂(𝑛2))

Page 10: IEICE technical report (RECONF), January 2015

2.75 0.00 0.00 4.20 1.56 1.49 0

1

2

3

4

5

6

7

8

9

10

Random Sorted Reverse

Ela

pse

d T

ime[s

]

Type of Sequence

Quick Sort

Merge Sort

Over

2h

Over

2h

32M要素(int型)のソーティング (@Core i7 3770K)

9

目標

Page 11: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

10

Page 12: IEICE technical report (RECONF), January 2015

System Architecture

11

32bit

64bit,

2要素ずつソート

64bit

400MB/s

Page 13: IEICE technical report (RECONF), January 2015

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

Page 14: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8}

13

2

Memory

>

>

>

4

6

5

3

1

7

8

Unit: ソート済みデータ列

Page 15: IEICE technical report (RECONF), January 2015

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

Page 16: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8}

15

Memory

>

>

>

2

6

3

7

4

5

1

83

28

4

5

1

Page 17: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8}

16

Memory

>

>

>

6

7

2

3

7

6 28

4

5

1

8

4

5

1

Page 18: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8}

17

Memory

>

>

>

6

37

38

2

4

5

1

8

4

5

1

Page 19: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8}

18

Memory

>

> 6

7

68

2

3>

4

5

1

8

4

5

1

Page 20: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8} Unit数は8

19

Memory

>

>

>

4

5

1

8

2

3

6

7

Page 21: IEICE technical report (RECONF), January 2015

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

Page 22: IEICE technical report (RECONF), January 2015

Merge Sorter Tree

data = {2, 4, 6, 5, 3, 1, 7, 8}

21

Memory

>

>

>

1

2

3

4

5

6

7

8

Page 23: IEICE technical report (RECONF), January 2015

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

Page 24: IEICE technical report (RECONF), January 2015

System Architecture (First step)

23

Page 25: IEICE technical report (RECONF), January 2015

System Architecture (First step)

24

Page 26: IEICE technical report (RECONF), January 2015

System Architecture (First step)

25

Page 27: IEICE technical report (RECONF), January 2015

System Architecture (First step)

26

Page 28: IEICE technical report (RECONF), January 2015

System Architecture (First step)

27

Not Fully

Sorted!

Page 29: IEICE technical report (RECONF), January 2015

System Architecture (First step)

28

Page 30: IEICE technical report (RECONF), January 2015

System Architecture (First step)

29

Page 31: IEICE technical report (RECONF), January 2015

System Architecture (First step)

30

一度に書き込む量を増やす

一度に書き込むデータが

少ないと低速

Page 32: IEICE technical report (RECONF), January 2015

System Architecture (First step)

31

Page 33: IEICE technical report (RECONF), January 2015

System Architecture (Intermediate steps)

32

DRAMから読み出し

Page 34: IEICE technical report (RECONF), January 2015

System Architecture (Intermediate steps)

33

Page 35: IEICE technical report (RECONF), January 2015

System Architecture (Last step)

34

Fully

Sorted!

Page 36: IEICE technical report (RECONF), January 2015

System Architecture (Last step)

35

Send back the

Fully Sorted Data

Page 37: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

36

Page 38: IEICE technical report (RECONF), January 2015

特電 Artix-7 評価ボード

37

72mm

50mm

USB3.0 Peripheral

Controller

持ち運べる

Page 39: IEICE technical report (RECONF), January 2015

実装・検証

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

Page 40: IEICE technical report (RECONF), January 2015

検証アプリコード概略

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); // Send09: USBRead(data,ELM); // Receive10: 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上のみでソーティングを行う場合

Page 41: IEICE technical report (RECONF), January 2015

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

Ban

dw

idth

[MB

/s]

Data Size

Host PC → FPGA

FPGA → Host PC

公称限界値: 360[MB/s]

今回ソート対象のデータ列は32M要素で128MB限界転送速度達成の見込み

Page 42: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

41

Page 43: IEICE technical report (RECONF), January 2015

評価

パフォーマンスだけでなく高いPortabilityも評価するため評価環境としてPCを4台用意►USB3.0対応2台,USB2.0対応2台

►デスクトップとラップトップ

対象アプリ: 4バイトint型32M要素のソーティング

各PCにて,以下の二つの場合の実行時間を比較►FPGAアクセラレータにソーティングをオフロード

►ホストPC上のみでマージソート

42

Page 44: IEICE technical report (RECONF), January 2015

4種類の評価環境 – Computer A

43

Core i7-3770K

@3.50GHz

16GB DDR3 Memory

Supports USB3.0

High

Performance!

Page 45: IEICE technical report (RECONF), January 2015

4種類の評価環境 – Computer B

44Supports USB3.0

Core i3-4010U

@1.70GHz

4GB DDR3 Memory

Portable!

Page 46: IEICE technical report (RECONF), January 2015

4種類の評価環境 – Computer C

45

Supports only USB2.0

Core i7-870

@2.93GHz

4GB DDR3 Memory

Page 47: IEICE technical report (RECONF), January 2015

4種類の評価環境 – Computer D

46

Core Duo T2400

@1.83GHz

1GB DDR2 Memory

Supports only USB2.0

Page 48: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

47

Page 49: IEICE technical report (RECONF), January 2015

0

2

4

6

8

10

12

FPGA CPU FPGA CPU FPGA CPU FPGA CPU

Computer A Computer B Computer C Computer D

Ela

pse

d T

ime[s

]

Sorting

Data Transfer from Host PC to FPGA

Data Transfer from FPGA to Host PC

評価結果

48

USB3.0

USB2.0

Page 50: IEICE technical report (RECONF), January 2015

評価結果 – 分析

49

0

2

4

6

8

10

12

FPGA CPU FPGA CPU FPGA CPU FPGA CPU

Computer A Computer B Computer C Computer D

Ela

pse

d T

ime[s

]

Sorting

Data Transfer from Host PC to FPGA

Data Transfer from FPGA to Host PC

性能向上不可能

USB2.0

USB3.0通信時間 > CPUにおけるソーティング時間

Page 51: IEICE technical report (RECONF), January 2015

評価結果 – 分析

50

0

2

4

6

8

10

12

FPGA CPU FPGA CPU FPGA CPU FPGA CPU

Computer A Computer B Computer C Computer D

Ela

pse

d T

ime[s

]

Sorting

Data Transfer from Host PC to FPGA

Data Transfer from FPGA to Host PC

通信時間大幅減

ソーティング自体の時間変化なし

USB3.0で性能向上

USB3.0

Page 52: IEICE technical report (RECONF), January 2015

評価結果

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

Ela

pse

d T

ime[s

]

1.28x

Faster

2.60x

Faster

USB3.0環境

様々な環境で簡単に使える

Page 53: IEICE technical report (RECONF), January 2015

発表の流れ

Motivation

►題目「手軽」 - USB3.0検討

►予備評価 – ホストPCにおけるソーティング

FPGAアクセラレータの設計・実装►System Architecture, Merge Sorter Tree

►実装・検証

評価►評価環境

►ソーティング性能評価・分析

結論・今後の課題

52

Page 54: IEICE technical report (RECONF), January 2015

結論

USB3.0接続の手軽かつ高速なFPGAアクセラレータを提案

対象アプリ: ソーティング

USB2.0環境では提案するFPGAアクセラレータを用いても性能が向上しない►特に,Computer C では

通信時間がCPUにおけるソーティング時間を上回っている

USB3.0環境では性能が向上►デスクトップPC比 1.28倍

►モバイルPC比 2.60倍

►高いPortabilityで手軽

53

Page 55: IEICE technical report (RECONF), January 2015

今後の課題

Merge Sorter Tree のway数拡張►更なる性能向上の見込み

他のアプリの高速化►グラフ処理,画像処理,データ圧縮 etc…

54