August 23, 2019

Purdue ECE Team Wins NSF Award to Broaden Applicability of Accelerators

A Purdue ECE team comprising faculty members Saurabh Bagchi, Milind Kulkarni, Felix Lin, and Xiaokang Qiu, has won a $1.25M award from the National Science Foundation to unlock the power of accelerator-based platforms to a broad group of programmers and scientists.
nsf accelerator team
Purdue ECE professors (from l to r) :Felix Lin, Saurabh Bagchi, Milind Kulkarni, and Xiaokang Qiu

A Purdue ECE team comprising faculty members Saurabh Bagchi, Milind Kulkarni, Felix Lin, and Xiaokang Qiu, has won a $1.25M award from the National Science Foundation to unlock the power of accelerator-based platforms to a broad group of programmers and scientists. The project will create Domain Specific Language (DSL) and the associated compilation framework for two rich problem domains -- streaming video analytics and computational genomics. Funding for the project comes from the Scalable Parallelism in the Extreme (SPX) program from the Computing and Communication Foundations (CCF) Division of the Computer and Information Science and Engineering (CISE) Directorate.

Two trends in computation have conspired to make it challenging to fully use the fast growing amount of computational resources. First, the applications for which domain experts are interested in deploying computational power – computational genomics, video processing, data analytics – are increasingly irregular, with patterns of computation and data access that are difficult to reason about. Second, the computational platforms domain experts want to exploit are increasingly heterogeneous, built around multiple kinds of accelerators that present vastly different performance characteristics, programming models, and efficiency tradeoffs. Examples of accelerators are Graphics Processing Unit (GPU), Field Programmable Gate Array (FPGA), and Digital Signal Processor (DSP).

This project, titled “Write Once, Run on Anything: Verified, Tuned Accelerator Kernels from High Level Specifications,” seeks to solve this problem. The basic approach of this project is to start from a domain-specific language (DSL) implementation of a program and, through a set of translations and transformations, generate a tuned implementation of the program targeting a particular accelerator. The approach will guarantee that required reliability properties (such as, no crash or hang) are met in the final execution. The proposed work builds on work team members have done singly or jointly and that have appeared at premier programming language and computer systems conferences, such as, (Kulkarni) PLDI-19, ICS-16, (Bagchi) ICS-19, Usenix ATC-18, (Lin) ASPLOS-19, Eurosys-18, (Qiu) VMCAI-19, OOPSLA-17, and (Joint) ICST-19 and ICS-16. The prior work by Felix Lin has also resulted in an OS for heterogeneous System-on-Chips (SoCs) called K2.

All of the faculty involved in the project are part of the Purdue University Center for Programming Principles and Software Systems (PurPL) and the Center for Resilient Infrastructures, Systems, and Processes (CRISP).

Saurabh Bagchi, professor of electrical and computer engineering, will be focused on the correctness guarantees and automatic tuning of the programs to meet the characteristics of the accelerators: “Accelerator programming is becoming a necessity for performance in many scientific domains. This project will make accelerator programming easier by providing programming tools that domain experts can understand and will showcase it for the two important and growing domains by developing correct and high performance programs.”

Milind Kulkarni, associate professor of electrical and computer engineering and PI on the project, has done pioneering work on optimizing, parallelizing, and transforming irregular applications, including on GPUs: “One of the fundamental obstacles in taking advantage of accelerators is that accelerators work really well for specific kinds of programs, but as soon as you deviate a little from that kind of program, it becomes much harder to use the accelerator effectively. One of the goals of this project is to figure out how to make accelerators useful for a larger class of programs than they were originally designed for.”

Felix Lin, assistant professor of electrical and computer engineering, will contribute his expertise in OS and runtime design for heterogeneous architecture and energy-efficient platforms: "Future computing platforms are defined by their accelerators. These accelerators promise continuous performance scaling but may also lead to programming nightmares. This project is dedicated to eliminating the latter and therefore democratizing the use of accelerators."

Xiaokang Qiu, assistant professor of electrical and computer engineering, brings to the table his experience developing verification and synthesis tools for irregular applications: “Program verification and synthesis techniques hold promise for generating desired transformations and tuned implementations, and checking their correctness automatically. In the last decade, these formal methods have gained the critical mass and provided a new foray into automated accelerator programming.”

Among the project’s novelties is the creation of new domain-specific languages (DSLs), one for each of the two target domains, to allow programmers to express complex computations in a high-level, easy-to-understand way. Those DSL codes will then be mapped to novel intermediate representations that allow programs in different domains to be expressed in a common representation for optimization. This intermediate representation will then be transformed using provably safe transformations to improve performance without sacrificing correctness guarantees.

NSF award information is available here: