Dissertation Talk: Domain-specific Optimization Techniques for Fast, Portable Image Reconstruction
Presentation: Dissertation Talk: CS | May 9 | 11 a.m.-12 p.m. | Soda Hall, 510 (VCL)
The end of Dennard scaling means future performance gains come from exploiting parallelism within application programs. Unfortunately, parallel programming requires substantial expertise to achieve good performance across a variety of increasingly complex platforms. General-purpose languages and compilers have failed to solve the automatic parallelization problem, and while libraries provide a degree of performance and programmer productivity, domain-specific programming languages (DSLs) offer an alternative path to portable performance for programs that fall within their respective domains. Ongoing work is focused on developing DSLs that are expressive enough to solve real problems, but restrictive enough that performance optimizations can be applied automatically.
In this talk, I will introduce domain-specific techniques for achieving portable performance for linear inverse problems in computational imaging. I will begin by surveying image reconstruction codes from magnetic resonance imaging, microscopy, magnetic particle imaging, and ptychography. From the observations, I will distill a common set of computational idioms that serve as the basis for our domain-specific programming language. I will show how our domain-specific language enables performance optimizations that achieve near-Roofline-peak performance across multi-core, many-core and GPU backends. Lastly, Ill conclude with our experiences scaling an MRI reconstruction code to 1,800 nodes of the Cori supercomputer.