演算 / メモリ性能バランスを考慮した...

27
演演 / 演演演演演演演演演演演演演演 演演演演演演演演演演演演演演演演演演 ○ 演演 演演 , 演演 演演 演演 演演 演演演演

Upload: maisie-mcknight

Post on 03-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法. ○福本 尚人 , 井上 弘士,村上 和彰 九州大学. マルチコア・プロセッサ. 1 チップに複数のプロセッサコアを搭載 複数コアによる並列処理により高性能化 性能だけでなく、消費エネルギーも重要. 並列 プログラム. Core i7 (Intel ). Core i7 (Intel ). Cell/B.E.( ソニー / 東芝 /IBM). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

演算 / メモリ性能バランスを考慮したマルチコア向けオンチップメモリ貸与法

○ 福本 尚人 , 井上 弘士,村上 和彰九州大学

Page 2: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

• 1 チップに複数のプロセッサコアを搭載• 複数コアによる並列処理により高性能化• 性能だけでなく、消費エネルギーも重要

マルチコア・プロセッサ

Cell/B.E.( ソニー / 東芝 /IBM) Core i7 (Intel)

IBM:http://domino.research.ibm.com/comm/research_projects.nsf/pages/multicore.CellBE.html

http://ascii.jp/elem/000/000/124/124281/img.html 2

Core i7 (Intel)

並列プログラム

Page 3: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

マルチコアにおけるメモリウォール問題

• メモリ性能によるトータル性能の抑制– 大きな主記憶アクセスレイテンシ– オフチップメモリバンド幅の不足

プログラム: Cholesky

1 2 3 4 5 6 7 802468

1012

実行コア数

Spee

dUp

256KB private memory

Idealmemory

プログラム: Barnes

1 2 3 4 5 6 7 802468

10

実行コア数

Spee

dUp

256KB privatememory

Ideal memory

Ideal との差が小さい コア数に見合う性能が得られない 3

○ ×

Page 4: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

提案手法の狙い• 用途に応じてコアを使い分け

– メインコア:並列プログラム実行用– ヘルパーコア:メモリ性能向上用

• コア同士で協調実行– 演算性能とメモリ性能のバランシング

4

1 2 3 4 5 6 7 802468

1012

実行コア数

Spee

dUp

プログラム : Cholesky

256KB privatememory

Ideal memory 本研究

のねらい コア コア コア コア

コア コア コア コア

従来の 8 並列実行

メインコア

メインコア

メインコア

メインコア

メインコア

メインコア

6 並列実行+ 2 サポート実行

ヘルパーコア

ヘルパーコア

本手法を実装し、評価した結果、• 最大、 46% の実行時間、 32% の消費エネルギーを削

減• ハードウェアコストなし

Page 5: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

発表手順• マルチコアにおけるメモリウォール問題• 演算 / メモリ性能バランスを考慮したマル

チコア向けオンチップメモリ貸与法– 基本アイディア– 詳細な実装(ソースコードの自動変換)

• 貸与メモリのデータ割当て決定• ヘルパーコア数決定

• 評価• まとめと今後の課題

5

Page 6: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

対象マルチコア・プロセッサ

6

コア

SPM SPM

コア

SPM

コア コア

SPM

コア

SPM

コア

SPM

コア

SPM

オンチップ接続

主記憶

ソフトウェア制御

オンチップメモリ

並列プログラム チップ

Page 7: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

マルチコア向けオンチップメモリ貸与法

• メインコア– 並列プログラムを実行

• ヘルパーコア– メインコアに自身のメモリを

提供(階層メモリとして活用される)

– アイドル

• ヘルパーコアを増やすと○ メモリ性能が向上○ 消費電力が減少× 演算性能が低下

コア

SPM

コア

SPM

コア

SPM

コア

SPM

オンチップ接続

   主記憶

ロード

ヘルパーコアIdle

7

並列プログラム

メインコア

メモリ性能改善効果>演算性能低下効果

となるようにヘルパーコア数を決定

Page 8: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

プログラムの特徴に応じたコアの使い分け

8

○ メモリ性能向上による性能向上 大

○ 演算性能低下による性能低下 小○ コアの消費電力の削減

コア

SPM

コア

SPM

コア

SPM

コア

SPM

オンチップ接続

メインコア数 3 ヘルパーコア数 1コア

SPM

コア

SPM

コア

SPM

コア

SPM

オンチップ接続

全てメインコア

○ 従来の全コア実行により高性能化

プログラム : Barnes

1 2 3 4 5 6 7 802468

10

実行コア数

Spee

dup

256KB private memory

Ideal memory

1 2 3 4 5 6 7 802468

1012

実行コア数

Spee

d up

プログラム : Cholesky

256KB private memory

Ideal memory

SPM

プログラムの特徴に応じて適切なコアの配分を決定

Page 9: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

発表手順• マルチコアにおけるメモリウォール問題• 演算 / メモリ性能バランスを考慮したマル

チコア向けオンチップメモリ貸与法– 基本アイディア– 詳細な実装(ソースコードの自動変換)

• 貸与メモリのデータ割当て決定• ヘルパーコア数決定

• 評価• まとめと今後の課題

9

Page 10: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

提案手法の適用手順

10

並列化ソースコー

事前実行

プロファイル情報

メインコアソースコー

ドヘルパーコアソースコード

貸与メモリのデータ割当て決定

コア配分決定

貸与メモリデータ割当て

コア配分

入力

ソースコード生成

ハードウェア

情報

コア数 1 で事前実行

DMA 転送トレース逐次処理時間の割合・・・

Page 11: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

貸与メモリのデータ割当て決定法• 目標:メインコアの主記憶アクセス回数が最

小となる貸与メモリのデータ割当ての算出• 決定手順

1. プロファイル情報を元に各データごとのアクセス回数を集計

2. アクセス回数の多い順にデータを貸与メモリへ配置

11

プロファイル情報

1. アクセス回数の集計

0100020003000400050006000

アドレス

アク

セス

回数

DMA 転送トレース

貸与メモリデータ割当て

2. 保持するデータの選択

Page 12: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

ヘルパーコア数決定法• 目標 : 最も高性能となるヘルパーコア数の算出• 決定手順

1. 性能モデルにプロファイル情報を代入することで全てのコア配分の実行時間を予測

2. 最も実行時間の短いコア配分を選択

プロファイル情報

1:6 2:5 3:4 4:3 5:2 6:1 7:00

0.20.40.60.8

メインコア : ヘルパーコア

実行

時間

性能予測

コア配分

実行時間の比較

予測実行時間

•逐次実行時間の割合       ・・・

12

ハードウェア情報

•DMA 転送に関する情報•搭載コア数・・・

Page 13: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

並列化ソースコード

事前実行

プロファイル情報

メインコアソースコード

ヘルパーコアソースコード

貸与メモリのデータ割当て決定

コア配分決定 貸与メモリデータ割当て

コア配分

入力

ソースコード生成

ハードウェア情報

自動ソースコード変換

メモリ貸与法適用時にプログラマが行う作業

• 元ソースコードの並列実行部の前後に目印の挿入• スレッド生成部の修正• 他は全て自動で適用される

13

プロファイル情報取得用の関数の挿入 主記憶アクセス数最

小となる割当て決定

性能モデルによる実行時間の予測

アドレス変換処理の挿入実行コア数の変更貸与メモリのデータ入替え

Page 14: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

発表手順• マルチコアにおけるメモリウォール問題• 演算 / メモリ性能バランスを考慮したマル

チコア向けオンチップメモリ貸与法– 基本アイディア– 詳細な実装(ソースコードの自動変換)

• 貸与メモリのデータ割当て決定• ヘルパーコア数決定

• 評価• まとめと今後の課題

14

Page 15: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

評価環境• Cell/B.E. の実機( Cell reference set )で評価• 実行プログラム

– HIMENO, LU (SPLASH-2), FFT (CellSDK), Matrix_mul (CellSDK)• SPE の実行時間を計測

SPU

LS

SPE

Element Interconnect Bus (204.8GB/s)

L2$

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

256KB

L1$ PPU

PPE MIC BIC

25.6GB/s

Off-chipMain

Memory

•7個の SPE に対して、オンチップメモリ貸与法を適用•適切なコアの配分の算出法

• 性能モデルを用いて予測  (PB-PREDICT)

• 事前実行を全パタン行い予測  (PB-MEASURE) 【最適な配分】

15

Page 16: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

実行時間

0 0 03

21 2

3

1 1

1 11

0 0 0 0 00 00

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

HIMENO(SS)

HIMENO (S) LU (256) LU (512) LU (1024) FFT Matrix_mul

00.20.40.60.8

11.2

演算 DMA転送によるストールアドレス変換

正規

化実

行時

16最大で 46% の実行時間の削減

メインコア数 6 ヘルパーコア数 1

Page 17: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

実行時間

0 0 03

21 2

3

1 1

1 11

0 0 0 0 00 00

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

HIMENO(SS)

HIMENO (S) LU (256) LU (512) LU (1024) FFT Matrix_mul

00.20.40.60.8

11.2

演算 DMA転送によるストールアドレス変換

正規

化実

行時

17主記憶アクセス削減によるストール時間の削減  >メインコア減少による演算時間増加 + アドレス変換時間増加

従来実行が最も性能が高いと予測した場合

メインコア数 6 ヘルパーコア数 1

Page 18: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

実行時間

0 0 03

21 2

3

1 1

1 11

0 0 0 0 00 00

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

HIMENO(SS)

HIMENO (S) LU (256) LU (512) LU (1024) FFT Matrix_mul

00.20.40.60.8

11.2

演算 DMA転送によるストールアドレス変換

正規

化実

行時

18最適なヘルパーコア数を予測することで性能向上ヘルパーコア数を正しく予測できていないが、従来実行と比較して性能は低下していない

メインコア数 6 ヘルパーコア数 1

Page 19: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

実行時間

0 0 03

21 2

3

1 1

1 11

0 0 0 0 00 00

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

BASE

PB-P

RED

ICT

PB-M

EASU

RE

HIMENO(SS)

HIMENO (S) LU (256) LU (512) LU (1024) FFT Matrix_mul

00.20.40.60.8

11.2

演算 DMA転送によるストールアドレス変換

正規

化実

行時

19最大で 46% の実行時間の削減

メインコア数 6 ヘルパーコア数 1

Page 20: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

消費エネルギー評価方法• 消費エネルギーモデルを用いて評価

– SPU, LS, 主記憶の動的消費エネルギー

20

SPU

LS

SPE

Element Interconnect Bus (204.8GB/s)

L2$

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

256KB

L1$ PPU

PPE MIC BIC

25.6GB/s

Off-chipMain

Memoryアクセス回数 * アクセス当たりの消費エネルギー

消費電力 * 実行時間  :非ストール時の消費電力  :ストール時の消費電力  :非ストール時の実行時間  :ストール時間•         とする( α=0~ 1 )•ヘルパーコアの   は読込み完了までの時間とする

stallstallactact TPTP actP

actTstallP

stallT

actstall PP actT

•メモリ貸与法の適用により、• 動作コア数減少、ストール時間削減→ SPU の消費エネルギー削減

  (ストール時の消費電力が大きいほど、削減効果大)• 主記憶アクセスが LS 間転送へ→ DMA 転送の消費エネルギー削減

Page 21: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

α に対する消費エネルギーの変化(α: ストール時の消費電力の割合 /通常実行時の消費電力 )

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-30%

-20%

-10%

0%

10%

20%

30%

40%

50%

60%

HIMENO (SS)HIMENO (S)LU (256)LU (512)LU (1024)FFTMatrix_mul

α

消費

エネ

ルギ

ー削

減率

α=1 のとき、最大 52% の消費エネルギー削減α=0 のとき、最大 12% の消費エネルギー削減

性能向上が大きいプログラムでは α に対する変化

が大きい

ヘルパーコア実行ならびにアドレス変換による処理の増加> DMA 転送のエネルギー

削減

21

Page 22: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

消費エネルギー (α=0.4)

22

BASE

PB-P

REDI

CT

PB-M

EASU

RE

BASE

PB-P

REDI

CT

PB-M

EASU

RE

BASE

PB-P

REDI

CT

PB-M

EASU

RE

BASE

PB-P

REDI

CT

PB-M

EASU

RE

BASE

PB-P

REDI

CT

PB-M

EASU

RE

BASE

PB-P

REDI

CT

PB-M

EASU

RE

BASE

PB-P

REDI

CT

PB-M

EASU

RE

HIMENO(SS)

HIMENO (S)

LU (256) LU (512) LU (1024) FFT Matrix_mul

00.20.40.60.8

11.2

SPU LS 主記憶

正規

化消

費エ

ネル

ギー

0 0 0

321

2 31 1

1 1 10 0 0 0 00 00

最大で 32% の消費エネルギーの削減実行コア数減少、実行時間削減→ SPU の消費エネルギー削減主記憶アクセスが LS 間転送に置き換え→ DMA 転送の消費エネルギー削減

Page 23: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

まとめと今後の課題• プログラムの特徴に応じて演算性能とメモリ性能の

バランスをとるマルチコア向けオンチップメモリ貸与法– 適切なヘルパーコア数と貸与メモリのデータ割当てを決定– 自動ソースコード変換により実装– 最大で、 46% の実行時間の削減と 32% の消費エネルギーの

削減を達成

• 今後の課題– 詳細な消費エネルギー評価

• コア、オンチップメモリ、主記憶のエネルギー比を変更– 消費エネルギーを考慮したヘルパーコア数決定法の考案 23

Page 24: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

Backup slides

Page 25: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

SS S 256 512 1024HIMENO LU FFT Matrix_

mul

0%

20%

40%

60%

80%

100%

PB-PREDICT PB-MEASURE

主記

憶ア

クセ

ス削

減率

主記憶アクセス削減率

00 0 0

111

11

21

2

3 3

25

Page 26: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

使用メモリ量

26

Page 27: 演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法

BASE

PB-P

RED

ICT

PB-M

EASU

RETH

ROTT

LEBA

SEPB

-PRE

DIC

TPB

-MEA

SURE

THRO

TTLE

BASE

PB-P

RED

ICT

PB-M

EASU

RETH

ROTT

LEBA

SEPB

-PRE

DIC

TPB

-MEA

SURE

THRO

TTLE

BASE

PB-P

RED

ICT

PB-M

EASU

RETH

ROTT

LEBA

SEPB

-PRE

DIC

TPB

-MEA

SURE

THRO

TTLE

BASE

PB-P

RED

ICT

PB-M

EASU

RETH

ROTT

LE

HIMENO(SS)

HIMENO (S) LU (256) LU (512) LU (1024) FFT Matrix_mul

00.20.40.60.8

11.2

演算 DMA転送によるストールアドレス変換

正規

化実

行時

間既存研究との比較

27

0 0 03

21

2

3

1 1

1 1 10 0 0 0 00 00 1 0 0 0 0 0 0