2000 · 126 citations · 32 references
ComputingComputer EngineeringComputer ScienceCompilersParallel ComputingScientific ComputingData Locality OptimizationData ParallelismData-flow AnalysisMemory Hierarchy OptimizationParallel Numerical MethodsCost ModelsData Locality ManagementLocality ConstraintsLoop TilingMemory LocalityProgram TransformationStencil ComputationTilings
Compiler transformations can significantly improve data locality for many scientific programs. In this paper, we show iterative solvers for partial differential equations (PDEs) in three dimensions require new compiler optimizations not needed for 2D codes, since reuse along the third dimension cannot fit in cachefor larger problem sizes. Tiling is a program transformation compilers can apply to capture this reuse, but successful application of tiling requires selection of non-conflicting tiles and/or padding array dimensions to eliminate conflicts. We present new algorithms and cost models for selecting tiling shapes and array pads. We explain why tiling is rarely needed for 2D PDE solvers, but can be helpful for 3D stencil codes. Experimental results show tiling 3D codes can reduce miss rates and achieve performance improvements of 17-121% for key scientific kernels, including a 27% average improvement for the key computational loop nest in the SPEC/NAS benchmark MGRID.
32
A data locality optimizing algorithm
Michael E. Wolf, Monica S. Lam · 1991 · 1.3K citations · Full text
François Irigoin, Rémi Triolet · 1988 · 562 citations
Michael Wolfe · 1989 · 430 citations · Full text