Tangram: a High-level Language for Performance Portable Code Synthesis
University of Illinois, Urbana, IL USA
Eighth Workshop on Programmability Issues for Heterogeneous Multicores (MULTIPROG-2015), 2015
@article{chang2015tangram,
title={Tangram: a High-level Language for Performance Portable Code Synthesis},
author={Chang, Li-Wen and Dakkak, Abdul and Rodrigues, Christopher I and Hwu, Wen-mei},
year={2015}
}
We propose Tangram, a general-purpose high-level language that achieves high performance across architectures. In Tangram, a program is written by synthesizing elemental pieces of code snippets, called codelets. A codelet can have multiple semantic-preserving implementations to enable automated algorithm and implementation selection. An implementation of a codelet can be written with tunable knobs to allow architecture-specific parameterization. The Tangram compiler produces highly optimized code by choosing and composing architecture-friendly codelets, and then tuning the knobs for the target architecture. We demonstrate that Tangram’s synthesized programs are comparable in performance to existing well-optimized codes on both CPUs and GPUs. The language is defined in a concise and maintainable way to improve debuggability and to enable progressive improvement. This strategy allows users to extend their applications and achieves higher performance on existing architectures and new architectures.
January 26, 2015 by hgpu