Thesis Defense: Democratizing High-performance DSL Development with the BuildIt Framework
Speaker
Host
Abstract: Today, applications that require high-performance rely on libraries of hand-optimized kernels, with thousands available across various domains and architectures, while Domain-Specific Languages (DSLs) and their accompanying compilers remain relatively rare. A well-designed DSL can describe a much wider variety of programs within a given domain than even the most comprehensive libraries, while also unlocking powerful cross-function and global domain-specific optimizations that hand-optimized kernels cannot achieve. However, building high-performance DSLs is complex and time-consuming, often requiring compiler experts to devote years to the development. In my thesis, I will introduce BuildIt (https://buildit.so), a C++ framework designed for the rapid prototyping of high-performance DSLs. BuildIt uses a multi-stage programming approach to combine the flexibility of libraries with the performance and specialization of code generation. With BuildIt, domain experts can transform existing libraries into efficient, specialized compilers simply by modifying types of the variables. Moreover, it allows them to implement analyses and transformations without needing to write any traditional compiler code. Currently, BuildIt supports code generation for multi-core CPUs and GPUs, with FPGA support coming soon. I will also describe two DSLs built on top of BuildIt one for graph computations on GPUs and another for implementing ad-hoc networking protocols. Through these DSLs, I will demonstrate how BuildIt enables developers to perform complex analyses, and data layout optimizations. Finally, I will also describe D2X, an extension system to BuildIt that adds automatic debugging support to all DSLs implemented using BuildIt.
Bio: Ajay Brahmakshatriya is a 7th year PhD student advised by Prof. Saman Amarasinghe at CSAIL, MIT. His research interests are making it easier for folks to create their own programming languages with focus on high-performance systems domains. In the past he has worked on DSLs for domains like graphs and networks targeting a variety of architectures like CPUs, GPUs and domain specific hardware. His current work on BuildIt makes the process of designing and implementing DSLs easier while also providing other toolchain support like debugging.
Committee Members: Prof. Saman Amarasinghe, Prof. Manya Ghobadi, Prof. Martin Rinard, Prof. Srini Devadas
Zoom link: https://mit.zoom.us/j/94885553748