Qian Zhang
UCLA
zhangqian@cs.ucla.edu
Bio
Qian Zhang is a postdoctoral researcher in UCLA Computer Science Department working with Prof. Miryung Kim. Her research belongs to the interdisciplinary area of Software Engineering for Data and Compute Intensive Systems. This field of study specializes in reinventing software tools for emerging computing paradigms such as FPGA-based heterogeneous computing to improve developer productivity. Before UCLA she received her Ph.D. in Computer Science and Engineering from the Chinese University of Hong Kong where she worked on high-performance hardware accelerators by trading accuracy for performance/energy efficiency. She was the recipient of the Distinguished Academic Performance Scholarship at CUHK. Her work produced 19 research papers in top-tier conferences and journals.
Reinventing Software Developer Tools for Heterogeneous Computing Paradigm
Reinventing Software Developer Tools for Heterogeneous Computing Paradigm
As specialized hardware accelerators like FPGAs become a prominent part of the current computing landscape software applications are increasingly constructed to leverage heterogeneous computing. Such trend is already happening in the domain of machine learning systems. High-level Synthesis (HLS) frees the software developers from learning hardware details by raising the level of programming abstraction from hardware programming languages to C/C++. However HLS programming has a steep learning curve and it requires developers to perform a substantial amount of code edits to make their programs synthesizable and efficient. In addition effective software debugging and testing tools for heterogeneous applications are currently lacking. Thus the use of such platform is limited to a small subset of programmers with hardware knowledge. Our work aims to lower the programming testing and performance barriers of FPGA-based heterogeneous computing by reinventing the software developer tools to improve productivity. In particular we discuss: (1) fuzz testing for revealing platform-dependent behavior (2) automated code refactoring for FPGA resource optimization and (3) HLS program transpilation with test generation and program repair. This line of research is the first attempt to our knowledge for SE researchers to address the development difficulties for the heterogeneous computing paradigm.