Hierarchical Program Paths
Chunbai Yang,
Shangru Wi and W. K. Chan
概要: 実行された命令の完全な
トレースを効率よく保存する。 |
0x00400024, 0x004000028, 0x00422ef8, 0x8fda9ace, ...
ほとんどのプログラムでは同じ部分が何度も実行される。
共通する部分を DAG としてまとめる → 高圧縮。
階層構造を反映 = "Hierarchical Program Paths"
BL path | |
---|---|
id1 | "1,2,3,4,5" |
id2 | "2,6,7,8" |
id3 | "1,2,3,5" |
id4 | "2,6,8" |
id5 | "9" |
... | ... |
"1,2,3,4,1,2,3,5,2,6,8,5,2,6,7,9,8,…"
(1 2 3 4 (1 2 3 5) (2 6 8) 5) (2 6 7 (9) 8)
setjmp()
, longjmp()
, fork()
名前 | コード量 | 実行時間 (秒) | トレース量 (GB) | ||||
---|---|---|---|---|---|---|---|
ネイティブ | BLPT | HPPTree | BLPT | HPPTree | HPPDAG | ||
- SPLASH2 - | |||||||
ocean-ncp | 733 | 12.6 | 110.6 | 87.7 | 5.5 | 4.0 | 0.02 |
raytrace | 1,133 | 12.8 | 311.6 | 305.7 | 16.1 | 13.7 | 0.10 |
- SPECint 2006 - | |||||||
400.perlbench | 17,058 | 5.7 | 62.2 | 55.2 | 4.7 | 3.9 | 0.04 |
403.gcc | 164,315 | 3.2 | 51.2 | 44.7 | 3.7 | 2.9 | 0.30 |
445.gobmk | 27,726 | 8.3 | 92.6 | 82.5 | 6.9 | 5.9 | 1.45 |
464.h264ref | 9,109 | 34.1 | 435.3 | 407.3 | 32.4 | 28.7 | 2.29 |