A Data Locality Optimizing Algorithm

A Data Locality Optimizing Algorithm

1991 | Michael E. Wolf and Monica S. Lam
This paper proposes an algorithm to improve data locality in loop nests by transforming code through interchange, reversal, skewing, and tiling. The algorithm is based on a mathematical formulation of reuse and locality, and a loop transformation theory that unifies these transformations as unimodular matrix transformations. The algorithm has been implemented in the SUIF compiler and has been successful in optimizing codes such as matrix multiplication, successive over-relaxation (SOR), LU decomposition without pivoting, and Givens QR factorization. Performance evaluations show that locality optimization is crucial for scaling up the performance of parallel code. The paper discusses the problem of using loop transformations to improve data locality, the representation of loop transformations, and the evaluation of reuse and locality. It also presents a locality optimization algorithm that applies unimodular and tiling transforms to loop nests, handles non-rectangular loop bounds, and generates non-uniform tiles. The algorithm is designed to maximize data locality within loop nests, subject to constraints on direction and distance vectors. The paper includes experimental data on tiling for cache performance.This paper proposes an algorithm to improve data locality in loop nests by transforming code through interchange, reversal, skewing, and tiling. The algorithm is based on a mathematical formulation of reuse and locality, and a loop transformation theory that unifies these transformations as unimodular matrix transformations. The algorithm has been implemented in the SUIF compiler and has been successful in optimizing codes such as matrix multiplication, successive over-relaxation (SOR), LU decomposition without pivoting, and Givens QR factorization. Performance evaluations show that locality optimization is crucial for scaling up the performance of parallel code. The paper discusses the problem of using loop transformations to improve data locality, the representation of loop transformations, and the evaluation of reuse and locality. It also presents a locality optimization algorithm that applies unimodular and tiling transforms to loop nests, handles non-rectangular loop bounds, and generates non-uniform tiles. The algorithm is designed to maximize data locality within loop nests, subject to constraints on direction and distance vectors. The paper includes experimental data on tiling for cache performance.
Reach us at info@study.space