SRAM/DRAMハイブリッド・キャッシュの実行時動作モー

SRAM/DRAMハイブリッド・キャッシュ
における実行時動作モード決定法の提案
○橋口慎哉† 福本尚人†
井上弘士‡ 村上和彰‡
†九州大学大学院 システム情報科学府
‡九州大学大学院 システム情報科学研究院
1
発表手順
•
•
•
•
•
•
3次元実装技術
SRAM/DRAMハイブリッド・キャッシュ
研究目的
実行時動作モード決定法
評価実験
まとめと今後の課題
2
研究背景
• 3次元実装技術
– グローバル配線長の削減、チップ面積縮小
– 異なるプロセスを経て製造されたダイ同士の積層
• プロセッサ・ダイとDRAMダイを積層することに
よりオンチップ・メモリの大容量化を実現可能
→メモリウォール問題の解決策
出典:米インテル社
TSV(Through
Silicon Vias)
3
DRAMスタック法[1]
平均メモリ
アクセス時間[cc]
L1キャッシュの
アクセス時間[cc]
L1キャッシュ
ミスの割合
L2キャッシュの L2キャッシュ
主記憶の
アクセス時間[cc] ミスの割合 アクセス時間[cc]
AMAT  HT L1  MRL1 ( HT L2  MRL2  MMAT)
DRAMスタック
法の効果
(?)
60
DRAMスタック法(3次元実装)
64MB L2
(DRAM)
4MB Tag Core(s)
(SRAM) + L1(s)
[1]Bryan Black et al. “Die Stacking (3D) Architecture,”
International Symposium on Microarchitecture ,2006
L2キャッシュミス率[%]
4MB L2 Core(s)
(SRAM) + L1(s)
ベースプロセッサ
(2次元実装)
LU
50
FMM
40 Ocean
30
削減量小
FFT
削減量大
20 Cholesky
10
Barnes
0
WaterSpatial
Raytrace
2
4
8
16 32 64
L2キャッシュ容量[MB]
128
4
DRAMスタック法の問題点
プログラムによっては性能が低下する!
AMAT  HT L1  MRL1 ( HT L2  MRL2  MMAT)
DRAMスタック
法の効果
(?)
4MB L2 Core(s)
(SRAM) + L1(s)
ベースプロセッサ
(2次元実装)
性能向上率
3.0
2.5
DRAMスタック法(3次元実装)
64MB L2
(DRAM)
Ocean
2.0
性能向上
1.5
性能低下
1.0
0.5
4MB Tag Core(s)
(SRAM) + L1(s)
0
100
Cholesky
80
60
40
20
150
0 200
L2キャッシュミス率の削減率
[points]
100
50
0
L2キャッシュ
アクセス時間の増加
5
[cc] 5
SRAM/DRAM ハイブリッド・キャッシュ[2]
• 異なる2種類の動作モードをプログラムのメモリ参照
の特性に応じてプログラム間/内に切り替える
未使用
L2 Cache
(DRAM)
L2
Core(s)
Cache
(SRAM) + L1(s)
SRAMキャッシュモード
(高速・小容量L2キャッシュ)
L2
Core(s)
Tag
+ L1(s)
(SRAM)
切り替え
DRAMキャッシュモード
(低速・大容量L2キャッシュ)
DRAM
SRAM
Core(s)
+ L1(s)
6
[2] 橋口慎哉, 小野貴継, 井上弘士, 村上和彰, “3次元DRAM-プロセッサ積層実装を対象としたオンチッ
プ・メモリ・アーキテクチャの提案と評価,” 情報処理学会研究報告, Vol.2009-ARC-183, No.8, 2009年4月.
前回評価時における限界点
性能向上比
2D-BASE
3D-CONV
3D-HYBRID-STATIC
3D-HYBRID-DYNAMIC
静的制御方式で平均35%
動的制御方式で平均43%
の性能向上を達成
4
3.5
3
2.5
2
1.5
1
0.5
0
ベンチマークプログラム
ただし・・・
• 適切な動作モード(※)は既知
※より高い性能を実現
できる動作モード
• 実行時に動作モードを切り替える場合に発生する動作モード
7
切り替えオーバーヘッド(フラッシュ)の影響は未考慮
研究のねらい
• 研究目的
– SRAM/DRAMハイブリッド・キャッシュの動作
モード決定法の提案
– 動作モード切り替えオーバヘッドを考慮した
性能評価
動作モード
切り替え
動作モード決定
プログラム実行開始時のみ
(静的)
プログラム実行中
(動的)
プログラム実行前
(静的)
×適切な動作モードが入力に
依存する場合、対応不可
×適切な動作モードが入力に
依存する場合、対応不可
プログラム実行中
(動的)
適切な動作モードは入力に
大きく依存するため、
「動的決定・動的切り替え」
を選択
○入力に依存せず動作モード
の選択可能
8
プログラム実行中の適した動作モードの変化
200
150
100
50
0
mcf
区間
DRAMキャッシュモード
40
30
20
10
0
1
21
41
61
81
101
121
141
161
181
201
221
241
261
281
301
250
SRAMキャッシュモード
平均L1ミスペナルティ[cc]
DRAMキャッシュモード
1
59
117
175
233
291
349
407
465
523
581
639
697
755
813
871
平均L1ミスペナルティ[cc]
SRAMキャッシュモード
twolf
区間
※区間=プログラムの実行を一定回数のL2キャッシュアクセスで分割した単位
ある実行区間とその次の区間の適した動作モードが同じである確率
mcf → 95.9%
twolf → 100%
現在実行中の区間において高性能な動作モード
は次の区間においても同じであると考える
9
動作モード切り替え例
動作モード切り替え
(DRAMキャッシュモード
→SRAMキャッシュモード)
動作モード判定開始
区間
ナンバー
実行
動作モード
S
動作モード切り替え
(SRAMキャッシュモード
→DRAMキャッシュモード)
S
N-1
N
S
S
N+1 N+2
S
S
N+3
D
D
動作モード判定開始
M-1
M
M+1
D
D
D
プログラム
の実行
SRAMキャッシュ
SRAMキャッシュ
DRAMキャッシュ
モードが高性能
モードが高性能
モードが高性能
ウォームアップ区間
(動作モード決定・切り替え、)
動作モード
決定区間
ウォームアップ区間
L2 Cache
(DRAM)
未使用
L2
Core(s)
Cache
(SRAM) + L1(s)
SRAMキャッシュモード
S:SRAMキャッシュ・モード
D:DRAMキャッシュ・モード
L2
Core(s)
Tag
+ L1(s)
(SRAM)
DRAMキャッシュモード
10
動作モード決定のための判定式
動作モードを
決定したい区間
現在実行中の区間
区間
1
2
N-1
N
N+1
プログラム
の実行
以下の判定式を基に実行中の区間における適切な
動作モードを求め、それを次区間の動作モードに設定
if HT L 2 _ DRAM  HT L 2 _ SRAM
MRL 2 _ SRAM  MRL 2 _ DRAM 
MMAT
then :DRAMキャッシュモード
else :SRAMキャッシュモード
MRL2 _ SRAM/ MRL2 _ DRAM :SRAM/DRAMキャッシュのミスの割合
HT L2 _ SRAM, HT L2 _ DRAM, MMAT:SRAM/DRAMキャッシュ、主記憶のアクセス時間[cc]
11
L2キャッシュミス率推定の必要性
if HT L 2 _ DRAM  HT L 2 _ SRAM
MRL 2 _ SRAM  MRL 2 _ DRAM 
MMAT
then :DRAMキャッシュモード
else :SRAMキャッシュモード
HT L2 _ SRAM, HT L2 _ DRAM, MMAT
ハードウェア特性にのみ依存するため、既知と仮定
MRL2 _ SRAM/ MRL2 _ DRAM
プログラム特性に依存するため、実行中にのみ得ることが可能
• 実行中の動作モードにおけるミス率
→プログラム実行中に観測することは容易
• 実行中ではない動作モードにおけるミス率
→何らかの方法により推測する必要
12
DRAMキャッシュモード時の
ミス率推測法
(L2キャッシュがSRAMキャッシュと仮定したときのミス率を推測)
• 本モード時は下層SRAMのタグメモリは使用しない
→DRAMキャッシュ用タグとは別に推測用にSRAMキャッシュ
モードを想定してタグを格納し、ヒット/ミス情報を取得
– MRL 2 _ SRAM を完全に知ることが可能
未使用
L2
Tag
未使用
L2 Core(s)
Data + L1(s)
SRAMキャッシュモード
L2 Data
SRAMキャッシュ用
タグ記憶・比較
L2 Core(s)
Tag + L1(s)
DRAMキャッシュモード
13
SRAMキャッシュモード時の
ミス率推測法
(L2キャッシュがDRAMキャッシュと仮定したときのミス率を推測)
• DRAMキャッシュに格納可能なライン数分のタグ情報
を保持するメモリを搭載
→極めて大きな面積オーバヘッド
e.g. 32MB, 64B-LineSize・・・2.5MB-TagRAM
• いくつかのセットに対応する、少数のタグ情報のみ保
持し、面積オーバヘッドを緩和
※実現のためのハードウェア・サポートは検討中
14
評価実験~評価環境~
• 評価法:事前実行でトレースを取得し、メモリ性能値を算出
– プロセッサシミュレータ:M5
– ベンチマークプログラム:SPEC CPU 2000、Splash2から選択
• 評価モデル
– DRAM-STACK : DRAMスタック法
– D-HYBRID-IDEAL : 適した動作モードが既知であり、動作モード
切り替えオーバーヘッドはゼロの動的ハイブリッド・キャッシュ
– D-HYBRID : 提案する動的ハイブリッド・キャッシュ
• 1区間の長さ:L2キャッシュアクセス5M回
• 性能オーバヘッド見積もり:動作モード切り替え後、切り替え先の
キャッシュのライン数分のアクセスはミスすると仮定
動作周波数:3GHz
コア
オンチップ
SRAM$
モード
L1
キャッシュ
容量:32KB
アクセス時間:2cycles
容量:2MB
アクセス時間:6cycles
L2
キャッシュ
アクセス時間:181cycles
主記憶
容量:32MB
DRAM-STACK、
DRAM$モード アクセス時間:28cycles
15
動作モード予測精度[%]
適切な動作モードの予測精度
100
90
80
70
60
50
40
30
20
10
0
ベンチマークプログラム
16
100
90
80
70
60
50
40
30
20
10
0
SRAMキャッシュモード
平均L1ミスペナルティ[cc]
動作モード予測精度[%]
適切な動作モードの予測精度
DRAMキャッシュモード
100
80
60
40
20
0
1 4 7 1013161922252831343740434649525558616467
区間
ベンチマークプログラム
頻繁に適した動作モードが入れ替わる
17
適切な動作モードの予測精度
100
90
80
70
60
50
40
30
20
10
0
DRAMキャッシュモード
50
平均L1ミスペナルティ[cc]
動作モード予測精度[%]
SRAMキャッシュモード
40
30
20
10
0
1
2
区間
ベンチマークプログラム
区間数が少なく、1度予測が外れた時の影響が大きい
18
性能評価結果
メモリ性能向上比
DRAM-STACK
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
D-HYBRID-IDEAL
3.01
D-HYBRID
3.01
ベンチマークプログラム
19
性能評価結果
メモリ性能向上比
DRAM-STACK
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
D-HYBRID-IDEAL
3.01
D-HYBRID
3.01
ベンチマークプログラム
D-HYBRID-IDEALはDRAM-STACKに対して最大3.01倍、平均1.21倍の性能向上
↑プログラム実行中のメモリ参照の変化に追従できるため
20
性能評価結果
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
D-HYBRID-IDEAL
3.01
D-HYBRID
SRAMキャッシュモード
3.01
平均L1ミスペナルティ[cc]
メモリ性能向上比
DRAM-STACK
DRAMキャッシュモード
120
100
80
60
40
20
0
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55
mgrid
区間
ベンチマークプログラム
プログラム実行中(ほぼ)全ての区間でDRAMキャッシュモードが高性能
21
性能評価結果
DRAM-STACK
2
DRAMキャッシュモード
1.8
1.6
1.4
1.2
1
0.8
1 5 0.6
9 13 17 21 25 29 33 37 41 45 49 53 57 61
区間
twolf
0.4
0.2
0
35
30
25
20
15
10
5
0
3.01
D-HYBRID
3.01
メモリ性能向上比
平均L1ミスペナルティ[cc]
SRAMキャッシュモード
D-HYBRID-IDEAL
ベンチマークプログラム
プログラム実行中(ほぼ)全ての区間でSRAMキャッシュモードが高性能
22
性能評価結果
2
SRAMキャッシュモード
1.8
180
1.6
160
140
1.4
120
1.2
100
801
60
0.8
40
0.6
20
0.4
0
0.2
0mcf
D-HYBRID-IDEAL
D-HYBRID
3.01
3.01
DRAMキャッシュモード
1
12
23
34
45
56
67
78
89
100
111
122
133
144
155
166
177
平均L1ミスペナルティ[cc]
メモリ性能向上比
DRAM-STACK
区間
切り替え回数:11
ベンチマークプログラム
適した動作モードが比較的変化する傾向にあり、
動作モード切り替えオーバーヘッドが大きい
23
性能評価結果
DRAM-STACK
1.8
1.6
150
1.4
1.2
100
1
50
0.8
0.6
0
0.4
0.2
Ocean
0
DRAMキャッシュモード 3.01
200
D-HYBRID
3.01
100
1メモリ性能向上比
8
15
22
29
36
43
50
57
64
71
78
85
92
99
平均L1ミスペナルティ[cc]
2
SRAMキャッシュモード
D-HYBRID-IDEAL
区間(1区間の長さ:100K)
80
60
40
20
0
1
2
3
区間(1区間の長さ:5M)
ベンチマークプログラム
理想的には大きく性能が向上するが、1区間が長いと
メモリ参照の変化に対して追従できない
24
性能評価結果
メモリ性能向上比
DRAM-STACK
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
D-HYBRID-IDEAL
3.01
D-HYBRID
3.01
ベンチマークプログラム
•D-HYBRIDはD-HYBRID-IDEALと比較してほぼ同じ性能
•平均して約17%の性能向上を達成!
25
まとめと今後の課題
• まとめ
– SRAM/DRAMハイブリッド・キャッシュ・アーキテクチャ
における動的動作モード決定法を提案
• 現在実行中の区間における適切な動作モードを次区間の動作
モードとする
– 評価実験で最大3.01倍、平均1.17倍の性能向上を確認
• 高い精度で次区間の適した動作モードを選択でき、また動作
モード切り替え回数が少ないため
• 今後の課題
– 消費エネルギーの評価
– プログラム実行前の動作モード決定法の考案
26
ご清聴ありがとうございます
27
back slides
28
Q&A
• マルチコアの場合、この手法でいけるのか?
→今のままではだめだと感じていて、別の方法も考える必要がある
• コンテキストスイッチのように複数のプログラムが切り替わっている場合
はほとんど切り替わらない?
→そのような状況も考えられる.今後の課題とします
• 1区間の長さはどれくらい?(確認)
→5M回で、比較的長くいです.これは,長さを変えて評価した結果です.
• 切り替えオーバーヘッド見積もりはそれでよいのか?
→ワーストケースであり、適当とは言えません.詳細に評価する必要がありま
す.
• DRAMキャッシュのサイズを変えた場合はうまみがなくなる?ほとんど
DRAMキャッシュが高性能?
→まだやれておらず,今後行う予定です.
• ラインサイズ変える等して下のSRAMの半分をタグRAMとして使い、上の
DRAMをL3として使えるのでは?
→うまく答えられず
29
キャッシュ容量とキャッシュミス率の関係
60
LU
L2キャッシュミス率[%]
50
FMM
FFT
40
30
20
10
大きく低
下する
Ocean
あまり低下
しない
Cholesky
Barnes
Raytrace
WaterSpatial
0
2
4
8
16
32
L2キャッシュ容量
64
128
30
プログラム実行中の
適したキャッシュ容量の変化
Ocean
2MB(12cc)
32MB(60cc)
300
250
200
150
100
50
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
L1ミスペナルティ[cc]
350
適したキャッシュ容量:大
区間
(300cc)
適したキャッシュ容量:小 L1ミスペナルティ=HTL2+MRL2×MMAT
31
高性能動作モードの入力依存性
DRAMキャッシュモード
Cholesky
FFT
LU
Barnes
FMM
ベンチマークプログラムとその入力
Ocean
4K
512
n514
n258
n130
64K
16K
8K
64K
32K
8K
n2048
n1024
m24
m22
m18
tk29.O
tk23.O
10
9
8
7
6
5
4
3
2
1
0
tk17.O
AMAT[cc]
SRAMキャッシュモード
WaterS
(2MBのSRAMキャッシュと32MBのDRAMキャッシュを想定)
入力により適した動作モードは異なる!
32
1区間の長さについて
• 1区間を長く設定すると・・・
– 高性能な動作モードが切り替わる頻度は低下する
→切り替えオーバーヘッド小
トレードオフ
– メモリ参照の振る舞いに変化に対する追従性が低
下する
→適切な動作モードで実行する時間の低下
1区間の長さは適切に設定する必要がある
33
SRAMキャッシュモード時のL2ミス率予測法
• DRAMキャッシュ用タグを、セットサンプリングす
ることで少量だけ保持するSSTを導入
• 対象セットに対するアクセス時のみアクセス数等
カウント
0
1
2
0
1
2
3
4
SST:Set Sampled TagRAM
(セットサンプリングされたタグRAM)
↑容量C/4[B]
8
容量C[B]→
仮定:
連想度同一
1/4にセットサンプリング
本来必要なDRAMキャッシュ
34
用タグRAM(SRAM)
ハードウェア・アーキテクチャ
タグ
インデックス
オフセット
2bit
実際はサポートしない
ハードウェア
フィルタ
アクセス
もしインデックス下位2ビットが0なら
下位2ビットを除くインデックスを出力
0でないなら出力なし
DRAMキャッシュのミス率
SSTでのヒット数
=
SSTへのアクセス数
00
01
10
0000
0001
0010
0011
0100
SST
1000
本来必要なDRAMキャッシュ
用タグRAM(SRAM)
35
1区間の長さと性能の関係(1/3)
18
17
AMAT[cc]
16
15
14
DRAM-STACK
13
D-HYBRID-IDEAL
12
D-HYBRID
11
10
100K
200K 500K
1M
2M
5M
1区間の長さ(L2キャッシュアクセス数)
10M
mcf
切り替え回数増加によりキャッシュミス率増加
→1区間が短いほどD-HYBRIDは性能低下の傾向
メモリ参照の変化に対する追従性の向上
追従性の向上と切り替えオーバーヘッド増加のトレードオフ
→1区間が短いほどD-HYBRID-IDEALは高性能
mcfでは比較的区間が長い方が高性能(最適点は5M)
36
AMAT[cc]
1区間の長さと性能の関係(2/3)
3.5
3.3
3.1
2.9
2.7
2.5
2.3
2.1
1.9
1.7
1.5
DRAM-STACK
D-HYBRID-IDEAL
D-HYBRID
100K
200K 500K
1M
2M
5M
1区間の長さ(L2キャッシュアクセス数)
10M
bzip2
追従性の影響が小さく、切り替えオーバーヘッドの影響が大きい
mcfの場合と同様の理由でD-HYBRID-IDEALはmcfと
→D-HYBRIDは1区間が長いほど高性能
同様の傾向
bzip2では比較的区間が長い方が高性能(最適点は10M)
37
AMAT[cc]
1区間の長さと性能の関係(3/3)
5.1
5
4.9
4.8
4.7
4.6
4.5
4.4
4.3
4.2
4.1
DRAM-STACK
D-HYBRID-IDEAL
D-HYBRID
100K
200K 500K
1M
2M
5M
1区間の長さ(L2キャッシュアクセス数)
10M
FFT
プログラムの実行を通してほぼ全ての区間で適切な動作モードが同一
これら以外のプログラムに関しても、この3種類に分類ことが可能
→区間の長さによらずD-HYBRID-IDEAL
→本評価では、D-HYBRIDにおける1区間の長さを5Mアクセスに設定
とD-HYBRIDともにほぼ同性能
38
Sensitivity Analysis
1.4
性能向上比
1.2
1
今回の評価ポイント
0.8
0.6
0.4
50
0.2
0
30
100
プログラム:FFT
150
HTDRAM[cc]
200
250
MMAT[cc]
300
350
10
400
HTDRAMが小さいほど、またMMATが小さいほど
DRAMキャッシュモードが適する区間が増加
39
Sensitivity Analysis
性能向上比
2
1.5
今回の評価ポイント
1
0.5
50
0
30
100 150
プログラム:mcf
MMAT[cc]
200
250
300
350
HTDRAM[cc]
10
400
HTDRAMが小さいほど、またMMATが小さいほど
DRAMキャッシュモードが適する区間が増加
値が1より小さいのは切り替えオーバーヘッドのため
40
Sensitivity Analysis
1.4
1
プログラム:
Ocean
0.8
0.6
0.4
0.2
0
10
20
30
HTDRAM[cc]
40
50
60
400
350
300
250
200
150
性能向上比
1.2
100
今回の評価ポイント
MMAT[cc]
谷の形の部分があるのは、動作モード切り替え
オーバーヘッドの影響が大きく見えているため
その他の部分では切り替えが発生しない
41
動作モード切り替え回数
gzip
wupwise
swim
mgrid
applu
art
mcf
ammp
bzip2
twolf
apsi
Cholesky
FFT
LU
Barnes
FMM
Ocean
WaterSpatial
100K
21
153
511
1
1
0
165
329
254
0
0
8
0
1
8
24
13
10
200K
20
151
320
0
1
0
83
75
171
0
0
1
0
0
8
18
10
10
500K
9
87
94
0
0
0
48
41
104
0
0
1
0
0
7
10
3
2
1M
1
7
0
0
0
0
36
25
67
0
0
1
0
0
7
9
1
0
2M
0
1
0
0
0
0
25
22
40
0
0
1
0
0
7
1
1
0
5M
0
1
0
0
0
0
11
22
25
0
0
0
0
0
0
0
0
0
10M
0
0
0
0
0
0
9
22
5
0
0
0
0
0
0
0
0
0
42
適切な動作モードの選択確率
gzip
wupwise
swim
mgrid
applu
art
mcf
ammp
bzip2
twolf
apsi
Cholesky
FFT
LU
Barnes
FMM
Ocean
WaterSpatial
100K
200K
500K
0.989871
0.903194
0.806609
0.999645
0.998798
1
0.960453
0.943638
0.809102
1
1
0.716049
1
0.972973
0.968689
0.637681
0.728155
0.478261
0.986174
0.802554
0.739437
0.99929
0.998798
1
0.97342
0.97507
0.82565
1
1
0.928571
1
1
0.949219
0.692308
0.634615
0.314286
0.985531
0.673219
0.807848
1
1
1
0.964052
0.968581
0.781388
1
1
0.882353
1
1
0.902913
0.761905
0.761905
0.785714
1M
0.998392
0.941176
0.997297
1
1
1
0.954248
0.968581
0.740413
1
1
0.777778
1
1
0.807692
0.52381
0.818182
1
2M
1
0.990196
1
1
1
1
0.930283
0.950216
0.694118
1
1
0.6
1
1
0.615385
0.454545
0.833333
1
5M
1
0.97561
1
1
1
1
0.923913
0.881081
0.558824
1
1
0.5
1
1
1
1
1
1
10M
1
0.952381
1
0.965517
1
1
0.902174
0.698925
0.647059
1
1
1
1
1
1
1
43
実測ミス率と推測ミス率の誤差
平均推定ミス率誤差[points]
0.016
0.014
0.012
1/2
0.01
1/4
0.008
1/8
0.006
1/16
0.004
1/32
1/64
0.002
0
Cholesky
LU
FFT
FMM
ベンチマークプログラム
※DRAMキャッシュの容量:32MB
1区間の長さ:L2キャッシュアクセス1M回
WaterSpatial
44
1
21
41
61
81
101
121
141
161
181
201
221
241
261
281
301
321
341
361
1
27
53
79
105
131
157
183
209
235
261
287
313
339
365
391
417
443
469
495
平均L1ミスペナルティ
250
200
150
100
50
平均L1ミスペナルティ
80
70
60
50
40
30
20
10
0
平均L1ミスペナルティ
SRAMキャッシュモード
apsi
SRAMキャッシュモード
0
1
10
19
28
37
46
55
64
73
82
91
100
109
118
127
136
145
154
163
1
48
95
142
189
236
283
330
377
424
471
518
565
612
659
706
753
800
847
894
平均L1ミスペナルティ
L1ミスペナルティの変化(SPEC-1)
ammp
applu
DRAMキャッシュモード
SRAMキャッシュモード
区間
art
DRAMキャッシュモード
SRAMキャッシュモード
DRAMキャッシュモード
200
150
100
50
0
区間
DRAMキャッシュモード
40
35
30
25
20
15
10
5
0
区間
区間
45
100
80
60
40
20
平均L1ミスペナルティ
SRAMキャッシュモード
0
SRAMキャッシュモード
区間
DRAMキャッシュモード
200
150
100
50
0
区間
1
34
67
100
133
166
199
232
265
298
331
364
397
430
463
496
529
562
595
平均L1ミスペナルティ
bzip2
DRAMキャッシュモード
1
16
31
46
61
76
91
106
121
136
151
166
181
196
211
226
241
256
271
250
平均L1ミスペナルティ
1
19
37
55
73
91
109
127
145
163
181
199
217
235
253
271
289
307
325
mcf
1
50
99
148
197
246
295
344
393
442
491
540
589
638
687
736
785
834
883
L1ミスペナルティ
L1ミスペナルティの変化(SPEC-2)
gzip
SRAMキャッシュモード
mgrid
SRAMキャッシュモード
DRAMキャッシュモード
200
150
100
50
0
区間
DRAMキャッシュモード
120
100
80
60
40
20
0
区間
46
1
12
23
34
45
56
67
78
89
100
111
122
133
144
155
166
177
188
199
平均L1ミスペナルティ
150
100
50
0
平均L1ミスペナルティ
swim
SRAMキャッシュモード
wupwise
DRAMキャッシュモード
200
区間
SRAMキャッシュモード
区間
1
17
33
49
65
81
97
113
129
145
161
177
193
209
225
241
257
273
289
305
1
21
41
61
81
101
121
141
161
181
201
221
241
261
281
301
321
341
361
平均L1ミスペナルティ
L1ミスペナルティの変化(SPEC-3)
twolf
SRAMキャッシュモード
DRAMキャッシュモード
35
30
25
20
15
10
5
0
区間
DRAMキャッシュモード
250
200
150
100
50
0
47
L1ミスペナルティの変化(Splash2-1)
Cholesky
FFT
SRAMキャッシュモード
160
140
120
100
80
60
40
20
0
DRAMキャッシュモード
250
200
150
100
50
0
1
2
3
4
SRAMキャッシュモード
5
6
7
8
1
18
35
52
69
86
103
120
137
154
171
188
205
222
239
256
273
290
307
LU
9
Barnes
区間
DRAMキャッシュモード
SRAMキャッシュモード
140
120
100
80
60
40
20
0
区間
DRAMキャッシュモード
100
平均L1ミスペナルティ
平均L1ミスペナルティ
DRAMキャッシュモード
平均L1ミスペナルティ
平均L1ミスペナルティ
SRAMキャッシュモード
80
60
40
20
0
1
2
3
4
5
区間
6
7
8
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52
48
区間
L1ミスペナルティの変化(Splash2-2)
FMM
Ocean
DRAMキャッシュモード
140
120
100
80
60
40
20
0
SRAMキャッシュモード
100
80
60
40
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Raytrace
SRAMキャッシュモード
区間
1
平均L1ミスペナルティ
30
20
10
0
区間
3
4
5
6
7
8
9
10
11
区間
SRAMキャッシュモード
50
40
2
WaterSpatial
DRAMキャッシュモード
1
19
37
55
73
91
109
127
145
163
181
199
217
235
253
271
289
307
325
343
平均L1ミスペナルティ
DRAMキャッシュモード
120
平均L1ミスペナルティ
平均L1ミスペナルティ
SRAMキャッシュモード
DRAMキャッシュモード
40
35
30
25
20
15
10
5
0
1
2
3
4
区間
5
6
7
49
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
FFT
m18
m22
m24
1
2
4
8
16
32
64
L2キャッシュミス率
L2キャッシュミス率
プログラムの入力とキャッシュミス率
の関係
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
Barnes
128
8192
32768
65536
1
2
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
FMM
n1024
n2048
1
2
4
8
16
32
L2キャッシュサイズ[MB]
8
16
32
64
128
L2キャッシュサイズ[MB]
64
128
L2キャッシュミス率
L2キャッシュミス率
L2キャッシュサイズ[MB]
4
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
Ocean
n130
n258
n514
1
2
4
8
16
32
L2キャッシュサイズ[MB]
64
128
50