Publication | Open Access
Data transformations for eliminating conflict misses
230
Citations
24
References
1998
Year
Unknown Venue
EngineeringCompiler TechnologyData PreparationComputer ArchitectureSoftware EngineeringSoftware AnalysisArray ComputingData ScienceManagementData IntegrationParallel ComputingData ManagementParallelizing CompilerKnowledge DiscoveryComputer EngineeringData TransformationsConflict MissesComputer ScienceProgram OptimizationOptimizing CompilerData ManipulationEuclidean AlgorithmMany Cache MissesProgram AnalysisSoftware TestingData TreatmentParallel ProgrammingSystem SoftwareData Modeling
Many cache misses in scientific programs are due to conflicts caused by limited set associativity. We examine two compile-time data-layout transformations for eliminating conflict misses, concentrating on misses occuring on every loop iteration. Inter-variable padding adjusts variable base addresses, while intra-variable padding modifies array dimension sizes. Two levels of precision are evaluated. PADLITE only uses array and column dimension sizes, relying on assumptions about common array reference patterns. PAD analyzes programs, detecting conflict misses by linearizing array references and calculating conflict distances between uniformly-generated references. The Euclidean algorithm for computing the gcd of two numbers is used to predict conflicts between different array columns for linear algebra codes. Experiments on a range of programs indicate PADLITE can eliminate conflicts for benchmarks, but PAD is more effective over a range of cache and problem sizes. Padding reduces cache miss rates by 16% on average for a 16K direct-mapped cache. Execution times are reduced by 6% on average, with some SPEC95 programs improving up to 15%.
| Year | Citations | |
|---|---|---|
Page 1
Page 1