研究紹介: 高速かつ正確なキャッシュ・シミュレーション 研究

Download Report

Transcript 研究紹介: 高速かつ正確なキャッシュ・シミュレーション 研究

高速かつ正確なキャッシュ
シミュレーション法とその評価
○小野貴継† 井上弘士‡ 村上和彰‡
†九州大学大学院システム情報科学府
‡九州大学大学院システム情報科学研究院
本発表のポイント
 高速なトレース・ドリブンシミュレーション
 フル・トレースに対して・・・
 わずか1.4%のトレースで
ほぼ正確なシミュレーションを達成!
 提案手法の説明(SACSIS 2007)
 関連研究との詳細な比較
2
研究背景
 SoC (System on a Chip)等の早期市場投入に
対する強い要求
 短期間で確実に設計することが必要
 アーキテクチャの早期決定は不可欠
 性能に与える影響が大きいことから,適切な
メモリ・アーキテクチャを選択することは重要
 ソフトウエア・シミュレーションによって
アーキテクチャを評価
 アプリケーション・プログラムの高機能化による
プログラム規模の拡大
⇒1回あたりのシミュレーション時間増加
 設計空間の拡大
⇒評価対象となるアーキテクチャが増加
3
内容
 従来のキャッシュ・シミュレーション法の
問題点
 提案手法
 メモリアクセスの特徴抽出
 小規模ベンチマーク・トレースの生成
 関連研究との比較評価
 まとめと今後の課題
4
従来のキャッシュシミュレーション法
メモリ・アクセス・トレース
アプリケーション・
プログラム
メモリ・アクセス・アドレス
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
・
・
XXXXXXXX
プロセッサ
読み出し
書き込み
メモリ
メモリ・アーキテクチャ
評価シミュレータ
メモリ・アクセス
time ∝ Tsize × Nprogram × Ndesign
time
Tsize
Nprogram
Ndesign
:
:
:
:
総シミュレーション時間
メモリ・アクセス・トレースサイズ
アプリケーション・プログラムの数
評価対象となるメモリ・アーキテクチャの数
5
シミュレーション時間を短縮するには?
アプリケーション・
プログラム
プロセッサ
読み出し
書き込み
メモリ
メモリ・アクセス・アドレス
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
・
・
XXXXXXXX
<シミュレーション時間の短縮>
シミュレータの高速化
メモリ・アクセス・トレースの削減
メモリ・アーキテクチャ
評価シミュレータ
小規模
ベンチマーク・トレース
<特徴>
 極めて小さい(数%程度)
 異なるメモリアーキテクチャに
精度を維持しつつトレースサイズを削減 使用可能
しかし・・・
シミュレーション精度が低下
6
提案する高速かつ正確なキャッシュ・
シミュレーション法の概要
メモリ・アクセス・アドレス
サブ・トレース
サブ・トレースに
分割
時間(クロック・サイクル)
特徴抽出
クラスタリング
代表サブ・トレース
選出
7
メモリ・アクセスの特徴抽出
各アドレス・インターバル
におけるメモリ・アクセス
数をカウント
アドレス
アドレス
インターバル
STEP1
特徴抽出精度の向上のため
3つの指標を追加
2
2
3
3
0
0
2
2
STEP2
1
サブ・トレース
アクセス時間の平均値
アクセス時間の標準偏差値
アクセス時間のアドレス間距離
2
2
1
5.5
3
90
8
特徴抽出精度の向上(1/4)
サブ・トレース
アドレス
0
4
各ブロックにおける
メモリ・アクセス数は同じ
0
アドレス
インターバル
0
0
4
アドレス
時間
0
4
時間的バラツキが
反映されていない
0
0
0
平均値,標準偏差値を追加
4
時間
9
特徴抽出精度の向上(2/4)
サブ・トレース
 平均値
アドレス
x

x
i
N
・・・
0
 標準偏差値
時間
(クロック・サイクル)
x0
x1
x2
x3
xN

2


x

x
 i
N
10
特徴抽出精度の向上(3/4)
Memory access
Memory access
800
800
Address
1000
Address
1000
600
400
200
600
400
200
0
0
20
40
60
Clock cycles
1000-1100
900-1000
800-900
700-800
600-700
500-600
400-500
300-400
200-300
100-200
0-100
平均値
標準偏差値
80
100
0
20
40
60
80
100
Clock cycles
26
7
0
0
0
0
34
0
0
0
33
50.5
28.9
アドレス・インターバル
アドレス・インターバル
0
1000-1100
900-1000
800-900
700-800
600-700
500-600
400-500
300-400
200-300
100-200
0-100
平均値
標準偏差値
26
7
0
0
0
0
34
0
0
0
33
50.5
28.9
11
特徴抽出精度の向上(4/4)
サブ・トレース
 アドレス間距離
アドレス
y
y5 y
4
i
y3
y2
y1
アドレス間距離
y0
1,196
0
アドレス間距離
59,918
時間
Memory access
Memory access
800
800
Address
1000
Address
1000
600
400
200
600
400
200
0
0
0
20
40
60
Clock cycles
80
100
0
20
40
60
Clock cycles
80
100
12
代表サブ・トレースの選出と重み付け
 クラスタリング
クラスタA
クラスタB
クラスタC
 K-平均法
 代表サブ・トレースの選出
 ランダム
 重み付け
 クラスタに属するサブ・トレースの
数を重みとして用いる
 例)キャッシュ・ミス率の算出
ランダムに選出
k
miss _ rate 
k
access
missi
weighti
:
:
:
:
 miss  weight 
i 1
i
access
i
クラスタAの代表
クラスタBの代表 クラスタCの代表
100
クラスタ数
総メモリアクセス数
クラスタiにおけるミス数
クラスタiに属するサブ・トレース数
13
小規模ベンチマーク・トレースの生成
 代表サブ・トレースのみを用いたキャッシュ・
シミュレーション
 コールド・スタート
 各代表サブ・トレースに直前のトレースを
ウォームアップ・トレースとして追加
⇒小規模ベンチマーク・トレース
+
+
+
代表サブ・トレース
ウォームアップ・トレース
14
評価: 関連研究との比較
 測定項目
 キャッシュ・ミス率
 比較対象
 小規模ベンチマーク・トレースによるシミュレーション
 関連研究(SimPoint)よるシミュレーション
 SimPointと同トレースサイズの小規模ベンチマーク・トレース
 評価指標
 シミュレーション速度:メモリ・アクセス・トレース削減率
 シミュレーション精度:キャッシュ・ミス率予測誤差
 評価環境
 アプリケーション・プログラム
 mpeg2decode*
 入力データ: carphone, foreman
 SPEC2000
 175.vpr, 176.gcc, 183.equake
*http://www.mpeg.org/MPEG/MSSG/
15
関連研究:SimPoint
 SimPointの概要
 プログラムの実行から終了までをある命令数で分割
 各インターバルにおけるベーシック・ブロックの実行回
数をカウントしベーシック・ブロック・ベクタ(BBV)を生成
 BBVが似ているインターバルをクラスタリング
 各クラスタから代表的なインターバルをひとつ選出
 選出されたインターバルをシミュレーションし,結果に
各クラスタに応じた重みをつける
 提案手法との違い
 メモリ・アーキテクチャの評価に特化
 メモリ・アーキテクチャの性能評価において命令の実
行順序は重要だが,SimPointはBBの実行回数だけし
か考慮していない
T. Sherwood, E. Perelman, G. Hamerly and B. Calder,
“Automatically Characterizing Large Scale Program Behavior,”ASPLOS, pp. 45-57, October. 2002. 16
パラメータ
 提案手法のパラメータ
 アドレス・インターバル(クロック・サイクル数)
 命令:1,024
 データ:8,192
 時間インターバル
 10,000
 ウォームアップ・トレース・サイズ
 16,000
 クラスタ数
 500
 SimPointのパラメータ
 インターバル(命令数)
 10M
 対象とするキャッシュ構成
 命令:64B 4K 1W
 データ:64B 4K 4W
17
シミュレーション速度
平均81.7%削減
正規化トレースサイズ
提案手法(クラスタ数500)
0,2
提案手法(SimPointと同サイズ)
SimPoint
0,16
0,12
0,08
0,04
0
命令 データ 命令 データ 命令 データ 命令 データ 命令 データ
carphone
foreman
175.vpr
176.gcc
183.equake
ベンチマーク
18
シミュレーション精度
1.632
平均34.6%向上
0.855
0,6
0,5
0,4
0
0,013
0,013
0,1
0,011
0,009
0,007
0,2
0,017
0,3
0,006
0,007
0,005
キャッシュ・ミス率予測誤差
(パーセンテージ・ポイント)
提案手法(クラスタ数500)
提案手法(SimPointと同サイズ)
SimPoint
命令 データ 命令 データ 命令 データ 命令 データ 命令 データ
carphone
foreman
175.vpr
176.gcc
183.equake
ベンチマーク
19
評価: 異なるキャッシュ構成への適用
 測定項目
 キャッシュ・ミス率
 比較対象
 代表トレースによるシミュレーション
 フル・トレースよるシミュレーション
 評価指標
 シミュレーション精度:キャッシュ・ミス率予測誤差
 評価環境
 アプリケーション・プログラム
 mpeg2decode*
 入力データ: carphone,foreman
 SPEC2000
 175.vpr,176.gcc,183.equake
*http://www.mpeg.org/MPEG/MSSG/
20
0,04
32K1W
16K1W
8K1W
4K1W
32K1W
16K1W
8K1W
4K1W
32K1W
16K1W
8K1W
4K1W
32K1W
16K1W
8K1W
4K1W
32K1W
16K1W
8K1W
4K1W
キャッシュ・ミス率予測誤差
(パーセンテージ・ポイント)
0,05
0.192
0.064
命令キャッシュ
平均0.024ポイント
0,03
0,02
0,01
0
carphone
foreman
175.vpr
176.gcc
183.equake
ベンチマーク
21
0,3
32K1W
32K2W
32K4W
16K1W
16K2W
16K4W
8K1W
8K2W
8K4W
4K1W
4K2W
4K4W
32K1W
32K2W
32K4W
16K1W
16K2W
16K4W
8K1W
8K2W
8K4W
4K1W
4K2W
4K4W
32K1W
32K2W
32K4W
16K1W
16K2W
16K4W
8K1W
8K2W
8K4W
4K1W
4K2W
4K4W
32K1W
32K2W
32K4W
16K1W
16K2W
16K4W
8K1W
8K2W
8K4W
4K1W
4K2W
4K4W
32K1W
32K2W
32K4W
16K1W
16K2W
16K4W
8K1W
8K2W
8K4W
4K1W
4K2W
4K4W
キャッシュ・ミス率予測誤差
(パーセンテージ・ポイント)
データキャッシュ
0,5
0,4
平均0.143ポイント
0,2
0,1
0
carphone
foreman
175.vpr
ベンチマーク
176.gcc
183.equake
22
まとめ
 高速かつ正確なキャッシュシミュレーション法
 メモリ・アクセスの特徴抽出
 特徴に基づくシミュレーション区間の選択
 定量的評価
 関連研究(SimPoint)との比較
 トレースサイズは約81.7%削減
 予測誤差は34.6%向上
 異なるキャッシュ構成への適用
 予測誤差は命令:平均0.024ポイント,データ:平均
0.143ポイント
23
今後の課題
 シミュレーション時間による評価
 現状はトレース・サイズ削減率で近似
 提案手法の改良
 問題点
 クラスタリングに要する時間が長い
 フル・トレースによるシミュレーション時間の5~6倍
程度
 解決策
 特徴ベクトルの次元を縮小
 バス等の評価へ応用
24