共有/非共有型の比較

Download Report

Transcript 共有/非共有型の比較

チップマルチプロセッサにおける
キャッシュメモリの特性解析
九州大学 大学院
システム情報科学府
○三原 智伸 ,井上 弘士,村上 和彰
1
発表手順




研究背景
研究目的
本研究における前提
CMPにおけるキャッシュメモリの特性解析




定性的評価
ベンチマークプログラムの選定
定量的の評価
 実験結果
 考察
まとめ
2
研究背景

CMP(Chip MultiProcessor)
 複数のプロセッサコアを単一のチップに搭載
 スレッドレベル並列性による性能向上
プロセッサ
コア
プロセッサ
コア
共有
L2キャッシュ
プロセッサ
コア
プロセッサ
コア
L2
キャッシュ
L2
キャッシュ
3
POWER5,出典:http://www.ibm.com/es/
opteron,出典:http://techreport.com/
キャッシュメモリ構成の重要性
プロセッサコア

多数のコアを搭載するCMP

並列性の高い処理に有効
しかし・・・
プロセッサコア


メモリバンド幅の制約 UltraSparc T1,出典:http://news.com.com/
オンチップ-オフチップメモリ速度差
性能向上にはキャッシュメモリ構成が重要
4
CMPにおけるキャッシュ構成
キャッシュ共有型
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache
キャッシュ非共有型
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
L2Cache
On-Chip
L2Cache
Off-Chip
本研究では、キャッシュ共有型/非共有型に着目
5
キャッシュ共有型/非共有型における
性能へ与える影響の違い
CMPの性能:スレッド同士が相互に影響
組み合わせるスレッドの性質によって
共有型/非共有型における性能の優劣は異なる
キャッシュ非共有型
キャッシュ共有型
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache
競合性ミス
または
容量性ミス
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
容量性ミス
バスの競合
バスの競合
On-Chip
Off-Chip
L2Cache
L2Cache
6
CMP向けキャッシュアーキテクチャ
に関する様々な研究

共有型を前提

キャッシュ領域の分割・割り当てによるキャッシュミス削減手法
 [G. Edward Suh et al., 2002]



[Seongbeom Kim et al., 2004]
[Alex Settle et al., 2005]
非共有型を前提

他のコアのキャッシュ領域をvictimキャッシュとして利用
 [Michael Zhang et al.,2005]
7
研究目的


従来研究
共有型/非共有型を前提とした提案
キャッシュ共有/非共有の違いが、性能にどのよう
な影響を与えるか解析することは重要
共有型/非共有型において、性能の優劣が生じる要因を
単一スレッドの実行時間に着目し解析する
8
本研究における前提
キャッシュ共有型
メイン
スレッド
サブ
スレッド
Processor
core A
Processor
core B
スレッド間の デー
タ共有はなし
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache
キャッシュ非共有型
メイン
スレッド
サブ
スレッド
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
L2Cache
On-Chip
L2Cache
Off-Chip
合計L2キャッシュ容量は同一
非共有型では均等に分割
メインスレッドのメモリアクセス時間に着目し解析する
9
CMPにおける
キャッシュメモリの特性解析

解析手順




キャッシュ共有型/非共有型におけるメモリ性能の定性的評価
ベンチマークプログラム(メイン/サブスレッド)の選定
キャッシュ共有型/非共有型におけるメモリ性能の定量的評価
実験環境
 シミュレータ



M5:ミシガン大学で開発された
イベントドリブン方式サイクルアキュレートなシミュレータ
L2キャッシュ総容量: 1MB
実験方法
 メインスレッド、サブスレッドは同時に実行開始
 メインスレッドで5億命令実行完了後、実験終了
10
定性的評価
(メインスレッドの実行時間)
T  Texe  T mem
共有型/非共有型で
異なる
T mem  AC  AMAT
T
:プログラム実行時間
T exe
:メモリアクセスレイテンシが0ときの実行時間
T mem
:メモリアクセスを考慮した際に増加する実行時間
AC
:メモリ参照回数
AMAT
:平均メモリアクセス時間
11
定性的評価
(メインスレッドの平均メモリアクセス時間)
L1ミスペナルティ
L2ミスペナルティ
一般式
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
HT L 1
:L1キャッシュのアクセス時間
MR
:L1キャッシュミス率
L1
C L2
:L1-L2間の共有バスにおける平均待ち時間
HT L 2
:L2キャッシュのアクセス時間
MR
:利用可能キャッシュ領域を占有した時のL2ミス率
L2
PL 2
:サブスレッドの影響により増加するL2ミス率
C mem
:L2-主記憶間の共有バスにおける平均待ち時間
MAT
:主記憶のアクセス時間
12
定性的評価(共有/非共有型の比較)
非共有型をベースに比較
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
ー ー ー
増 増 減
非共有型
共有型
Processor
core B
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache
増
ー
ー
キャッシュ非共有型
キャッシュ共有型
Processor
core A
なし
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
L2Cache
On-Chip
Off-Chip
L2Cache
13
定性的評価(共有/非共有型の比較)
非共有型をベースに比較
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
非共有型
共有型
ー ー ー
増 増 減
なし
増
ー
ー
L2キャッシュミスペナティ: 大
共有型/非共有型のメモリ性能差には
キャッシュミス率の大小が大きく影響
14
使用するベンチマークプログラムの選定
(容量性ミスによるベンチマークプログラムの分類)
• 単独実行時のL2キャッシュミス率
L2キャッシュミス率
256k
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
512k
1M
2M
20%
改善
9%
改善
art
bzip2
gzip
mcf
ベンチマークプログラム
15
共有型における利用可能最大容量の増加で得するスレッドとそうでないスレッド
CMPにおける
キャッシュメモリの特性解析

解析手順




キャッシュ共有型/非共有型におけるメモリ性能の定性的評価
ベンチマークプログラム(メイン/サブスレッド)の選定
キャッシュ共有型/非共有型におけるメモリ性能の定量的評価
実験環境
 シミュレータ




M5:ミシガン大学で開発された
イベントドリブン方式サイクルアキュレートなシミュレータ
L2キャッシュ総容量: 1MB
メインスレッド、サブスレッドは同時に実行開始
メインスレッドで5億命令実行完了後、実験終了
16
容量性ミスによるベンチマークプログラム
の分類(単独実行時のL2キャッシュミス率)
L2キャッシュミス率
256k
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
512k
1M
2M
20%
改善
9%
改善
art
bzip2
gzip
mcf
ベンチマークプログラム
17
共有型における利用可能最大容量の増加で得するスレッドとそうでないスレッド
AMAT
(メインスレッド:art)
低い
高い
AMAT(クロックサイクル)
メモリ性能
HT_L1
非共有型
350
300
CL2
HT_L2
MP_mem
MAT
Cmem
共有型
250
200
150
100
50
0
mcf+_dedicat
+mcf
mcf+_share
サブスレッド
gzip+_dedicat
+gzip
gzip+_share
bzip2+_dedica
+bzip2
bzip2+_share
only_dedicate
only_share
単独実行
全ての組み合わせにおいて共有型のメモリ性能が高い
18
容量性ミスによるベンチマークプログラム
の分類(単独実行時のL2キャッシュミス率)
L2キャッシュミス率
256k
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
512k
1M
2M
20%
改善
9%
改善
art
bzip2
gzip
mcf
ベンチマークプログラム
19
共有型における利用可能最大容量の増加で得するスレッドとそうでないスレッド
AMAT
(メインスレッド:bzip2)
HT_L1
非共有型
低い
12
10
HT_L2
MPmem
MAT
Cmem
共有型
8
6
4
2
0
mcf+_dedicate
+gzip
サブスレッド
mcf+_share
gzip+_dedicate
+art
gzip+_share
art+_dedicate
art+_share
only_dedicate
単独実行
only_share
高い
AMAT(クロックサイクル)
メモリ性能
CL2
+mcf
サブスレッドがgzip、mcfのとき共有型のメモリ性能が高い20
容量性ミスによるベンチマークプログラム
の分類(単独実行時のL2キャッシュミス率)
L2キャッシュミス率
256k
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
512k
1M
2M
20%
改善
9%
改善
art
bzip2
gzip
mcf
ベンチマークプログラム
21
共有型における利用可能最大容量の増加で得するスレッドとそうでないスレッド
AMAT
(メインスレッド:gzip)
HT_L1
低い
高い
AMAT(クロックサイクル)
メモリ性能
HT_L2
MAT
MPmem
Cmem
mcf+_dedicate
+mcf
mcf+_share
bzip2+_dedicate
bzip2+_share
+bzip2
サブスレッド
art+_dedicate
+art
art+_share
only_dedicate
only_share
20
18
非共有型
16
14 共有型
12
10
8
6
4
2
0
単独実行
CL2
全ての組み合わせにおいて非共有型のメモリ性能が高い
22
容量性ミスによるベンチマークプログラム
の分類(単独実行時のL2キャッシュミス率)
L2キャッシュミス率
256k
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
512k
1M
2M
20%
改善
9%
改善
art
bzip2
gzip
mcf
ベンチマークプログラム
23
共有型における利用可能最大容量の増加で得するスレッドとそうでないスレッド
AMAT
(メインスレッド:mcf)
HT_L1
低い
高い
AMAT(クロックサイクル)
メモリ性能
CL2
HT_L2
MAT
MPmem
Cmem
非共有型
2.5 共有型
2
1.5
1
0.5
0
共有型/非共有型でメモリ性能に差がない
gzip+_dedicat
+gzip
gzip+_share
bzip2+_dedica
bzip2+_share
+bzip2
サブスレッド
art+_dedicate
+art
art+_share
only_dedicate
only_share
単独実行
24
実験結果のまとめ

メインスレッドの容量性ミス改善: 大(art)


共有型のメモリ性能が高くなる
メインスレッドの容量性ミス改善: 中

サブスレッドによって共有/非共有の優劣が異なる



共有型のメモリ性能が高くなる場合: bzip2 (+gzip,mcf)
非共有型のメモリ性能が高くなる場合: bzip2 (+art)
メインスレッドの容量性ミス改善: なし

メインスレッドによって、非共有が勝る/差がない


非共有型のメモリ性能が高くなる場合: gzip(+art,bzip2,mcf)
メモリ性能に差がない場合: mcf (+art,bzip2,gzip)
25
実験結果のまとめ

メインスレッドの容量性ミス改善: 大(art)


共有型のメモリ性能が高くなる
メインスレッドの容量性ミス改善: 中

サブスレッドによって共有/非共有の優劣が異なる



共有型のメモリ性能が高くなる場合: bzip2 (+gzip,mcf)
非共有型のメモリ性能が高くなる場合: bzip2 (+art)
メインスレッドの容量性ミス改善: なし

メインスレッドによって、非共有が勝る/差がない


非共有型のメモリ性能が高くなる場合: gzip(+art,bzip2,mcf)
メモリ性能に差がない場合: mcf (+art,bzip2,gzip)
原因をキャッシュミスの増減から考察
26
L2キャッシュミス率
(メインスレッド:bzip2)
キャッシュミス率
共有型
MR_L2share+P_L2
80%
容量性ミスの改善
70%
60%
50%
40%
30%
20%
10%
0%
単独実行
only
非共有型の
メモリ性能が高い
組み合わせ
非共有型
MR_L2dedicate
競合性ミスの増加
PL 2
art+
サブスレッド
gzip+
組み合わせ
mcf+
容量性ミスの改善が競合性ミスの増加を上回るとき、
27
共有型のメモリ性能が高い
L2キャッシュミス率
(メインスレッド:mcf)
キャッシュミス率
共有型
MR_L2share+P_L2
容量性ミスの改善なし
100%
非共有型
MR_L2dedicate
競合性ミスの増加なし
80%
60%
40%
20%
0%
only
単独実行
art+
bzip+
サブスレッド
組み合わせ
gzip+
28
容量性ミスの改善がなく、競合性ミスの増加する余地もないため、
共有型、非共有型のメモリ性能に差がない
まとめ



本研究では、キャッシュ共有型/非共有型CMPにおいて
メインスレッドのメモリ性能に着目した解析を行なった
解析の結果、キャッシュ容量増加により改善される容量性ミスが、
サブスレッドの影響により増加する競合性ミスを上回るとき、
キャッシュ共有型のメモリ性能が非共有型のメモリ性能よりも高く
なることが明らかになった
今後の課題


競合性ミスを発生させやすいメイン/サブスレッドの特徴を解析する
今回の結果をもとに、より高い性能を達成できるキャッシュ構成を考案する
29
御清聴ありがとうございました
30
メモ
31
CMP向けキャッシュアーキテクチャ
に関する様々な研究(再)

共有型を前提

キャッシュ領域の分割・割り当てによるキャッシュミス削減手法
 [G. Edward Suh et al., 2002]



[Seongbeom Kim et al., 2004]
[Alex Settle et al., 2005]
非共有型を前提

他のコアのキャッシュ領域をvictimキャッシュとして利用
 [Michael Zhang et al.,2005]
32
高性能化に向けて
基本アイデア(共有型を前提)

キャッシュ容量を与えても、
キャッシュミス率が高いスレッドはキャッシュを使わせない
256k
L2キャッシュミス率

100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
art
art
512k
bzip2
bzip2
1M
2M
gzip
gzip
ベンチマークプログラム
mcf
mcf
33
mcfの影響により増加する競合性ミス
L2キャッシュミス率
単独実行
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
+mcf
7%増
56%増
5%増
art
bzip2
gzip
メインスレッド
mcfは、1)容量が増加してもキャッシュミス率がほぼ100%
2)他方のスレッドに悪影響を与える
mcfのようなスレッドは、キャッシュを使わせない
34
mcfは損せず、mcfの影響により増加するキャッシュミスを削減
検討すべき問題



具体的な機構
mcfの影響によるキャッシュミスは削減可能だが、
オフチップアクセスのレイテンシが増加する可能性
もある
キャッシュ容量とミス率の関係を如何に検出するか
35
御清聴ありがとうございました
36
キャッシュメモリの重要性


メモリバンド幅の制約
オンチップ-オフチップメモリ速度差
性能向上比 (基準は1980年)
10^5
10^4
10^3
( J.L. Hennessy, D.A. Patterson, Computer Architecture: A Quantitative Approach 3rd Edition, Fig. 5.2・改 )
マイクロプロセッサ
55%/年
マイクロプロセッサ
vs. DRAM
性能向上差 48%/年
10^2
10^1
10^0
1980
主記憶(DRAM)
7%/年
1990
2000
性能向上にはキャッシュ構成が重要
2005
37
高性能化に向けて
基本アイデア2(共有型を前提)
256k
L2キャッシュミス率

100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
art
art
512k
bzip2
bzip2
1M
2M
gzip
gzip
ベンチマークプログラム
mcf
mcf
38
復習:mcfはサブスレッドの有無によらず、
共有型でキャッシュミス率がほぼ100%
キャッシュミス率
共有型
MR_L2share+P_L2
容量性ミスの改善なし
100%
非共有型
MR_L2dedicate
競合性ミスの増加なし
80%
60%
40%
20%
0%
only
単独実行
art+
bzip+
gzip+
サブスレッド
組み合わせ
39
実験結果のまとめ


共有型のメモリ性能が高くなる組み合わせ
 art (+bzip2,gzip,mcf)
 bzip2 (+gzip,mcf)
非共有型のメモリ性能が高くなる組み合わせ
 bzip2 (+art)
 gzip (+art,bzip2,mcf)
256k
メモリ性能に差がない組み合わせ
100%
 mcf (+art,bzip2,gzip)
90%
L2キャッシュミス率

80%
70%
60%
50%
40%
30%
20%
10%
0%
art
art
512k
bzip2
bzip2
1M
2M
gzip
gzip
ベンチマークプログラム
40
mcf
mcf
L2キャッシュミス率
(メインスレッド:bzip2)
キャッシュミス率
MR_L2share+P_L2
共有型
80%
容量性ミスの改善
70%
60%
50%
40%
非共有型
30%
20%
10%
0%
単独実行
only
非共有型の
メモリ性能が高い
組み合わせ
MR_L2dedicate
競合性ミスの増加
art+
gzip+
mcf+
サブスレッド
組み合わせ
41
L2キャッシュミス率
(メインスレッド:bzip2)
キャッシュミス率
共有型
MR_L2share+P_L2
80%
容量性ミスの改善
70%
60%
50%
40%
30%
20%
10%
0%
単独実行
only
非共有型の
メモリ性能が高い
組み合わせ
非共有型
MR_L2dedicate
競合性ミスの増加
art+
gzip+
mcf+
サブスレッド
組み合わせ
42
定性的評価(共有/非共有型の比較)

メインスレッドの平均メモリアクセス時間
L1ミスペナルティ
非共有型
AMAT
dedicate
 HT L1  MR L1  {C L 2  HT L 2  MR L 2  ( C mem  MP mem )}
サブスレッドにより変動
共有型
AMAT
L2ミスペナルティ
share
 HT L 1  MR L1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MP mem )}
43
定性的評価(共有/非共有型の比較)

メインスレッドの平均メモリアクセス時間
L1-L2間 バ
ス待ち時間
非共有型
AMAT
dedicate
 HT L1  MR L1  {C L 2  HT L 2  MR L 2  ( C mem  MP mem )}
増加L2
キャッシュミス率
共有型
AMAT
L2-主記憶間
バス待ち時間
share
 HT L 1  MR L1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MP mem )}
L2ミスペナルティ: 大
    依存 
共有型/非共有型のメモリ性能差には
キャッシュミス率の大小が大きく影響
44
定性的評価(共有/非共有型の比較)
 メインスレッドの平均メモリアクセス時間
一般式
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
共有型
非共有型


MR


C


HT


なし
P

MR


L2ミスペナルティ:
大
C


共有型/非共有型のメモリ性能差には
MAT


キャッシュミス率の大小が大きく影響
HT L 1
L1
L2
L2
L2
L2
mem
45
キャッシュメモリ構成の重要性

多数のコアを搭載するCMP


プロセッサコア
演算性能の向上
並列性の高い処理に有効
しかし・・・


メモリバンド幅の制約
オンチップ-オフチップメモリ速度差
プロセッサコア
UltraSparc T1
性能向上にはキャッシュメモリ構成が重要
46
実験結果のまとめ

共有型のメモリ性能が高くなる場合
 メインスレッドの容量性ミス改善: 大


メインスレッドの容量性ミス改善: 中


bzip2 (+gzip,mcf)
非共有型のメモリ性能が高くなる場合
 メインスレッドの容量性ミス改善: 中


bzip2 (+art)
メインスレッドの容量性ミス改善: なし


art (+bzip2,gzip,mcf)
gzip (+art,bzip2,mcf)
メモリ性能に差がない場合
 メインスレッドの容量性ミス改善: なし

mcf (+art,bzip2,gzip)
47
実験結果のまとめ

共有型のメモリ性能が高くなる場合
 メインスレッドの容量性ミス改善: 大



メインスレッドの容量性ミス改善: 中

bzip2 (+gzip,mcf)

bzip2 (+art)
非共有型のメモリ性能が高くなる場合 サブスレッドによって優劣が異なる
 メインスレッドの容量性ミス改善: 中

メインスレッドの容量性ミス改善: なし


art (+bzip2,gzip,mcf)
gzip (+art,bzip2,mcf)
メモリ性能に差がない場合
 メインスレッドの容量性ミス改善: なし

mcf (+art,bzip2,gzip)
原因をキャッシュミスの増減から考察
48
定性的評価(共有/非共有型の比較)
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
キャッシュ非共有型
キャッシュ共有型
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
L2Cache
On-Chip
Off-Chip
L2Cache
L2ミスペナティ: 大
共有型/非共有型のメモリ性能差には
キャッシュミス率の大小が大きく影響
49
定性的評価(共有/非共有型の比較)

メインスレッドの平均メモリアクセス時間
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
共有型
非共有型










L2ミスペナティ: 大
共有型/非共有型のメモリ性能差には
キャッシュミス率の大小が大きく影響
50
定性的評価(共有/非共有型の比較)

メインスレッドの平均メモリアクセス時間
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
共有型
非共有型










L2ミスペナティ: 大
共有型/非共有型のメモリ性能差には
キャッシュミス率の大小が大きく影響
51
定性的評価(共有/非共有型の比較)
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}


共有型
非共有型




キャッシュ非共有型
キャッシュ共有型
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache
 依存
 
Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
L2Cache
On-Chip
Off-Chip
L2Cache
52
定性的評価(共有/非共有型の比較)
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}


共有型
非共有型




Processor
core B
L1Inst L1Data L1Inst L1Data
On-Chip
Off-Chip
L2Cache


キャッシュ非共有型
キャッシュ共有型
Processor
core A


Processor
core A
Processor
core B
L1Inst L1Data L1Inst L1Data
L2Cache
On-Chip
Off-Chip
L2Cache
53
定性的評価(共有/非共有型の比較)
AMAT  HT L 1  MR L 1  {C L 2  HT L 2  ( MR L 2  PL 2 )  ( C mem  MAT )}
共有型
非共有型














L2キャッシュミスペナティ: 大
共有型/非共有型のメモリ性能差には
キャッシュミス率の大小が大きく影響
54