Building Program Generators for High-Performance Spiral on Scala

semanticscholar(2014)

引用 1|浏览0
暂无评分
摘要
The development of high performance libraries on modern hardware is extremely di cult and often requires reimplementation or retuning with every new processor generation. Program generators that produce such libraries automatically from a high level description are an appealing solution but only few exist to date. The di culty is in both the design of the generator but also its actual implementation, which often results in an ad-hoc collection of standalone programs and scripts that are hard to extend, maintain, or reuse. In this paper we ask whether there is a programming language environment suitable for building such generators. We argue in two steps that Scala with lightweight modular staging (LMS) is such an environment. First, we extract from existing generators the requirements that a suitable environment should ful ll. The list includes elegant support for internal DSLs, DSL rewriting, performance transformations like unrolling with scalar replacement, selective precomputation, and specialization, and support for multiple data representations. Inside Scala with LMS, we then implement a subset of the Spiral program generator, chosen to cover these requirements. For each requirement, we then identify the supporting language features. Finally, we benchmark against FFTW to show the quality of the generated code.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要