TY - GEN
T1 - Exposing memory access regularities using object-relative memory profiling
AU - Wu, Qiang
AU - Raman, Easwaran
AU - Pyatakov, Artem
AU - Clark, Douglas W.
AU - Spiridonov, Alexey
AU - August, David I.
PY - 2004/7/12
Y1 - 2004/7/12
N2 - Memory profiling is the process of characterizing a program's memory behavior by observing and recording its response to specific input sets. Relevant aspects of the program's memory behavior may then be used to guide memory optimizations in an aggressively optimizing compiler. In general, memory access behavior has eluded meaningful characterization because of confounding artifacts from memory allocators, linker data layout, and OS memory management. Since these artifacts may change from run to run, memory access patterns may appear different in each run even for the same input set. Worse, regular memory access behavior such as linked list traversais appear to have no structure. In this paper we present object-relative translation and decomposition techniques to eliminate these artifacts and to expose previously obscured memory access patterns. To demonstrate the potential of these ideas, we implement two different memory profilers targeted at different sets of applications. These profilers outperform the existing ones in terms of profile size and useful information per byte of data. The first profiler is a lossless profiler, called WHOMP, which uses object-relativity to achieve a 22% better compression than the previously best known scheme. The second profiler, called LEAP, uses lossy compression to get highly compact profiles while providing useful information to the targeted applications. LEAP correctly characterizes the memory alias rates for 56% more instruction pairs than the previously best known scheme with a practical running time.
AB - Memory profiling is the process of characterizing a program's memory behavior by observing and recording its response to specific input sets. Relevant aspects of the program's memory behavior may then be used to guide memory optimizations in an aggressively optimizing compiler. In general, memory access behavior has eluded meaningful characterization because of confounding artifacts from memory allocators, linker data layout, and OS memory management. Since these artifacts may change from run to run, memory access patterns may appear different in each run even for the same input set. Worse, regular memory access behavior such as linked list traversais appear to have no structure. In this paper we present object-relative translation and decomposition techniques to eliminate these artifacts and to expose previously obscured memory access patterns. To demonstrate the potential of these ideas, we implement two different memory profilers targeted at different sets of applications. These profilers outperform the existing ones in terms of profile size and useful information per byte of data. The first profiler is a lossless profiler, called WHOMP, which uses object-relativity to achieve a 22% better compression than the previously best known scheme. The second profiler, called LEAP, uses lossy compression to get highly compact profiles while providing useful information to the targeted applications. LEAP correctly characterizes the memory alias rates for 56% more instruction pairs than the previously best known scheme with a practical running time.
UR - http://www.scopus.com/inward/record.url?scp=3042613725&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=3042613725&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:3042613725
SN - 0769521029
SN - 9780769521022
T3 - International Symposium on Code Generation and Optimization, CGO
SP - 315
EP - 323
BT - International Symposium on Code Generation and Optimization, CGO 2004
T2 - International Symposium on Code Generation and Optimization, CGO 2004
Y2 - 20 March 2004 through 24 March 2004
ER -