Dissertation Talk: Programming Abstractions and Synthesis-Aided Compilation for Emerging Computing Platforms
Presentation: Dissertation Talk: CS | August 16 | 10-11 a.m. | 320 Soda Hall
Phitchaya Mangpo Phothilimthana, UC Berkeley
Today's computer architectures face new demands from cutting-edge applications, ranging from wearable devices, embedded medical sensors to high-performance data centers and machine learning systems. To meet these demands, we use hardware specialization to improve energy efficiency and performance. However, these emerging computing platforms often sacrifice programmability because they expose unfamiliar components to developers and usually have restricted resources.
I propose two key principles for improving programmability intended for application writers as well as compiler developers and language designers. First, I address programmability issues by providing a programming model that hides low-level details but sufficiently exposes essential details that application writers can control. Second, to compile and optimize programs, I apply a new compilation methodology based on synthesis. Unlike a classical compiler's transformation, synthesis obtains a correct and optimal solution by searching for an optimal candidate that is semantically equivalent to a specification program. This search helps compilers generate efficient code without deriving a program via a sequence of transformations that are challenging for compiler developers to design for new unconventional architectures.
I will demonstrate the key principles in three projects: Chlorophyll, a language and compiler for low-power spatial architectures; Floem, a programming system for NIC-accelerated data center applications; and GreenThumb, a superoptimizer construction framework. LinkiTools company has developed a commercialized superoptimizer for many variants of RISC-V from the resurgence of GreenThumb.