Towards a Semantics-Aware Transformation Toolchain for Heterogeneous Systems
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.
- Publication:
-
arXiv e-prints
- Pub Date:
- March 2016
- DOI:
- arXiv:
- arXiv:1603.03011
- Bibcode:
- 2016arXiv160303011T
- Keywords:
-
- Computer Science - Programming Languages;
- 68N20;
- C.1.3;
- D.3.4;
- I.2.2
- E-Print:
- Part of the Program Transformation for Programmability in Heterogeneous Architectures (PROHA) workshop, Barcelona, Spain, 12th March 2016, 11 pages, LaTeX