Results 1 
3 of
3
ExpectationOriented Framework for Automating Approximate Programming
"... We describe ExpAX, a framework for automating approximate programming based on programmerspecified error expectations. Three components constitute ExpAX: (1) a programming model based on a new kind of program specification, which we refer to as expectations. Our programming model enables programmer ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
We describe ExpAX, a framework for automating approximate programming based on programmerspecified error expectations. Three components constitute ExpAX: (1) a programming model based on a new kind of program specification, which we refer to as expectations. Our programming model enables programmers to implicitly relax the accuracy constraints without explicitly marking operations approximate; (2) a novel approximation safety analysis that automatically identifies a safetoapproximate subset of the program operations; and (3) an optimization that automatically marks a subset of the safetoapproximate operations as approximate while considering the error expectation. Further, we formulate the process of automatically marking operations as approximate as an optimization problem and provide a genetic algorithm to solve it. We evaluate ExpAX using a diverse set of applications and show that it can provide significant energy savings while improving the qualityofresult degradation. 1.
Probability Type Inference for Flexible Approximate Programming
"... In approximate computing, programs gain efficiency by allowing occasional errors. Controlling the probabilistic effects of this approximation remains a key challenge. We propose a new approach where programmers use a type system to communicate highlevel constraints on the degree of approximation ..."
Abstract
 Add to MetaCart
In approximate computing, programs gain efficiency by allowing occasional errors. Controlling the probabilistic effects of this approximation remains a key challenge. We propose a new approach where programmers use a type system to communicate highlevel constraints on the degree of approximation. A combination of type inference, code specialization, and optional dynamic tracking makes the system expressive and convenient. The core type system captures the probability that each operation exhibits an error and bounds the probability that each expression deviates from its correct value. Solveraided type inference lets the programmer specify the correctness probability on only some variables—program outputs, for example—and automatically fills in other types to meet these specifications. An optional dynamic type helps cope with complex runtime behavior where static approaches are insufficient. Together, these features interact to yield a high degree of programmer control while offering a strong soundness guarantee. We use existing approximatecomputing benchmarks to show how our language, DECAF, maintains a low annotation burden. Our constraintbased approach can encode hardware details, such as finite degrees of reliability, so we also use DECAF to examine implications for approximate hardware design. We find that multilevel architectures can offer advantages over simpler twolevel machines and that solveraided optimization improves efficiency. Categories and Subject Descriptors D.3.3 [Programming
HARDWARE AND SOFTWARE
, 2015
"... Approximate computing is the idea that we are hindering computer systems ’ eficiency by demanding toomuch accuracy from them. While precision is crucial for some tasks, many modern applications are fundamentally approximate. Perfect answers are unnecessary or even impossible in domains such as com ..."
Abstract
 Add to MetaCart
(Show Context)
Approximate computing is the idea that we are hindering computer systems ’ eficiency by demanding toomuch accuracy from them. While precision is crucial for some tasks, many modern applications are fundamentally approximate. Perfect answers are unnecessary or even impossible in domains such as computer vision, machine learning, speech recognition, search, graphics, and physical simulation. Today’s systemswaste time, energy, and complexity to provide uniformly pristine operation for applications that do not require it. Resilient applications are not, however, a license for computers to abandon predictability in favor of arbitrary errors. We need abstractions that incorporate approximate operation in a disciplinedway. Application programmers should be able to exploit these richer abstractions to treat accuracy as a resource and trade it of for more traditional resources such as time, space, or energy. his dissertation explores new abstractions for approximate computing across hardware and software. It develops these abstractions from two perspectives: from the point of view of programmers, where the challenge is constraining im