科学技術計算を対象とした 大規模再構成可能データパスの 性能評価
description
Transcript of 科学技術計算を対象とした 大規模再構成可能データパスの 性能評価
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 で計算可能な繰り返し回数の増加に従って入力数が増加