Using Algebraic Transformations to Optimize Expression Evaluation in Scientific Codes
Résumé
Algebraic properties such as associativity or distributivity allow the manipulation of a set of mathematically equivalent expressions. However, the cost of evaluating such expressions on a computer is not constant within this domain. We suggest the use of algebraic transformations to improve the performances of computationally intensive applications on modern architecture computers. We claim that taking into account instruction level parallelism and new capabilities of processors when applying these transformations leads to large run-time improvements. Due to a combinatorial explosion, associative-commutative pattern-matching techniques cannot systematically be used in that context. Thus, we introduce two performance enhancing algorithms providing factorization and multiply-add extraction heuristic and choice criteria. This paper describes our approach and a first implementation. Experiments on real codes, including a SPEC FP95 excerpt, are very promising as we automatically obtain the same results than hand made transformations, with up to 70% performance improvements.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...