Skip to Main Content
Memory wall is an important factor that influences program performance, and its alleviation relies on memory optimization of the program. Static approaches optimize memory performance based on analytical models that are hard to achieve because of increasing architecture complexity and code structures. Execution-driven approaches like iterative compilation achieve it by executing different versions of the program on actual platforms and select the one that renders best performance, outperforming static compilation approaches significantly. But the expensive compilation cost has limited their application scope to embedded applications and a small group of math kernels. This paper proposes a different approach-Combining Model and Iterative Compilation for Effective Memory Optimization (MICEMemO). Such an approach first constructs a memory optimization model based on hardware performance counters to decide how and when to apply transformations, and then selects the optimal transformation parameters using genetic algorithms. Experimental results show that our performance counter based approach can greatly reduce programs' memory access time and influence ratio for memory reference, improve programs' memory performance, therefore, effectively alleviate the problem of memory wall.