キャッシュ・ミス頻発命令と その特徴解析

キャッシュ・ミス頻発命令と
その特徴解析
○堂後靖博† 三輪英樹‡ ヴィクトル・M・グラ-ル・フェヘイラ‡
井上弘士‡ 村上和彰‡
† 福岡大学
2004/12/2
‡ 九州大学
1
発表内容
• 背景(Memory Wall Problem、メモリ性能向上技術の課題)
• 実験環境
• キャッシュ・ミス頻発命令の特徴解析
–
–
–
–
発生頻度
入力依存
時間依存
アクセス・パタン
• 結論
– キャッシュ・ミス頻発命令はプログラム実行振舞いにより
特徴が異なる
– 特徴に応じた最適化手法の適用
2004/12/2
2
背景
プロセッサ-主記憶間の性能差拡大
(Memory Wall Problem)
解決手段
キャッシュ・ミス頻発命令(Delinquent命令:D命令)
DLoad命令
(Top10)
DLoad命令(Top50)
90%以上!
2004/12/2
出典:J.D.Collins,H.Wand,D.M.Tullsen,C.Hughes,Y.F.Lee,D.Lavery,J.P.Shen,
”Speculative Precomputation:Long-range Prefetching of Delinquent Loads”
3
D命令に着目したメモリ性能向上技術の課題
これまでのD命令に着目したメモリ性能向上技術
⇒ 固定的に決定したD命令を活用
 プログラム実行振舞いの依存項目
– プロセッサ構成
– メモリ構成
– 入力データ
各D命令の振舞いが
大きく異なるのでは?
D命令に着目したより効果的な高性能化方式の確立
D命令の特徴を詳細に解析
実行振舞いに適した最適化方式の選択
2004/12/2
4
D命令の特徴解析
• 発生頻度
プログラムの違いがD命令の出現頻度に与える影響
入力データの違いがD命令の出現頻度に与える影響
• 入力依存
入力データの違いがD命令の種類に与える影響
• 時間依存
プログラム実行中におけるD命令の発生頻度の変化
各D命令の生存区間
• アクセス・パタン
各D命令が参照するアドレス・パタンの調査
2004/12/2
5
実験環境(1/2)
• 高性能プロセッサを想定
– L2キャッシュまでがオンチップ化
• シミュレータ:SimpleScalar(ver.3.0d)
– シミュレータ構成
• 命令発行:out-of-order
• キャッシュ・メモリ
– L1データ:32KB(64B/lines,2way,256lines)
– L1命令:32KB(64B/lines,1way,512lines)
– L2命令データ統合:2MB(64B/lines,4way,8192lines)
2004/12/2
6
実験環境(2/2)
• ベンチマーク・プログラム
– SPEC CPU 2000ベンチマーク・セット
• 浮動小数点演算プログラム(3種類):
– 177.mesa、179.art、183.equake
• 整数演算プログラム(7種類):
– 164.gzip、175.vpr、176.gcc、181.mcf、197.parser、
255.vortex、256.bzip2
• 入力データ
– small input(完全実行)
– reference input(fwd:20億命令、exe:2億命令)
– training input(fwd:20億命令、exe:2億命令)
2004/12/2
7
キャッシュ・ミス頻発命令の特徴解析
オフチップ・アクセスを引起すL2ミス
• 発生頻度
プログラムの違いがD命令の出現頻度に与える影響
入力データの違いがD命令の出現頻度に与える影響
• 入力依存
入力データの違いがD命令の種類に与える影響
• 時間依存
プログラム実行中におけるD命令の発生頻度の変化
各D命令の生存区間
• アクセス・パタン
各D命令が参照するアドレス・パタンの調査
2004/12/2
8
2004/12/2
D命令は存在!
25
6.b
zip
2
or
te
x
25
5.v
er
e
qu
ak
ref input L2
19
7.p
ar
s
18
3.e
cf
small input L2
18
1.m
rt
80%
17
9.a
a
es
17
7.m
cc
17
6.g
pr
zip
17
5.v
16
4.g
Delinquent命令(Top10)が
全L2キャッシュ・ミスに占める割合
D命令発生頻度
train input L2
100%
90%以上!
60%
40%
20%
0%
ベンチマーク・プログラム
9
キャッシュ・ミス頻発命令の特徴解析
• 発生頻度
プログラムの違いがD命令の出現頻度に与える影響
入力データの違いがD命令の出現頻度に与える影響
• 入力依存
入力データの違いがD命令の種類に与える影響
• 時間依存
プログラム実行中におけるD命令の発生頻度の変化
各D命令の生存区間
• アクセス・パタン
各D命令が参照するアドレス・パタンの調査
2004/12/2
10
2004/12/2
90%以上が10個のD命令
25
6.b
zip
2
or
te
x
25
5.v
se
r
e
qu
ak
ref input L2
19
7.p
ar
18
3.e
cf
small input L2
18
1.m
rt
17
9.a
a
es
17
7.m
cc
17
6.g
pr
z ip
17
5.v
16
4.g
Delinquent命令(Top10)が
全L2キャッシュ・ミスに占める割合
D命令発生頻度
train input L2
100%
80%
60%
40%
20%
0%
ベンチマーク・プログラム
11
25
6.b
zip
2
or
te
x
25
5.v
er
e
qu
ak
ref input L2
19
7.p
ar
s
18
3.e
cf
small input L2
18
1.m
rt
17
9.a
a
es
17
7.m
cc
17
6.g
pr
zip
17
5.v
16
4.g
Delinquent命令(Top10)が
全L2キャッシュ・ミスに占める割合
D命令発生頻度
train input L2
100%
80%
60%
40%
20%
0%
ベンチマーク・プログラム
2004/12/2
12
入力Rに比べ、他入力ではミスを発生させる命令の局所性が低い
2004/12/2
25
6.b
zip
2
or
te
x
25
5.v
se
r
e
qu
ak
ref input L2
19
7.p
ar
18
3.e
cf
small input L2
18
1.m
rt
17
9.a
a
es
17
7.m
cc
17
6.g
pr
z ip
17
5.v
16
4.g
Delinquent命令(Top10)が
全L2キャッシュ・ミスに占める割合
D命令発生頻度
train input L2
100%
80%
60%
40%
20%
0%
ベンチマーク・プログラム
入力の違いがD命令の存在に与える影響は小さい!!
13
キャッシュ・ミス頻発命令の特徴解析
• 発生頻度
プログラムの違いがD命令の出現頻度に与える影響
入力データの違いがD命令の出現頻度に与える影響
• 入力依存
入力データの違いがD命令の種類に与える影響
• 時間依存
プログラム実行中におけるD命令の発生頻度の変化
各D命令の生存区間
• アクセス・パタン
各D命令が参照するアドレス・パタンの調査
2004/12/2
14
入力依存性
small vs. reference
Top 16(R)
Top 32(R)
Top 64(R)
100%
80%
入力SでのD命令
が検出されていない
60%
40%
20%
ベンチマーク・プログラム
入力により異なるD命令が存在!!
25
6.b
zip
2
or
te
x
25
5.v
se
r
19
7.p
ar
e
qu
ak
18
3.e
cf
18
1.m
rt
17
9.a
a
es
17
7.m
cc
17
6.g
17
5.v
16
4.g
2004/12/2
pr
0%
zip
small inputでのD命令がreference input
におけるD命令を包含する割合
Top 8(R)
15
2004/12/2
ベンチマーク・プログラム
比較的高い包含率
25
6.b
zip
2
or
te
x
se
r
e
Top 32(R)
25
5.v
19
7.p
ar
qu
ak
Top 16(R)
18
3.e
cf
18
1.m
rt
a
Top 8(R)
17
9.a
es
17
7.m
cc
17
6.g
pr
17
5.v
zip
16
4.g
small inputでのD命令がreference input
におけるD命令を包含する割合
入力依存性
small vs. reference
Top 64(R)
100%
80%
60%
40%
20%
0%
16
2004/12/2
25
6.b
zip
2
or
te
x
se
r
e
Top 32(R)
25
5.v
19
7.p
ar
qu
ak
Top 16(R)
18
3.e
cf
18
1.m
rt
a
Top 8(R)
17
9.a
es
17
7.m
cc
17
6.g
pr
17
5.v
zip
16
4.g
small inputでのD命令がreference input
におけるD命令を包含する割合
入力依存性
small vs. reference
Top 64(R)
100%
80%
60%
40%
20%
0%
ベンチマーク・プログラム
入力が検出されるD命令の種類に与える影響→比較的大!!
17
キャッシュ・ミス頻発命令の特徴解析
• 発生頻度
プログラムの違いがD命令の出現頻度に与える影響
入力データの違いがD命令の出現頻度に与える影響
• 入力依存
入力データの違いがD命令の種類に与える影響
• 時間依存
プログラム実行中におけるD命令の発生頻度の変化
各D命令の生存区間
• アクセス・パタン
各D命令が参照するアドレス・パタンの調査
2004/12/2
18
D命令の時間依存(164.gzip)
6
D命令生存!
5
ミス回数(×106)
D1
4
ミス発生なし
D2
3
D3
2
D4
1
最適化の恩恵→小
D5
0
0
2004/12/2
15
30
45
実行サイクル(×107)
60
75
19
D命令の時間依存(177.mesa)
10
D1
D2
ミス回数(×104)
8
D3
6
各D命令のミス発生状況は
プログラム実行と共に大きく変化
4
2
D4
D5
0
0
2004/12/2
15
30
45
実行サイクル(×107)
60
75
20
キャッシュ・ミス頻発命令の特徴解析
• 発生頻度
プログラムの違いがD命令の出現頻度に与える影響
入力データの違いがD命令の出現頻度に与える影響
• 入力依存
入力データの違いがD命令の種類に与える影響
• 時間依存
プログラム実行中におけるD命令の発生頻度の変化
各D命令の生存区間
• アクセス・パタン
各D命令が参照するアドレス・パタンの調査
2004/12/2
21
D命令のアクセス・パタン(164.gzip:D1)
2710
メモリ・アドレス(×105)
2705
2700
2695
2690
固定ストライド型
2685
0
5000
10000
2004/12/2
ミス発生時における参照アドレス
15000
ミス回数
20000
25000
30000
22
D命令のアクセス・パタン(176.gcc:D1)
メモリ・アドレス(×105)
25000
20000
15000
10000
局所集中型
5000
0
0
2004/12/2
5000
10000
15000
ミス回数
20000
25000
30000
23
D命令のアクセス・パタン(181.mcf:D1)
2800
メモリ・アドレス(×105)
2780
2760
2740
2720
2700
2680
広域分散型
2660
0
2004/12/2
5000
10000
15000
ミス回数
20000
25000
30000
24
キャッシュ・ミス頻発命令の特徴解析
• 発生頻度
多くのプログラムでD命令が存在
入力データの違いがD命令の出現頻度に与える影響
小
• 入力依存
入力データの違いがD命令の種類に与える影響
大
• 時間依存
ミス発生状況はプログラム実行と共に大きく変化
各D命令の生存区間 → D命令によって異なる
• アクセス・パタン
固定ストライド型、局所集中型、広域分散型
2004/12/2
25
D命令の活用方法
D命令を考慮したメモリ性能向上のための課題
 D命令の検出
 静的プロファイリング
 動的プロファイリング
プロファイル情報の活用
D命令の入力依存、時間依存
動的プロファイリング
有効!!
 D命令に基づく最適化
D命令の時間依存、アクセスパタン
各D命令の特徴に応じた手段の適用!!
2004/12/2
26
結論
• D命令の特徴解析
– 固定的なD命令の決定だけでは不十分
– 各D命令の特徴に応じた手段の適用が必要
• 今後の課題
– D命令を考慮したメモリ高性能化技術の確立
– 最適化手法の適用に対する性能評価
2004/12/2
27
2004/12/2
28
2004/12/2
ベンチマーク・プログラム
25
6.b
zip
2
or
te
x
se
r
e
Top 32(T)
25
5.v
19
7.p
ar
qu
ak
Top 16(T)
18
3.e
cf
18
1.m
rt
Top 8(T)
17
9.a
a
cc
pr
17
7.m
es
17
6.g
17
5.v
zip
16
4.g
small inputでのD命令がtrain input
におけるD命令を包含する割合
入力依存性
small vs. training
Top 64(T)
100%
80%
60%
40%
20%
0%
29