Transcript + conflict

チップマルチプロセッサにおける
データ・プリフェッチ効果の分析
○ 福本尚人,三原智伸
九州大学 大学院システム情報科学府
情報理学専攻
井上弘士,村上和彰
九州大学 大学院システム情報科学研究院
情報理学部門
2007/6/1
1
発表手順
• 研究の背景・目的
• 効果に基づくプリフェッチの分類法
– マルチプロセッサ
– チップマルチプロセッサ
• 性能モデル式による定性的評価
• 定量的評価
• まとめ
2007/6/1
2
研究の背景
• CMP (Chip MultiProcessor)の登場
– 1つのチップに複数のプロセッサコアを搭載
– 並列処理により性能向上
– 例 POWER5, Core2 Duo…
• CMPの高性能化阻害要因
CMP
コア
コア
L1 $
L1 $
– メモリウォール問題の深刻化
• 主記憶へのアクセス頻度の増加
• コアあたりのメモリバンド幅の減少
データ・プリフェッチにより、
平均メモリアクセス時間を削減
2007/6/1
L2 $
チップ
3
研究の背景・目的
• 研究の背景
– 従来のプリフェッチ手法はシングルコアプロセッサ
前提
– CMPでも高い性能向上を発揮できるか分からない
– メモリ性能をさらに向上させるためにはCMPの
特性を考慮したプリフェッチ手法が必要では?
• 研究目的
– CMPにおけるプリフェッチ効果の分析
2007/6/1
4
発表手順
• 研究の背景・目的
• 効果に基づくプリフェッチの分類法
– マルチプロセッサ
– チップマルチプロセッサ
• 性能モデル式による定性的評価
• 定量的評価
• まとめ
2007/6/1
5
効果に基づくプリフェッチの分類法(1/2)
• プリフェッチ処理においてアクセス対象となる
データ(プリフェッチ・データ)に着目
• プリフェッチ・データの状態を定義
– 初期状態:プリフェッチ・データがキャッシュに読
込まれた直後の状態
– 状態はメモリ性能へ影響を与えるイベントにより
遷移
– 最終状態:プリフェッチ・データがキャッシュから追
出されるときの状態
2007/6/1
6
効果に基づくプリフェッチの分類法(2/2)
• メモリ性能へ影響を与えるイベント
1. プリフェッチ・データの参照
• メモリアクセス時間の削減
2. プリフェッチ・データによってキャッシュ
から追出されたデータへの参照
•
コア2
L1$
L1$
A L2$
L2$A
キャッシュミスの増加
3. プリフェッチにより共有状態になった
データへの書込み
主記憶
• プリフェッチ・データの無効化
• 無効化要求の増加
• 状態名
– Useful: 1が発生した状態
– Conflict:2が発生した状態
– Harmful:3が発生した状態
2007/6/1
コア1
1.
2.
3.
4.
3の例
コア2:prefetch A
データが共有状態へ
コア1:Store A
コア2のデータが
無効化
7
シングルプロセッサにおける
プリフェッチ・データの状態遷移
プリフェッチ・
データの参照
Useful
プリフェッチ・
データの参照
Useful/Conflict
2007/6/1
Useless
追い出された
データの参照
Useless/Conflict
•Useless:
プリフェッチ・データが
参照されていない状態
•Useful:
プリフェッチ・データが
参照された状態
•Conflict:
プリフェッチにより追い
出されたデータへの
参照があった状態
8
マルチプロセッサにおける
プリフェッチ・データの状態遷移*
プリフェッチ・
データの参照
Useful
プリフェッチ・
データの参照
Useful/Conflict
Useless
追い出された
データの参照
Useless/Conflict
•Useless:
プリフェッチにより
プリフェッチ・データが
共有状態になった
参照されていない状
データへの書きこみ 態
Harmful
追い出された
データの参照
プリフェッチにより
共有状態になった Harmful/Conflict
データへの書きこみ
•Useful:
プリフェッチ・データが
参照された状態
•Conflict:
プリフェッチにより追
い出されたデータへ
の参照があった状態
•Harmful:
プリフェッチによる無
効化要求が発生した
状態
* Jerger, N., Hill, E., and Lipasti, M., ``Friendly Fire: Understanding the Effects of Multiprocessor Prefetching‘’ In Proceedings of the IEEE
9
International Symposium on Performance Analysis of Systems and Software (ISPASS), 2006.
マルチプロセッサとCMPの違い
マルチプロセッサ
• マルチプロセッサ
– プロセッサ間の通信の際、オフチップ
をまたぐ必要あり
• プロセッサ間の通信が遅い
コア
コア
L1$
L1$
L2$
L2$
• CMP
– プロセッサコア間の通信の際、オフ
チップをまたぐ必要なし
• プロセッサコア間の通信が高速
• あるコアがプリフェッチしたデータを周
りのコアが高速にアクセス可能
チップ
CMP
コア
コア
L1 $
L1 $
L2 $
2007/6/1
10
CMPにおいて新たに増えるイベント
• プリフェッチ・データの他コアからの参照
– 下位メモリ階層よりプリフェッチしたデータを他コアが
参照
– そのデータを参照したコアのメモリアクセス時間を削減
• このイベントが発生した後の状態名:Remote
コア1
コア2
A L1 $
L1 $ A
A L2 $
2007/6/1
A
主記憶
1. コア1:prefetch A
2. コア2:Load A
11
CMPにおけるプリフェッチ・データの状態遷移
Useless
他のコア
からの
参照
Useful
プリフェッチ・
データの参照
Useless/Remote
追い出された
データへの参照
Useful/Conflict
プリフェッチ・
データの参照
2007/6/1
Harmful
Useless/Conflict
/Remote
Useless/Conflict
他のコア
からの
参照
Harmful/Conflict
12
CMPにおけるプリフェッチ・データの状態遷移
Useless
Useful
Harmful
Useless/Remote
プリフェッチにより
キャッシュミス増加
Useless/Conflict
Useful/Conflict
Harmful/Conflict
Useless/Conflict
/Remote
2007/6/1
13
CMPにおけるプリフェッチ・データの状態遷移
プリフェッチ・
データが参照さ
れる
プリフェッチによる
無効化要求の増加
プリフェッチ・
データが他のコ
アに参照される
Useless
Useful
Harmful
Useless/Remote
Useless/Conflict
Useful/Conflict
Useless/Conflict
/Remote
2007/6/1
プリフェッチ・
データが参照さ
れない
Harmful/Conflict
14
発表手順
• 研究の背景・目的
• 効果に基づくプリフェッチの分類法
– マルチプロセッサ
– チップマルチプロセッサ
• 性能モデル式による定性的評価
• 定量的評価
• まとめ
2007/6/1
15
性能モデル式(1/2)
あるスレッドの実行クロックサイクル
CC  CCexe  CCmem  CCoverlap
CC
CCexe
:実行クロックサイクル数
CC mem
:メモリアクセスに要するクロックサイクル数
:演算実行に要するクロックサイクル数
CCoverlap :オーバーラップ実行したクロックサイクル数
2007/6/1
16
性能モデル式(2/2)
CCmem  AC  [ HCCL1  MRL1 
{SBCC  (1  MRL1R )  HCCL1  MRL1R 
( HCCL 2  MRL 2  ( MBCC  MCL 2 ))}] :メモリアクセス回数
AC
HCCL1 , HCCL 2 :L1(L2)キャッシュアクセス時間
MRL1 , MRL 2
:L1(L2)キャッシュミス率
MRL1R
:周りのコアのL1キャッシュに対するミス率
SBCC, MBCC :L1-L2間(L2-主記憶間)バスアクセス時間
MCL 2
:主記憶アクセス時間
2007/6/1
コア
コア
L1 $
L1 $
L2 $
主記憶
17
プリフェッチによるメモリアクセス時間の変化
CCmem  AC  [ HCCL1  MRL1 
{SBCC  (1  MRL1R )  HCCL1  MRL1R 
( HCCL 2  MRL 2  ( MBCC  MCL 2 ))}] MRL1(MRL2)
SBCC(MBCC)
MRL1R
Useful(プリフェッチ・データの参照)
↓
-
-
Useless(参照なし)
-
↑
-
Remote(周りのコアからの参照)
-
-
↓
Conflict(必要なデータの追出し)
↑
↑
-
Harmful(無効化要求の増加)
-
-
Harmfulによる悪影響を小さくし、Remoteを利用することで、
CMPにおいてより高い性能向上を得ることが可能
18
プリフェッチ効果の定量的分析
• 分析項目
– プリフェッチ・データの最終状態の割合
– 平均メモリアクセス時間
• シミュレーション環境
– M5:CMPシミュレータ
• L1キャッシュでプリフェッチ
• ストライドプリフェッチ、taggedプリフェッチ
• MOESIプロトコル
– ベンチマークプログラム
コア
D
I
4MB
8way
コア
D
I
コア
D
L2$
I
コア
D
64KB
2-way
• SPLASH2:並列計算用の科学技術計算
主記憶
2007/6/1
I
19
周りのコアが得をする場合(Remote)
プリフェッチ・データの
最終状態の割合
周りのコアが得を
する(+ conflict)
Harmful/Conflict
Harmful
周りのコアが得を
する
参照されない
Useless/Conflict/
Remote
Useless/Conflict
Useless/Remote
参照される場合
Useful/Conflict
1 2
FMM
Useless
LU
Radix Water
Useful
1.ストライドプリフェッチ 2.taggedプリフェッチ
•周りのコアが得をするプリフェッチは約5%
2007/6/1
20
プリフェッチによるトラフィックの増加
プリフェッチ・データの
最終状態の割合
Harmful/Conflict
Harmful
トラフィックが増加
する場合
Useless/Conflict/
Remote
Useless/Conflict
Useless/Remote
参照される場合
Useful/Conflict
1 2
FMM
Useless
LU
Radix Water
Useful
1.ストライドプリフェッチ 2.taggedプリフェッチ
2007/6/1
•taggedプリフェッチはトラフィックの増加量が大きい
•無効化要求が増加するプリフェッチは極めて少ない
21
平均メモリアクセス時間
(Clock Cycles)
プリフェッチによるバスアクセス時間の変化
MCL2
MBSS
SBCC
HCCL2
HCCRL1
HCCL1
バスアクセス
時間
1 2 3
FMM
LU
Radix
Water
1.ベース 2.ストライドプリフェッチ 3.taggedプリフェッチ
プリフェッチによるバスアクセス時間の増加は小さい
2007/6/1
22
まとめと今後の課題
• まとめ
– 発行された各プリフェッチを分類し調査することで、
CMPにおけるデータ・プリフェッチ効果を分析した
• 従来のプリフェッチ手法は周りのコアからの参照を有効活用していない
• プリフェッチによる無効化要求の増加は極めて小さい
• プリフェッチによるトラフィックの増加が性能へ与える影響は小さい
• 今後の課題
– より詳細なプリフェッチ効果の分析
• プリフェッチ手法、ベンチマークプログラム、キャッシュ構成
– CMP向けプリフェッチ手法の考案
2007/6/1
23
ご清聴ありがとうございました
2007/6/1
24
プリフェッチによる無効化要求が
ほとんど発生しないことについて
100%
Useless (1)
Useless/Conflict (4)
Conflict/Harmful (6)
Harmful (3)
Conflict/Useful (5)
Useful (2)
90%
80%
70%
Taxonomy Breakdown
• マルチプロセッサでは、
プリフェッチによって発
生する無効化要求の割
合が多い(従来研究)
• CMPでは、なぜ少ない
のか?
60%
50%
40%
30%
20%
10%
0%
cddp
seq
wp
SPECjbb
無効化要求の
発生する場合
(約20%)
2007/6/1
Jerger,
N., Hill, E., and Lipasti, M., ``Friendly Fire: Understanding the Effects of Multiprocessor Prefetching‘’ In Proceedings of the IEEE 25
International Symposium on Performance Analysis of Systems and Software (ISPASS), 2006.
CMPにおいてプリフェッチによる無効化要求の
発生が少ない理由
CMP
• CMPでは、マルチプロセッサよ
りコヒーレンスを維持する
キャッシュメモリのサイズが小
さい
コア
コア
L1 $
L1 $
L2 $
サイズ小 マルチプロセッサ
• 共有データがキャッシュメモリ
から追い出されやすくなり、共
有データへの書き込みが少な
くなる
2007/6/1
サイズ大
コア
コア
L1$
L1$
L2$
L2$
26
プリフェッチしたデータが無効化される割合
(taggedプリフェッチ)
128KB
256KB
512KB
1MB
キャッシュサイズの増加とともにプリフェッチしたデータが
無効化される割合が増加する
2007/6/1
27