Title :
Exposing memory access regularities using object-relative memory profiling
Author :
Wu, Qiang ; Pyatakov, Artem ; Spiridonov, Alexey ; Raman, Easwaran ; Clark, Douglas W. ; August, David I.
Author_Institution :
Dept. of Comput. Sci., Princeton Univ., NJ, USA
Abstract :
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 traversals appear to have no structure. 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.
Keywords :
instruction sets; optimising compilers; program interpreters; resource allocation; storage management; LEAP lossy compression profiler; OS memory management; WHOMP lossless profiler; decomposition technique; instruction pairs; linker data layout; memory access behavior; memory access regularity; memory allocators; memory optimization; object-relative memory profiling; object-relative translation; optimizing compiler; Computer science; Libraries; Memory management; Optimizing compilers; Prefetching; Probes; Random access memory;
Conference_Titel :
Code Generation and Optimization, 2004. CGO 2004. International Symposium on
Print_ISBN :
0-7695-2102-9
DOI :
10.1109/CGO.2004.1281684