Exposing Memory Access Regularities Using Object-Relative Memory Profiling

  • Authors:
  • Qiang Wu;Artem Pyatakov;Alexey Spiridonov;Easwaran Raman;Douglas W. Clark;David I. August

  • Affiliations:
  • -;-;-;-;-;-

  • Venue:
  • Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Memory profiling is the process of characterizing a program's memorybehavior by observing and recording its response to specific inputsets. Relevant aspects of the program's memory behavior maythen be used to guide memory optimizations in an aggressively optimizingcompiler. In general, memory access behavior has eludedmeaningful characterization because of confounding artifacts frommemory allocators, linker data layout, and OS memory management.Since these artifacts may change from run to run, memoryaccess patterns may appear different in each run even for the sameinput set. Worse, regular memory access behavior such as linkedlist traversals appear to have no structure.In this paper we present object-relative translation and decompositiontechniques to eliminate these artifacts and to expose previouslyobscured memory access patterns. To demonstrate the potential ofthese ideas, we implement two different memory profilers targetedat different sets of applications. These profilers outperform the existingones in terms of profile size and useful information per byteof data. The first profiler is a lossless profiler, called WHOMP,which uses object-relativity to achieve a 22% better compressionthan the previously best known scheme. The second profiler, calledLEAP, uses lossy compression to get highly compact profiles whileproviding useful information to the targeted applications. LEAPcorrectly characterizes the memory alias rates for 56% more instructionpairs than the previously best known scheme with a practicalrunning time.