December 18, 2017 – A team comprised of UCLA and Cornell researchers were recently awarded a $1.7 million award from Intel and the National Science Foundation for their project, “A Multi-Paradigm Programming Infrastructure for Heterogeneous Architectures”. The project focuses on heterogeneous hardware computing platforms, which are essentially systems that couple the current multi-core processors with hardware accelerators like FPGAs and GPUs that have shown great promise in vastly improving computational efficiency in a wide range of applications. However, such opportunities have been largely unexplored by most application developers, given that these platforms are difficult to program and are consequently limited to a small subset of programmers with specialized hardware knowledge. The project’s main objective is to address this concern by increasing accessibility of these platforms in order to enable further research and performance efficiency within the realm of software development.

“This center will help address some of today’s biggest issues around programmability, efficiency, and debugging of heterogeneous platforms,” said Rich Uhlig, Intel Fellow and Director of the Systems and Software Research Group at Intel Labs. “As heterogeneous computing becomes more diverse, the role of programmable hardware and our ability to easily program it will grow significantly. We are excited to have researchers from UCLA and Cornell as part of the center and we are confident that their unique set of skills and expertise in FPGA and debugging will help us advance this important domain.”

“The research from the Center for Domain Specific Computing, which I have been directing since 2009, showed convincingly that there’s a tremendous gain from these heterogeneous architectures by adapting the hardware architectures to applications, which we call customizable computing,” said UCLA computer science professor Jason Cong, the project’s principal investigator. “As researchers and specialists in the field, we’ve demonstrated that again and again, but [now] the question is, how do we enable a larger community — even those outside of the CS community — to benefit from these gains?…This project will not only help enable the next set of discoveries, but also allow more people to enjoy the benefits of heterogeneous computing and accelerated computing — it used to be the case that you had to have a very special skill set [to use this sort of exotic computing infrastructure], but this project will allow for many more people to be able to program heterogeneous computing systems within their comfort zone.”

In addition to Cong, the team is comprised of computer science professor Miryung Kim from UCLA, as well as ECE professor Zhiru Zhang and CS professor Adrian Sampson from Cornell. Both Cong and Zhang specialize in design automation algorithms and heterogeneous computer architectures, while Sampson and Kim focus more on programming language design and debugging, respectively. Together, the team aims to increase accessibility of heterogeneous architectures specifically by implementing a new programming model — named HeteroCL — that will enable programming of heterogeneous systems in a single unified program.

“HeteroCL is designed to explicitly embrace heterogeneity in its programming abstraction,” Zhang explained. “Better yet, it retains the distinct strengths of each programming model, but eliminates the complexity of using them together in a single application.”

Essentially, the model will act as an intermediary level that supports high level domain-specific languages that many programmers already know, such as Tensorflow, Halide, etc., so that programmers can circumvent the learning curve that normally prevents programmers from utilizing heterogeneous architectures. In addition to this, the team aims to implement novel FPGA performance debugging tools for instrumentation and performance modeling.

Ultimately, the team hopes to introduce their research into multiple graduate and undergraduate courses and tutorials at major conferences, with the goal of training a new generation of diverse students and professionals to use heterogeneous programming models and apply the developed infrastructure in order to further the digital revolution.