Towards a Semantics-Aware Transformation Toolchain for Heterogeneous Systems
Salvador Tamarit, Julio Mari\~no, Guillermo Vigueras, Manuel, Carro

TL;DR
This paper introduces a Haskell-based transformation environment that optimizes architecture-agnostic C code for heterogeneous systems by applying formal rules guided by semantic annotations and machine learning heuristics.
Contribution
It presents a novel semantics-aware transformation toolchain that automates code optimization for heterogeneous platforms using formal rules and machine learning guidance.
Findings
Formalized transformation rules for code optimization
Automated inference of program properties
Heuristic rule selection based on machine learning
Abstract
Obtaining good performance when programming heterogeneous computing platforms poses significant challenges for the programmer. We present a program transformation environment, implemented in Haskell, where architecture-agnostic scientific C code with semantic annotations is transformed into functionally equivalent code better suited for a given platform. The transformation steps are formalized (and implemented) as rules which can be fired when certain syntactic and semantic conditions are met. These conditions are to be fulfilled by program properties which can be automatically inferred or, alternatively, stated as annotations in the source code. Rule selection can be guided by heuristics derived from a machine learning procedure which tries to capture how run-time characteristics (e.g., resource consumption or performance) are affected by the transformation steps.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsScientific Computing and Data Management · Software System Performance and Reliability · Software Engineering Research
