Proactive Control of Approximate Programs

Abstract

Approximate computing trades off accuracy of results for resources such as energy or computing time. There is a large and rapidly growing literature on approximate computing that has focused mostly on showing the benefits of approximate computing. However, we know relatively little about how to control approximation in a disciplined way. In this paper, we address the problem of controlling approximation for non-streaming programs that have a set of "knobs" that can be dialed up or down to control the level of approximation of different components in the program. We formulate this control problem as a constrained optimization problem, and describe a system called Capri that uses machine learning to learn cost and error models for the program, and uses these models to determine, for a desired level of approximation, knob settings that optimize metrics such as running time or energy usage. Experimental results with complex benchmarks from different problem domains demonstrate the effectiveness of this approach.

Document Details

Document Type
Pub Defense Publication
Publication Date
Mar 25, 2016
Source ID
10.1145/2954679.2872402

Entities

People

  • Andrew Lenharth
  • Donald S. Fussell
  • Keshav Pingali
  • Xin Sui

Organizations

  • Defense Advanced Research Projects Agency
  • National Science Foundation
  • University of Texas at Austin

Tags

Fields of Study

  • Computer science

Readers

  • Calculus or Mathematical Analysis
  • Computational Modeling and Simulation
  • Parallel and Distributed Computing.

Technology Areas

  • AI & ML
  • AI & ML - Machine Learning Algorithms
  • AI & ML - Neural Networks