Lightweight Array Contraction by Trace-Based Polyhedral Analysis
Autor: | Thievenaz, Hugo, Kimura, Keiji, Alias, Christophe |
---|---|
Přispěvatelé: | Compilation et Analyse, Logiciel et Matériel (CASH), Laboratoire de l'Informatique du Parallélisme (LIP), École normale supérieure de Lyon (ENS de Lyon)-Université Claude Bernard Lyon 1 (UCBL), Université de Lyon-Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)-École normale supérieure de Lyon (ENS de Lyon)-Université Claude Bernard Lyon 1 (UCBL), Université de Lyon-Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)-Inria Lyon, Institut National de Recherche en Informatique et en Automatique (Inria), Faculty of Science and Engineering [Waseda], Waseda University [Tokyo, Japan] |
Jazyk: | angličtina |
Rok vydání: | 2022 |
Předmět: | |
Zdroj: | C3PO 2022-International Workshop on Compiler-assisted Correctness Checking and Performance Optimization for HPC C3PO 2022-International Workshop on Compiler-assisted Correctness Checking and Performance Optimization for HPC, Jun 2022, Hamburg, Germany |
Popis: | International audience; Array contraction is a compilation optimization used to reduce memory consumption, by reducing the size of temporary arrays in a program while preserving its correctness. The usual approach to this problem is to perform a static analysis of the given program, creating overhead in the compilation cycle. In this work, we take a look at exploiting execution traces of programs of the polyhedral model, in order to infer reduced sizes for the temporary arrays used during calculations. We designed a four step process to reduce the storage requirements of a temporary array of a given scheduled program, in which we used an algorithm to deduce array access functions for which bounds are modulos of affine functions of parameters of the program. Our results show memory reductions of an order of magnitude on several benchmarks examples from PolyBench, a collection of programs from the polyhedral community. Execution time is compared to a baseline implementation of a static algorithm, and results show speed-up factors up to 20. |
Databáze: | OpenAIRE |
Externí odkaz: |