高性能化と低消費エネルギー化を目的としたマルチコア

マルチコア向けオンチップメモリ貸与法に
おける実行コード生成法の改善
○福本 尚人,今里 賢一,
井上 弘士,村上 和彰
九州大学
発表手順
• マルチコア・プロセッサの高性能化阻害要因
• 演算/メモリ性能バランスを考慮したマルチコ
ア向けオンチップメモリ貸与法
• 評価
• まとめと今後の課題
2
マルチコア・プロセッサ
• マルチコア・プロセッサ
– 1チップに複数のプロセッサコアを搭載
– 複数コアによる並列処理により高性能化
Cell/B.E.(ソニー/東芝/IBM)
IBM:http://domino.research.ibm.com/comm/res
earch_projects.nsf/pages/multicore.CellBE.html
Core i7 (Intel)
http://ascii.jp/elem/000/000/124/124281/img.html
3
対象マルチコア・プロセッサ
並列化
プログラム
コア
SPM
コア
SPM
コア
SPM
コア
SPM
チップ
コア
SPM
コア
SPM
コア
SPM
ソフトウェア制御
オンチップメモリ
オンチップ接続
主記憶
4
マルチコア・プロセッサの性能向上を阻害
する要因は?
• メモリ性能によるトータル性能の抑制(メモリウォー
ル問題の顕在化)
– 長大な主記憶アクセスレイテンシ
– オフチップメモリバンド幅の不足
Ideal memory
256KB private
memory
1
○
SpeedUp
SpeedUp
10
8
6
4
2
0
プログラム:Barnes
2
3
4 5 6
実行コア数
7
Idealとの差が小さい
8
12
10
8
6
4
2
0
プログラム:Cholesky
Ideal
memory
1
2
256KB private
memory
3 4 5 6 7 8
実行コア数
× Idealと比較して1/2の性能
5
発表手順
• マルチコア・プロセッサの高性能化阻害要因
• 演算/メモリ性能バランスを考慮したマルチコ
ア向けオンチップメモリ貸与法
• 評価
• まとめと今後の課題
6
• 従来方式:全てのコアで並
列処理
• 問題:メモリ性能によりトー
タル性能が抑えられる場
合、性能向上効果が低い
SpeedUp
提案手法のねらい
12
10
8
6
4
2
0
プログラム: Cholesky
Ideal
memory
本研究
のねらい
1
2
3
256KB private
memory
4 5 6 7 8
実行コア数
一部のコアをメモリ性能向上用に活用する
ことでトータル性能向上をねらう
7
マルチコア向けオンチップメモリ貸与法
用途に応じてコアを使い分ける
• メインコア
– 並列化プログラムを実行
• ヘルパーコア
– メインコアに自身のメモリ
を提供(階層メモリとして
利用)
– コアはアイドル
ヘルパーコア
メインコア
コア
コア
コア
コア
SPM
SPM
SPM
SPM
Idle
オンチップ接続
ロード
主記憶
8
マルチコア向けオンチップメモリ貸与法
• ヘルパーコアの導入により メモリ性能不足
○メモリ性能が向上
メインコア
コア
コア
×演算性能が低下
SPM
目標:「メモリ性能向上」
SPM
演算性能不足
ヘルパーコア
コア
コア
SPM
SPM
オンチップ接続
V
「演算性能低下」
主記憶
コアの配分を適切に決定することが重要
9
アプリケーション特性に応じた
コアの使い分け
Speed up
Speedup
10
8
6
4
2
0
プログラム: Barnes
Ideal memory
256KB private
memory
1
2
3 4 5 6
実行コア数
全てメインコア
7
8
12
10
8
6
4
2
0
プログラム: Cholesky
Ideal
memory
1
2
3
4
256KB private
memory
5 6 7 8
実行コア数
メインコア数3
ヘルパーコア数1
コア
コア
コア
コア
コア
コア
コア
コア
SPM
SPM
SPM
SPM
SPM
SPM
SPM
SPM
オンチップ接続
○従来の全コア実行により高性能化
オンチップ接続
○メモリ性能向上による性能向上 大
○演算性能低下による性能低下 小
10
発表手順
• マルチコア・プロセッサの高性能化阻害要因
• 演算/メモリ性能バランスを考慮したマルチコ
ア向けオンチップメモリ貸与法
– 基本概念
– ヘルパーコアのデータ配置
– コア配分の決定
• 評価
• まとめと今後の課題
11
提案手法の適用手順
1. メインコア数1で事前実行を行い、プロファイル情
報を取得
2. ヘルパーコアのデータ配置と実行コア配分を決定
3. ソースコードに提案手法を適用
入力
元
ソースコード
分析
事前実行
プロファイ
ル情報
•DMA転送の情報
•並列性に関する情報...
ヘルパーコアの
データ配置
実行コア配分
ソースコード
変換
提案手法が適用され
たソースコード
12
ヘルパーコアのデータ配置の決定方法
• 目標: メインコアの主記憶アクセス回数が最小となるヘルパー
コアのデータ配置の算出
• 手順
1. 事前実行を行いプロファイル情報を取得
2. 各データに対するアクセス回数を集計
3. アクセス回数の多い順にデータをSPMへ配置
プロファイ
ル情報
アクセス
回数の集計
6000
アクセス回数
入力
元
ソースコード
メインコア数1で
事前実行
4000
2000
0
アドレス
DMA転送の
トレース
保持する
データの選択
ヘルパーコアの
データ配置
13
最適なコア配分の見積もり方法
• 目標: 最も性能が高くなるコア配分の算出
• 手順
入力
元
ソースコード
メインコア数1で
事前実行
性能予測
プロファイ
ル情報
実行時間
1. 事前実行を行いプロファイル情報を取得
2. 性能モデル式にプロファイル情報を代入することで全てのコ
ア配分の実行時間を予測
3. 最も実行時間の短いコア配分を選択
0.8
0.6
0.4
0.2
0
予測実行時間
1:6 2:5 3:4 4:3 5:2 6:1 7:0
•並列実行部の
実行時間の割合
•主記憶アクセス
削減率
メインコア: ヘルパーコア
最適なコア
配分の選択
予測最適
コア配分
14
発表手順
• マルチコア・プロセッサの高性能化阻害要因
• 演算/メモリ性能バランスを考慮したマルチコ
ア向けオンチップメモリ貸与法
• 評価
• まとめと今後の課題
15
評価環境
• プラットフォーム
– SPE数7のCell/B.E.
– SPEに対して手法を適用
• ベンチマーク・プログラム
– 姫野ベンチマーク, Susan(MiBench), LU(SPLASH-2), FFT
(Cell SDK), Matrix Mul (Cell SDK)
– 事前実行には同一入力を使用
• 評価モデル
– CONV:従来手法(全てのコアでプログラム実行)
– PB-PREDICT:提案手法(予測に基づくコア配分)
– PB-IDEAL:提案手法(理想的なコア配分)
16
評価結果(性能)
CONV
SpeedUp
2
PB-IDEAL
4:3
メインコア数6
ヘルパーコア数1
5:2
5:2 6:1
1.5
1
PB-PREDICT
7:0
6:1 6:1
7:0
7:0 7:0 7:0 7:0 7:0 7:0 7:0 7:0 6:1 7:0 7:0
6:1
7:0
0.5
0
SS
SSS
HIMENO
512
SUSAN
FFT
LU
256
MATRIX_MUL
17
評価結果(性能)
0.5
1
2
3
4
PB-IDEAL
4:3
メインコア数6
100%
ヘルパーコア数1
5:2
80%
60%
40%
6:1
20%7:0 7:0 7:0 7:0 7:0 7:0 6:1 7:0 7:0
7:0
7:0 7:0
0%
Data transfer
100%
80%
1.5
5:2 6:1
60%
6:1 6:1
40%
7:0
7:0
20%
1
0%
Data transfer
Rate of On-chip
SpeedUp
主記憶アクセス削減率
2
PB-PREDICT
Rate of On-chip
主記憶アクセス削減率
CONV
5
6
ヘルパーコア数
#of
Helper Cores
1
2
3
4
5
6
ヘルパーコア数
#of
Helper Cores
0
SS
SSS
HIMENO
512
SUSAN
FFT
LU
256
MATRIX_MUL
18
評価結果(性能)
CONV
SpeedUp
2
PB-IDEAL
4:3
メインコア数6
ヘルパーコア数1
5:2
5:2 6:1
1.5
1
PB-PREDICT
7:0
6:1 6:1
7:0
7:0 7:0 7:0 7:0 7:0 7:0 7:0 7:0 6:1 7:0 7:0
6:1
7:0
0.5
0
SS
SSS
HIMENO
512
SUSAN
FFT
LU
256
MATRIX_MUL
19
発表手順
• マルチコア・プロセッサの高性能化阻害要因
• 演算/メモリ性能バランスを考慮したマルチコ
ア向けオンチップメモリ貸与法
• 評価
• まとめと今後の課題
20
まとめと今後の課題
• プログラムの特性に応じてコアをメモリ性能向上
に活用するマルチコア向けオンチップメモリ貸与
法を提案
– プロファイル情報をもとにSPMのデータ配置と実行コア
配分を決定
– 演算性能を犠牲にしてでもメモリ性能を向上させること
で性能向上を達成
• 今後の課題
– ヘルパーコアのデータ配置方式の改善
(プログラム実行時にデータの入替えを行う)
21
Backup slides
性能モデル式
メインコア数n, ヘルパーコア数mの実行時間
T( m,n)  Texe( n)  Tmem( m,n)
メインコア数nの演算時間
メインコア1のと
きの演算時間
メインコア数n, ヘルパーコア数mのDMA実行時間
並列化部分の実行
時間の割合(0~1)
Texe( n)  Texe(1)  F / n  (1  F )
メインコア数
ATLS :LSアクセス時間
MP :ミスペナルティ
DMA回数
平均DMA実行時間
Tmem(m,n)  AC(n)  AMAT(m)
AMAT( m )  HRLSR ( m )  ATLS
ヘルパーコア
のヒット率
 (1  HRLSR ( m ) )  MP
23