HIPAcc: A Domain-Specific Language and Compiler for Image Processing
German Research Center for Artificial Intelligence, Germany and the Computer Graphics Lab & Intel Visual Computing Institute, Saarland University, Germany
Transactions on Parallel and Distributed Systems (TPDS), 27(1), pp. 210-224, 2016
@article{membarth2016hipa,
title={HIPA cc: A domain-specific language and compiler for image processing},
author={Membarth, Richard and Reiche, Oliver and Hannig, Frank and Teich, J{"u}rgen and K{"o}rner, Mario and Eckert, Wieland},
journal={IEEE Transactions on Parallel and Distributed Systems},
volume={27},
number={1},
pages={210–224},
year={2016},
publisher={IEEE}
}
Domain-Specific Languages (DSLs) provide high-level and domain-specific abstractions that allow expressive and concise algorithm descriptions. Since the description in a DSL hides also the properties of the target hardware, DSLs are a promising path to target different parallel and heterogeneous hardware from the same algorithm description. In theory, the DSL description can capture all characteristics of the algorithm that are required to generate highly efficient parallel implementations. However, most frameworks do not make use of this knowledge and the performance cannot reach that of optimized library implementations. In this article, we present the HIPAcc framework, a DSL and source-tosource compiler for image processing. We show that domain knowledge can be captured in the language and that this knowledge enables us to generate tailored implementations for a given target architecture. Back ends for CUDA, OpenCL, and Renderscript allow us to target discrete Graphics Processing Units (GPUs) as well as mobile, embedded GPUs. Exploiting the captured domain knowledge, we can generate specialized algorithm variants that reach the maximal achievable performance due to the peak memory bandwidth. These implementations outperform stateof-the-art domain-specific languages and libraries significantly.
November 19, 2016 by hgpu