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