PLDCSEJan 12, 2017

Towards a Semantics-Aware Code Transformation Toolchain for Heterogeneous Systems

arXiv:1701.03319v13 citations
Originality Incremental advance
AI Analysis

This work addresses performance optimization for programmers on heterogeneous systems, but it is incremental as it builds on existing transformation techniques with added flexibility.

The authors tackled the challenge of achieving good performance on heterogeneous computing platforms by developing a semantics-aware code transformation toolchain that converts architecture-agnostic C code with annotations into platform-optimized code, resulting in a flexible system where users can add custom transformation rules.

Obtaining good performance when programming heterogeneous computing platforms poses significant challenges. 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 represented as rules that can be fired when certain syntactic and semantic conditions are fulfilled. These rules are not hard-wired into the rewriting engine: they are written in a C-like language and are automatically processed and incorporated into the rewriting engine. That makes it possible for end-users to add their own rules or to provide sets of rules that are adapted to certain specific domains or purposes.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes