Publication | Closed Access
Localizing non-affine array references
33
Citations
19
References
2003
Year
Unknown Venue
EngineeringComputer ArchitectureComputational ComplexityLocalization TechniqueLocalizationArray ComputingInduction VariablesApproximate ComputingParallel ComputingMassively-parallel ComputingConjugate GradientHeart KernelComputer ScienceExternal-memory AlgorithmArray ProcessingComputational ScienceNon-affine Array ReferencesParallel ProgrammingVectorization
Existing techniques can enhance the locality of arrays indexed by affine functions of induction variables. This paper presents a technique to localize non-affine array references, such as the indirect memory references common in sparse-matrix computation. Our optimization combines elements of tiling, data-centric tiling, data remapping and inspector-executor parallelization. We describe our technique, bucket tiling, which includes the tasks of permutation generation, data remapping, and loop regeneration. We show that profitability cannot generally be determined at compile-time, but requires an extension to run-time. We demonstrate our technique on three codes: integer sort, conjugate gradient, and a kernel used in simulating a beating heart. We observe speedups of 1.91 on integer sort, 1.57 on conjugate gradient, and 2.69 on the heart kernel.
| Year | Citations | |
|---|---|---|
Page 1
Page 1