Title
QUARC: An Optimized DSL Framework using LLVM
Abstract
We describe aspects of the implementation of QUARC, a framework layered on C++ used for a domain specific language for Lattice Quantum Chromodynamics. It is built on top of Clang/LLVM to leverage long term support and performance portability. QUARC implements a general array extension to C++ with implicit data parallelism. A notable innovation is the method for using templates to capture and encode the high-level abstractions and to communicate these abstractions transparently to LLVM through an unmodified Clang. Another notable feature is a general array transformation mechanism used to improve memory hierarchy performance and maximize opportunities for vectorization. This reshapes and transposes arrays of structures containing nested complex arrays into arrays of structures of arrays. We discuss an example for which QUARC generated code has performance competitive with the very best hand-optimized libraries.
Year
DOI
Venue
2017
10.1145/3148173.3148188
LLVM-HPC@SC
Field
DocType
ISBN
Domain-specific language,Memory hierarchy,Programming language,Computer science,Digital subscriber line,Parallel computing,Vectorization (mathematics),Compiler,Data parallelism,Software portability,Template
Conference
978-1-4503-5565-0
Citations 
PageRank 
References 
0
0.34
15
Authors
3
Name
Order
Citations
PageRank
Diptorup Deb100.68
Robert J. Fowler21088213.11
Allan Porterfield354782.18