33
大大大大大大大大大大大大大大大大大 大大大大大大大大大大大大 ○ 大大大大 a) 大大大大 b) Farhad Mehdipour a) 大大大大 a) 大大大大 a) a) 大大大大b) ISIT 1

大規模再構成可能データパスにおける 実行前処理削減方式の検討

Embed Size (px)

DESCRIPTION

大規模再構成可能データパスにおける 実行前処理削減方式の検討. ○片岡広志 a) , 本田宏明 b) , Farhad Mehdipour a) , 井上弘士 a) , 村上和彰 a) a)  九州大学、 b) ISIT. 発表の流れ. 背景 提案 手法 性能評価実験 おわりに. 研究背景. PowerXcell を 搭載したスーパーコンピュータ 「 Roadrunner 」. NVIDIA 「 Tesla S1070 」. - PowerPoint PPT Presentation

Citation preview

Page 1: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

大規模再構成可能データパスにおける実行前処理削減方式の検討

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

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

a)  九州大学、 b)   ISIT

1

Page 2: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

発表の流れ

• 背景• 提案手法• 性能評価実験• おわりに

2

Page 3: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

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

セッサ (GPP) を集積したスーパコンピュータが主流– 背景: GPP の低コスト化– 方針: GPP の低い演算性能をプロセッサ数で補う

• 「 GPP+ アクセラレータ」方式も注目されている– アクセラレータ:演算性能を重視したハードウェア

• 多数の演算器の並列演算– GPP は演算負荷が高い処理をアクセラレータに実行させる– 例: PowerXcell, ClearSpeed, Tesla, GRAPE-DR, FPGA, etc.

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

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

3http://www.elsa-jp.co.jp/products/hpc/tesla/s1070/index.html

NVIDIA 「 Tesla S1070 」

Page 4: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

大規模再構成可能データパスの提案(LSRDP: Large-Scale Reconfigurable Data-Path)

• アクセラレータではメモリウォール問題が深刻化– 多数の並列演算によるメモリプレッシャーの増加

• メモリバンド幅の有効利用が重要– (GPU では ) メモリのマルチバンク・マルチポート化– 一方,単一ポートからの連続アクセスでもメモリバンド幅の有効利用

は可能

444

大規模再構成可能データパスの提案– ストリーム処理方式

連続アクセス限定のメモリアクセス方式 DRAM のバースト転送機能を用いメモリバンド幅を有効

利用– 2D-array 型演算器によるデータパス方式の利用

演算器間の直接データ転送 メモリアクセス回数を削減しメモリウォール問題の影響を低減

Page 5: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

LSRDP の動作

5

ソースコード

大規模データパスの再構成主記憶上データの再配置loop;

  ループボディ end

・・・

・・・LSRDP が主記憶から連続アクセスで読み出せるように入力データを生成

Page 6: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

Heat Poi Vib ERI0

1

2

3

4

5

6

再構成通信再配置LSRDPストールLSRDP演算GPP

LSRDP の実行における問題点

6

•再配置時間が支配的• GPP を用いて主記憶へのランダムアクセスにより実行

LSRDP 実行時間

GPP 実行時間

実行時オーバーヘッド

実行時間(GPP 単体による実行時間で正規化 )

性能向上のためには再配置時間の削減が必要

※ 評価環境については後述

Page 7: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

発表概要

• 目的– 再配置 ( 実行前処理 ) 時間の削減

• 手法– プログラム作成時にデータ構造を変更– GPP を用いずに再配置を実行

• LSRDP を用いて再配置を実行• 重複化専用ハードウェアを SMAC 上に導入し再

配置処理を削減

7

Page 8: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

発表の流れ

• 背景• 提案手法

– 従来の再配置手法– データ構造の変更– データの重複作成

• 性能評価実験• おわりに

8

Page 9: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

従来の再配置手法 (1/4)

再構成loop n

 入力ストリーム用データ生成 LSRDP 計算

(DFG : a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i])

  出力ストリームデータの書戻しend

LSRDP 向けコード

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

...a(n)[1] a(n)[i+M]a(n)[0]a(n-1)[1]a(n-1)[0] ...a(n-1)[i+M]a(n-1)[]: a(n)[]:

計算対象の配列はメモリ上離れた箇所に分散保持

9

Page 10: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

従来の再配置手法 (2/4)

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

...a(n)[1] a(n)[i+M]a(n)[0]a(n-1)[1]a(n-1)[0] ...a(n-1)[i+M]a(n-1)[]: a(n)[]:

... a(n-1)[i+M] a(n)[i+M]a(n)[0]a(n-1)[0] a(n)[1]a(n-1)[1]X(n)[]:

LSRDP 計算の入力順に並び変えた入力用データ配列 X[] の生成GPP により主記憶へのランダムアクセスを行う必要あり

再構成loop n

 入力ストリーム用データ生成 LSRDP 計算

(DFG : a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i])

  出力ストリームデータの書戻しend

LSRDP 向けコード

10

Page 11: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

... a(n-1)[i+M] a(n)[i+M]a(n)[0]a(n-1)[0] a(n)[1]a(n-1)[1]X(n)[]:

... a(n+m-1)[] a(n+m)[]a(n+m)[0]a(n+m-1)[0] a(n+m)[1]a(n+m-1)[1]X(n+m)[]:

従来の再配置手法 (3/4)

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

LSRDP 計算により X(n)[] から X(n+m)[] が生成X(n)[] の読み込みと X(n+m)[] の書き込みの際に連続アクセス可能

再構成loop n

 入力ストリーム用データ生成 LSRDP 計算

(DFG : a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i])

  出力ストリームデータの書戻しend

LSRDP 向けコード

11

Page 12: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

従来の再配置手法 (4/4)

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

...a(n+m)[1] ...a(n+m)[0]a(n+m-1)[1]a(n+m-1)[0] ......a(n+m-1)[]: a(n+m)[]

... a(n+m-1)[] a(n+m)[]a(n+m)[0]a(n+m-1)[0] a(n+m)[1]a(n+m-1)[1]X(n+m)[]:

X[] から a[] への書戻しGPP により主記憶へのランダムアクセスを行う必要あり

再構成loop n

 入力ストリーム用データ生成 LSRDP 計算

(DFG : a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i])

  出力ストリームデータの書戻しend

LSRDP 向けコード

12

Page 13: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

データ構造の変更

• 従来方式ではプログラム実行時に入力ストリームを生成

• 本手法ではプログラム作成時にストリーム処理を意識したデータ構造を作成

13

Main Mem.

...a(n)[1] a(n)[i+M]a(n)[0]a(n-1)[1]a(n-1)[0] ...a(n-1)[i+M]a(n-1)[]: a(n)[]:

... a(n-1)[i+M] a(n)[i+M]a(n)[0]a(n-1)[0] a(n)[1]a(n-1)[1]X(n)[]:

Page 14: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

データ構造の変更による問題点

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

X(n)[]:

X(n+m)[]:

入力4,出力2のDFG 計算

計算結果 X(n+m)[] を再び入力データとして使用する際,更新されていないデータが存在する

14

Page 15: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

データの重複化による入力ストリーム向けデータ構造の再生成

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

X(n)[]:

X(n+m)[]:

入力4,出力2のDFG 計算

• データを両隣からコピー(データの重複化)することで入力ストリーム向けデータ構造を再生成

• GPP を使用すると多数のランダムアクセスが発生LSRDP を用いる方式重複化専用 HW を導入する方式

15

Page 16: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

LSRDP を用いたデータの重複化(1/2)

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

重複化前

データ重複用 DFG

…重複化前

LSRDP再構成

• LSRDP にてデータ重複処理を行うためにデータ重複用 DFG で再構成

16

Page 17: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

LSRDP を用いたデータの重複化(2/2)

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

Main Mem.

重複化前

メモリに対する連続アクセスが可能

…重複化後

入力4,出力4の重複生成用 DFG による処理

17

Page 18: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

専用ハードウェアによるデータの重複化

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

controller

input_dataバッファ

バッファ

18

Main Mem.

重複化前

重複化後

ピンク部分のみ重複化に必要  ⇒ 空白部分を圧縮して保存可能

⇒ 入出力時の転送データ量を削減

Page 19: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

提案手法のまとめ特徴 利点 欠点

従来方式 ・プログラム実行中に再配置を実行

・メモリへの多数のランダムアクセスにより実行時間が長い

データ構造の変更+ データの重複化

・プログラム作成時にデータ構造を変更・再配置を LSRDPを用いてストリーム処理により実行

・連続メモリアクセスのみでLSRDP を実行可能

・必要なメモリ領域が増加・重複化用 DFG による処理が必要

データ構造の変更+ 重複化専用ハードウェアの導入

・プログラム作成時にデータ構造を変更・重複化専用ハードウェアにより再配置処理を削減

・連続メモリアクセスのみでLSRDP を実行可能・転送データ量を削減

・ストリームデータの重複パターンに対応した HW の機能が必要

19

Page 20: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

発表の流れ

• 背景• 提案手法• 性能評価実験• おわりに

20

Page 21: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

性能評価実験• 評価環境

– GPP : Simple Scalar を用いて実行時間を計測– LSRDP :性能モデル式とパラメータから実行時間を

算出※ 性能モデル式は予稿を参

• 評価ベンチマーク– 2 変数 2階偏微分方程式の差分法計算

• 振動方程式 (Vib) ,熱伝導方程式 (Heat)

対象モデル LSRDP 利用 データ構造の変更

データの重複化

gpp_only - - -naive ✔ - -pack+dup ✔ ✔ DFG (LSRDP)

pack+hw ✔ ✔ 重複化専用 HW

21

Page 22: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

評価環境

22

PE PE

PE PE PE

...

PE PE PE PE...

.

.

.

.

.

.

.

.

.

PE PE

ORN

...

...

Streaming Memory AccessContoller (SMAC)

ORN

Operand Routing Network (ORN)

SMAC

I/ O port

Main Mem.

GPP

ORN

... FUTU

TU TUFP

TUTU TU

FUTU

TU TUFP

TUTU TU

PE

PE : Processing ElementFP : Floating Point unitTU : data Transfer Unit

• GPP– 動作周波数: 3.2GHz– ISA : PISA– 4way out of order スーパースカラ

• Main Memory– メモリバンド幅: 102.4GB/s

• LSRDP– サイズ:幅 48 ,高さ 35– 隣接行間接続数: 9– 動作周波数: 80GHz

• 演算器スループット: 2.5GFLOPS / PE

– 再構成時間: 30,000cc

• 追加 HW– 動作周波数: 80GHz

ジョセフソン接合

超伝導ループ

磁束量子Single Flux QuantumSuperconductivityloop

Josephson junctionジョセフソン接合

超伝導ループ

磁束量子

ジョセフソン接合

超伝導ループ

磁束量子

ジョセフソン接合

超伝導ループ

磁束量子Single Flux QuantumSuperconductivityloop

Josephson junction

追加HW

Page 23: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

naive

pack+dup

pack+hw

naive

pack+dup

pack+hw

Heat Vib

00.050.10.150.20.25

再構成通信再配置LSRDPストールLSRDP演算GPP

実行時間: gpp-only で正規化( 性能: [GFLOPS])

0.24(8.0)

0.84(1.7)

0.01(104.9)

実験結果

0.018(109.2)

0.009(210.0)

0.13(11.5)

23

Page 24: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

実験結果

•pack+dup- naive と比較して再配置を削減-Vib において LSRDP 演算、 LSRDP ストールが増加

•pack+hw- naive と比較して再配置、 LSRDP ストールを削減

naive

pack+dup

pack+hw

naive

pack+dup

pack+hw

Heat Vib

00.050.10.150.20.25

再構成通信再配置LSRDPストールLSRDP演算GPP

0.24(8.0)

0.84(1.7)

0.01(104.9)

0.018(109.2)

0.009(210.0)

0.13(11.5)

実行時間: gpp-only で正規化( 性能: [GFLOPS])

DFG を用いてLSRDP で実行

24

Page 25: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

考察• pack+dup : naive と比較して Vib において LSRDP

演算, LSRDP ストールが増加– 重複作成のために naive よりも演算性能が低い DFG を実装

• naive と同じ DFG ではデータ重複用 DFG を用いても重複が作成不可能

• pack+hw : naive と比較して再配置、 LSRDP ストールを削減– 再配置処理そのものを削減– LSRDP ストール削減率  Heat : 40%  , Vib : 67%

• naive の再配置処理における重複データが多いほど高い効果

• 実効効率 : Heat の pack+hw モデルで 5%– 原因

• DFG の演算器利用効率: 52%• LSRDP への 1 入出力あたり 6 サイクルのストールが発生

25

Page 26: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

発表の流れ

• 背景• 提案手法• 性能評価実験• おわりに

26

Page 27: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

おわりに• まとめ

– LSRDP における実行前処理の削減方式を検討• プログラム作成時にデータ構造を変更• GPP を用いずに再配置を実行

–少数のメモリアクセスポートを前提としたアクセラレータにおける高性能化の可能性を示した

• 今後の課題– 実効性能の向上

• 演算性能 / 入出力数の高い DFG の探索

27

Page 28: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

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

28

Page 29: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

LSRDP へのプログラム実装(1/3)(振動方程式差分法計算)

loop n loop i a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i] endend

オリジナルコード: GPP で計算

loop n (mn  スキップ ) loop i (mi  スキップ )

a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i] a(n+1)[i+1] = a(n)[i] + a(n)[i+1] + a(n)[i+2] + a(n-1)[i+1] …

  a(n+2)[i] = a(n+1)[i-1] + a(n+1)[i] + a(n+1)[i+1] + a(n)[i] a(n+2)[i+1] = a(n+1)[i] + a(n+1)[i+1] + a(n+1)[i+2] + a(n)[i+1] …   endend

mi

mn

ループアンローリングされたコード

i と n についてループアンローリング入力: a(n)[], a(n-1)[]出力: a(n+mn)[]

29

Page 30: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

LSRDP へのプログラム実装(1/3)(振動方程式差分法計算)

loop n (mn  スキップ ) loop i (mi  スキップ )

a(n+1)[i] = a(n)[i-1] + a(n)[i] + a(n)[i+1] + a(n-1)[i] a(n+1)[i+1] = a(n)[i] + a(n)[i+1] + a(n)[i+2] + a(n-1)[i+1] …

  a(n+2)[i] = a(n+1)[i-1] + a(n+1)[i] + a(n+1)[i+1] + a(n)[i] a(n+2)[i+1] = a(n+1)[i] + a(n+1)[i+1] + a(n+1)[i+2] + a(n)[i+1] …   endend

mi

mn

ループアンローリングされたコード

30

Page 31: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

LSRDP へのプログラム実装(2/3)(振動方程式差分法計算)

loop n (mn  スキップ ) loop i (mi  スキップ )

  endend

ループアンローリングされたコード

入力: a(n-1)[], a(n)[]

出力: a(n+m-1)[], a(n+m)[]

ループアンローリングされた差分法計算をデータフローグラフ( DFG )化しLSRDP にマッピング

LSRDP への入出力データ順: In : a(n-1)[i], a(n)[i], a(n-1)[i+1],a(n)[i+1], …

Out : a(n+m-1)[i], a(n+m)[i], a(n+m-1)[i+1], a(n+m)[i+1], …

LSRDP へのマッピング結果:

主記憶上で LSRDP への入出力順にデータを並び変え,主記憶への連続アクセスを可能とする必要がある⇒入力ストリーム生成(データ再配置)31

Page 32: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

LSRDP へのプログラム実装(2/3)(振動方程式差分法計算)

LSRDP への入出力データ順: In : a(n-1)[i], a(n)[i], a(n-1)[i+1],a(n)[i+1], …

Out : a(n+m-1)[i], a(n+m)[i], a(n+m-1)[i+1], a(n+m)[i+1], …

LSRDP へのマッピング結果:

主記憶上で LSRDP への入出力順にデータを並び変え,主記憶への連続アクセスを可能とする必要がある⇒入力ストリーム生成(データ再配置)

再構成loop n

 入力ストリーム生成   LSRDP 計算 (差分法計算 )     出力ストリームデータの書戻しend

LSRDP 向けコード

32

Page 33: 大規模再構成可能データパスにおける 実行前処理削減方式の検討

Vertical vs. Horizontal DFG Decomposition

Loop N  Reconfiguration  Loop M   LSRDP pipeline calc.     End LoopEnd Loop

Original

33

Loop n ( > N)  Reconfiguration  Loop M   LSRDP pipeline calc.     End LoopEnd Loop

Vertical Decomp.

Loop N  Reconfiguration  Loop M   1st LSRDP pipeline calc.     End LoopEnd LoopLoop N  Reconfiguration  Loop M   2nd LSRDP pipeline calc.     End LoopEnd Loop

Horizontal Decomp.

33