科学技術計算を対象とした 大規模再構成可能データパスの 性能評価

Preview:

DESCRIPTION

科学技術計算を対象とした 大規模再構成可能データパスの 性能評価. 片岡 広志 a) , 本田宏明 b) , Farhad Mehdipour a ) , 井上 弘士 a) , 村上和 彰 a). a) 九州 大学 b) 九州先端科学技術 研究所. 背景. PowerXcell を 搭載したスーパーコンピュータ 「 Roadrunner 」. スーパーコンピュータ 「 TSUBAME 」. アクセラレータボード 「 CSX 600 」. - PowerPoint PPT Presentation

Citation preview

1

科学技術計算を対象とした大規模再構成可能データパスの

性能評価

片岡広志 a) ,本田宏明 b) , Farhad Mehdipoura) ,

井上弘士 a) ,村上和彰 a)

a) 九州大学b) 九州先端科学技術研究所

2

背景• High Performance Computing (HPC) 分野では汎用プ

ロセッサ (GPP) を集積したスーパコンピュータが広く利用されている

• GPP の演算性能を補うための種々のアクセラレータ– PowerXcell, ClearSpeed, GPGPU, GRAPE-DR, etc.– 同性能の GPP と比べて、省スペース,低消費電力

http://www.clearspeed.com/

スーパーコンピュータ「 TSUBAME 」http://it.nikkei.co.jp/

アクセラレータボード「 CSX 600 」

http://www.top500.org/system/9485

PowerXcell を搭載したスーパーコンピュータ「 Roadrunner 」

3

大規模再構成可能データパスとその課題(LSRDP: Large Scale Reconfigurable Data Path)

• アクセラレータではメモリウォール問題が深刻化– 高い演算性能に比例した大きな要求メモリバンド

• 要求メモリバンド幅を抑え、かつ高い演算性能を実現するアクセラレータ (LSRDP) の提案 

•  課題: LSRDP に対する性能評価

4

研究の目的

• ベンチマークとなるアプリケーションに対し, LSRDP の性能を定量的に評価する

– 3 種類のアプリケーションを対象

– 性能モデル式 + サイクルアキュレートなシミュレータでの実行時間の見積もり

– 汎用プロセッサ単体性能との比較

– 性能を決定するボトルネックの解析

5

目次

• 背景• 大規模再構成可能データパス• 性能評価

– 評価対象アプリケーション– 評価実験

• おわりに

大規模再構成可能データパスの概要

主記憶

• 再構成可能なデータパス• 多数の FPU• 再構成可能なネットワーク

(ORN)• 入出力にストリームバッ

ファ (SB) を搭載

• 特徴• 計算コストの高い部分を

データフローグラフ (DFG)化して直接マッピング

• パイプライン処理によりDFG 部分を加速実行

• 主記憶上に整列されたデータをバースト転送により入力

汎用プロセッサ

(GPP :General Purpose

Processor)

ORN

: : : :

ORN : Operand Routing Network

...FPU FPU FPUFPU

...FPU FPU FPUFPU

...FPU FPU FPUFPU

LSRDP

: : : ... :SB

SMAC入力データ 3

入力データ 2

入力データ 1

6

7

・・・・・・・

データ依存

A = B + C;

D = A - E;

データ依存

DFG の直接マッピングによる効果

プログラム

スカラープロセッサload R0, [B]load R1, [C]add R2, R0, R1store R2, [A]

load R3, [A]load R4, [E]sub R5, R3, R4store R5, [D]

・・・

・・・・

・・・・・

LSRDP

Read Mem.

Write Mem.

Read Mem.

Write Mem.

B C

EA

D

・・・メモリアクセス回数を削減可

Read Mem.

8

LSRDP を用いたプログラム実行の流れ

LSRDPGPP

主記憶

Loop      Loop    calculation   End Loop  End Loop

オリジナル GPP コードLoop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

LSRDP 向けコード

9

LSRDP を用いたプログラム実行の流れ

Loop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

LSRDPGPP

主記憶

10

LSRDP を用いたプログラム実行の流れ

LSRDPGPP

主記憶

Loop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

11

LSRDP を用いたプログラム実行の流れ

LSRDPGPP

主記憶

Loop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

12

LSRDP を用いたプログラム実行の流れ

LSRDPGPP

主記憶

Loop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

13

LSRDP を用いたプログラム実行の流れ

LSRDPGPP

主記憶

Loop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

14

LSRDP を用いたプログラム実行の流れ

LSRDPGPP

主記憶

Loop     データ整列   LSRDP 再構成  計算開始信号( GPP ->

LSRDP )   Loop       LSRDP パイプライン

動作      End Loop 計算終了信号( LSRDP ->

GPP )  データ整列

End Loop

15

性能モデリング

ohLSRDPGPP ETETETET

GPP と LSRDP はオーバーラップ実行しないと仮定

+ 主記憶アクセスに係わるストール時間

理想的な実行時間( 毎クロックサイクル入力データを投入可能 )

+再構成時間 通信時間( シグナル )

整列時間+

LSRDP を利用する際のオーバーヘッド

LSRDP における実行時間

16

目次

• 背景• 大規模再構成可能データパス• 性能評価

– 対象アプリケーション– 評価実験

• おわりに

17

対象アプリケーション

• 2 階の定数係数偏微分方程式– 差分方程式

• 1 次元の熱伝導方程式 (Heat)• 2 次元の Poisson 方程式 (Poisson)

• 量子化学分野– 2 電子積分計算( ERI)

18

熱伝導方程式 (Heat)

• 1 次元の熱伝導方程式

• 差分方程式化

• DFG の接続– x 方向と t 方向に拡大可能

2

2 ),(),(

x

tTA

t

txT

x

),(),(*),(*

),(

11

1

jijiji

ji

txTtxTBtxTD

txT

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

( D, B は定数) 差分方程式に対応する DFG

19

熱伝導方程式のLSRDP システムへの実装

Loop j   Loop i T(xi,tj) End LoopEnd Loop

オリジナル GPP コード

LSRDP 向けコード

LSRDP を再構成Loop j’ (DFG で計算する時間発展分毎 )  データ整列 Loop N LSRDP パイプライン動作 ( 差分方程式の計算 ) End Loop  データ整列End Loop

20

Poisson 方程式

),(),(),(

2

2

2

2

yxfy

yxu

x

yxu

2D – Poisson 方程式

),(),(),(

),(),(4

),(*)1(

),(

21

)(1

)(

1)(

1)(

)(

)1(

jijin

jin

jin

jin

jin

jin

yxfhyxuyxu

yxuyxu

yxu

yxu

ω is const.

遂次過緩和 (SOR) 法

    を求めるために、          の 4点が必要

),( ji yx ),(),,( 11 jiji yxyx

赤と青の点を交互に求める

21

DFG の拡大による繰り返し回数の増加 (Poisson)

9+4ノードの入力

中心 1ノードの出力

SOR 式2 回の繰り返し

4+1ノードの入力

中心 1ノードの出力

SOR 式1 回の計算

これに伴い必要な入力数も増加• DFG の拡大により 1度に計算可能な繰り返し回数が増加

22

Poisson 方程式のLSRDP システムへの実装

Loop Iter Loop i loop j u(xi,yj) End Loop   End LoopEnd Loop

オリジナル GPP コード

LSRDP 向けコード

LSRDP を再構成Loop Iter’ (DFG で計算する繰り返し回数毎 )  データ整列 Loop N LSRDP パイプライン動作 ( 差分方程式の計算 ) End Loop  データ整列End Loop

23

2電子積分計算のLSRDP システムへの実装

Loop I,J,K,L   LSRDP 再構成  Loop contraction 初期積分計算 End Loop  データ整列   Loop N   LSRDP パイプライン動作       (漸化式計算    部分フォック行列計算 )  End Loop データ整列End Loop

Loop I,J,K,L   Loop contraction 初期積分計算 漸化式計算 End Loop  部分フォック行列計算End Loop

初期積分計算 : 開平逆数,指数,誤差関数計算が含まれる.  => GPP による計算

漸化式計算,部分フォック行列計算: 加減乗算のみ  => LSRDP での計算

オリジナル GPP コード LSRDP 向けコード

24

評価実験• 実験目的

– GPP 単体と比較してどれほど実行時間が削減できるか• 性能に影響を与える要因の調査

– メモリバンド幅を変更した際の実行時間への影響– DFG サイズを変更した際の実行時間の変化

• 評価方法– サイクルアキュレートなシミュレータ+性能モデル式

• 評価環境

LSRDPGPP

主記憶

3.2GHz 200MHz

メモリバンド幅12.8~ 102.4[GByte/sec]

再構成時間1cc

25

ベンチマーク DFG のサイズ

DFG 入力 出力 演算数Heat(M) 16 8 168

Heat(L) 32 16 728

Poisson(S) 18 1 33

Poisson(M) 38 1 90

Poisson(L) 66 1 190

ERI 最大 62 最大 18 最大 324

• Heat , Poisson についてはサイズが異なる複数の DFG を準備

•ERI は 1 回の計算で用いる 6 種類の DFG のサイズが一定

12.8

25.6

51.2

102.

4

12.8

25.6

51.2

102.

4Heat(M) Heat(L)

0

0.1

0.2

0.3

0.4

0.5

0.6再構成通信整列ストール演算GPP

実験結果: Heat

主記憶のメモリバンド幅[GByte/sec]

正規化した実行時間

ベンチマークDFG

• 実行時間を最大で 20%まで削減• 整列時間が支配的• DFG サイズの拡大に従って実行時間が減少

12.8

25.6

51.2

102.

4

12.8

25.6

51.2

102.

4

12.8

25.6

51.2

102.

4Poisson(S) Poisson(M) Poisson(L)

00.20.40.60.8

11.21.41.61.8

2再構成通信整列ストール演算GPP

実験結果: Poisson

主記憶のメモリバンド幅[GByte/sec]

正規化した実行時間

ベンチマークDFG

• 全ての DFG で実行時間が増加• 整列時間が支配的• DFG サイズの拡大に従って実行時間が増加

12.8 25.6 51.2 102.4ERI

0

0.05

0.1

0.15

0.2

0.25 再構成通信整列ストール演算

実験結果: ERI

主記憶のメモリバンド幅[GByte/sec]

正規化した実行時間

ベンチマークDFG

• 実行時間を最大で 16%まで削減

• 整列時間が支配的

29

DFG の特徴と整列時間との関係• DFG サイズの拡大につれて

– Heat :性能向上– Poisson :性能低下  

• 整列時間 ∝ #I/O ( DFG の入出力データ数) ×DFG使用回数

• 整列時間は #I/O と DFG使用回数の積に依存しており DFG サイズとの単純な比例関係にない

DFG #I/O DFG使用回数 積

Heat(M) 24 34916 8.4*10^5

Heat(L) 48 8722 4.2*10^5

Poisson(S) 19 3.0*10^6 5.7*10^7

Poisson(M) 39 2.0*10^6 7.8*10^7

Poisson(L) 67 1.5*10^6 1.0*10^8

なぜ?

30

目次

• 背景• 大規模再構成可能データパス• 性能評価

– 評価対象アプリケーション– 評価実験

• おわりに

31

おわりに

• まとめ– LSRDP を利用することで実行時間を最大で

16% 程度まで削減– メモリバンド幅の増加に従いストール時間は

低下– 実行時間の半分以上を整列時間に使用– ベンチマークによって DFG サイズによる実

行時間への影響は異なる• 今後

– 整列時におけるアルゴリズムの探索–新たなメモリ構成の検討

32

ご清聴ありがとうございました

33

backup

34

FPU FPU FPU FPU

FPU FPUFPUFPU

FPU FPU FPU FPU

データ

入力演算 ・・

・・演算データ

出力データ

入力演算 ・・

・・ 演算データ

出力

演算

演算

ORN

ORN

ORN

ORN

データ

入力演算・・

・・ 演算 演算

時間入力データ 4

入力データ 3

空データ入力データ 2

入力データ 1

データ

入力演算 演算

パイプライン動作による演算の推移

CPSY 2008 10/31 34

35

  分子軌道法計算のボトルネック:

電子反発積分 (ERI)

begin loop IJKL

 

  (IJ,KL) を利用 ( 部分フォック計算 ) end: loop

量子力学的電子反発エネルギー計算

TF

dcbadcba

dccd

baab

m

222/5 expexp2 DCBA

+ 漸化計算 (大量の積和計算)

ERI の初期項計算ERI: (IJ,KL)

電子反発積分計算表式  ~(pp,pp) までの漸化計算のみの場合 ~

漸化計算のみの場合

入力: 最大 28 個 (計算依存) 出力: 1 ~ 81 個 (計算依存)

)1()0()1()1()1()0()0(

)1()1()1()0()0(

)1()0()1()0()0(

)1()1()0()0(

)1()0()0(

),(),(2

),(),()(2

1),(),(),(

),(),()(2

1),(),(),(

),(),(2

),(),(),(

),()(2

),(),(),(

),(),(),(

ssppssppspspspspspppWQspppQDpppp

ssspssspssppWQssppQCsppp

ssssssssssspWPssspPBsspp

ssssssspWQssspQCspsp

ssssWPssssPAsssp

jijiij

kijlkjilkjilkjiklkji

ijkjikjikjikkji

ijijiiji

ikikikki

iii

(ss,ss)(m)  ならびに種々の係数は入力によって与える

(i,j,k,l = x,y,z): p 関数は 3 成分を持つ

37

),(),(*),(*),( 111 jijijiji txTtxTBtxTDtxT

DFG の生成 (Heat)

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

N 入力

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

T(i,j+1)

T(i-1,j) T(i,j) T(i+1,j)

+

*

*

+

D

B

M 回時間発展

38

DFG の拡大による入力数の増加(Poisson)

9+4ノードの入力

中心 1ノードの出力

SOR 式2 回の繰り返し

4+1ノードの入力

中心 1ノードの出力

SOR 式1 回の計算

1 DFG で計算可能な繰り返し回数の増加に従って入力数が増加

Recommended