Application of Storage Mapping Optimization to Register Promotion
Résumé
Storage mapping optimization is a flexible approach to folding array dimensions in numerical codes. It is designed to reduce the
memory footprint after a wide spectrum of loop transformations,
whether based on uniform dependence vectors or more expressive
polyhedral abstractions. Conversely, few loop transformations have
been proposed to facilitate register promotion, namely loop fusion,
unroll-and-jam or tiling. Building on array data-flow analysis and
expansion, we extend storage mapping optimization to improve opportunities for register promotion.
Our work is motivated by the empirical study of a computational biology benchmark, the approximate string matching algorithm BPR from NR-grep , on a wide issue micro-architecture. Our
experiments confirm the major benefit of register tiling (even on
non-numerical benchmarks) but also shed the light on two novel issues: prior array expansion may be necessary to enable loop trans-
formations that finally authorize profitable register promotion, and
more advanced scheduling techniques (beyond tiling and unroll-and-jam) may significantly improve performance in fine-tuning reg-
ister usage and instruction-level parallelism.
Origine : Fichiers éditeurs autorisés sur une archive ouverte
Loading...