GGrantIndex
← Search

Collaborative Research: SHF: Medium: Near-Hardware Program Repair and Optimization

$99,998FY2022CSENSF

Saint Lawrence University, Canton NY

Investigators

Abstract

The project addresses today's reality that special-purpose computing hardware and hardware accelerators have become de facto necessities for supporting the large-scale computations used for data analysis, AI and machine learning, scientific modeling, and social-media platforms. At the same time, education and existing tools still require computer programmers to have deep knowledge of both low-level hardware considerations and higher-level application logic. Higher levels of program abstraction are more tractable for humans and automated program improvement methods because they separate algorithm logic from implementation details, while lower 'near-hardware' levels of abstraction are difficult for humans to understand and optimize because of the many crucial architectural and hardware details that often interact with application-level logic in non-trivial ways. The project addresses this gap by developing automated methods for near-hardware run-time optimization of programs, bug repair, and creation of new programs. It includes an evaluation featuring interactive human evaluations, which studies human interactions with the project's automated tools along several dimensions. The project aims to improve the automation of software engineering tasks for near-hardware domains. This requires addressing fundamental questions such as: What representations span multiple levels of abstraction? How can one analyze and select optimizations respecting both hardware and software constraints for real-world applications? How can a tool communicate its results to users who may lack expertise in either domain-specific architecture or hardware-specific details? The project adapts higher-level automated program improvement methods to three specific tasks: automatically finding optimizations that reduce general-purpose GPU code runtimes; repairing defects in circuit designs; and synthesizing debuggable code for hardware accelerators. Each task requires representations and algorithms that cross abstraction levels, and each task features an evaluation plan that places explicit emphasis on the human element, measuring the semantic gap between automatically lifted optimizations and different levels of human expertise, measuring ease of use of interactive synthesis tools across human expertise levels, and using eye tracking to investigate which elements of a multi-edit patch are most difficult understand. The project will enable many of the benefits of source-level automated program improvement to be available to near-hardware domains. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →