Runtime multi-versioning and specialization inside a memoized speculative loop optimizer
Author(s) -
Raquel Lazcano,
Daniel Madroñal,
Eduardo Juárez,
Philippe Clauss
Publication year - 2020
Publication title -
spire - sciences po institutional repository
Language(s) - English
Resource type - Conference proceedings
ISBN - 978-1-4503-7120-9
DOI - 10.1145/3377555.3377886
Subject(s) - computer science , software versioning , parallel computing , loop (graph theory) , code (set theory) , workload , operating system , distributed computing , programming language , software , mathematics , combinatorics , set (abstract data type)
In this paper, we propose a runtime framework that implements code multi-versioning and specialization to optimize and parallelize loop kernels that are invoked many times with varying parameters. These parameters may influence the code structure, the touched memory locations, the workload, and the runtime performance. They may also impact the validity of the parallelizing and optimizing polyhedral transformations that are applied on-the-fly. For a target loop kernel and its associated parameters, a different optimizing and parallelizing transformation is evaluated at each invocation, among a finite set of transformations (multi-versioning and specialization). The best performing transformed code version is stored and indexed using its associated parameters. When every optimizing transformation has been evaluated, the best performing code version regarding the current parameters, which has been stored, is relaunched at next invocations (memoization).
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom