Abstract
Today, all high-performance computer architectures are parallel and heterogeneous; a combination of multiple CPUs, GPUs and specialized processors. This creates a complex programming problem for application developers. Domain-specific languages (DSLs) are a promising solution to this problem because they provide an avenue for application-specific abstractions to be mapped directly to low level architecture-specific programming models providing high programmer productivity and high execution performance. In this talk I will describe our approach to building high performance DSLs, which is based on embedding in Scala, light-wieght modular staging and a DSL infrastructure called Delite. I will describe how we transform impure functional programs into efficient first-order low-level code using domain specific optimization, parallelism optimization, locality optimization, scalar optimization, and architecture-specific code generation. All optimizations and transformations are implemented in an extensible DSL compiler architecture that minimizes the programmer effort required to develop a new DSL.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have