Abstract
One of the most efficient ways to improve program performances onto nowadays computers is to optimize the way cache memories are used. In particular, many scientific applications contain loop nests that operate on large multi-dimensional arrays whose sizes are often parameterized. No special attention is paid to cache memory performance when such loops are written. In this work, we focus on spatial locality optimization such that all the data that are loaded as a block in the cache will be used successively by the program. Our method consists in providing a new array reference evaluation function to the compiler, such that the data layout corresponds exactly to the utilization order of these data. The computation of this function concerns the field of parameterized polyhedra and Ehrhart polynomials.
Index Terms
- Automatic memory layout transformations to optimize spatial locality in parameterized loop nests
Recommendations
Precise Data Locality Optimization of Nested Loops
A significant source for enhancing application performance and for reducing power consumption in embedded processor applications is to improve the usage of the memory hierarchy. In this paper, a temporal and spatial locality optimization framework of ...
Synthesizing Transformations for Locality Enhancement of Imperfectly-Nested Loop Nests
Linear loop transformations and tiling are known to be very effective for enhancing locality of reference in perfectly-nested loops. However, they cannot be applied directly to imperfectly-nested loops. Some compilers attempt to convert imperfectly-...
An algorithm to automate non-unimodular transformations of loop nests
SPDP '93: Proceedings of the 1993 5th IEEE Symposium on Parallel and Distributed ProcessingThis paper provides a solution to the open problem of automatic rewriting loop nests for non-unimodular transformations.We present an algorithm that rewrites a loop nest under any non-singular (unimodular or non-unimodular) transformation. The algorithm ...
Comments