Optimizing Affine Control with Semantic Factorizations
Résumé
Hardware accelerators generated by polyhedral synthesis make an extensive use of affine expressions (affine functions and convex polyhedra) in control and steering logic. Since the control is pipelined, these affine objects must to be evaluated at the same time for different values, which forbids aggressive reuse of operators. In this report, we propose a method to factorize a collection of affine expressions without preventing pipelining. Our key contributions are (i) to use semantic factorizations exploiting arithmetic properties of addition and multiplication and (ii) to rely on a cost function whose minimization ensures a correct usage of FPGA resources. Our algorithm is totally parametrized by the cost function, which can be customized to fit a target FPGA. Experimental results on a large pool of applications show a significant improvement compared to traditionnal common subexpression factorization. As a bonus, the optimization gain is statistically more regular compared to common subexpression elimination.
Les accélérateurs matériels générés par synthèse de circuit polyédrique utilisent intensivement des expressions affines (functions affines et polyèdres convexes) dans leur circuit de contrôle. Pour garantir la bande passante, ces expressions doivent être évaluées en même temps pour différentes valeurs, ce qui interdit toute réutilisation aggressive des opérateurs. Dans ce rapport, nous proposons un algorithme pour factoriser efficacement une collection d'expressions affines sans interdire le pipeline. Nos contribution sont (i) l'utilisation de factorisations sémantiques exploitant les propriétés arithmétiques de l'addition et de la multiplication et (ii) l'utilisation d'une fonction de coût générique dont la minimisation assure une utilisation réduite des blocs reconfigurables d'un FPGA. Notre algorithme est totalement paramétré par la fonction de coût, qui peut être modifiée selon l'architecture reconfigurable ciblée. Les résultats expérimentaux sur un nombre important d'applications montrent une amélioration significative de coût comparé à la traditionnelle factorisation de sous-expressions communes. Comme bonus, le gain en coût obtenu avec notre algorithme est statistiquement plus régulier que celui obtenu par factorisation de sous-expressions communes.
Origine | Fichiers produits par l'(les) auteur(s) |
---|