Hardware and Software for Approximate Computing

dc.contributor.advisorCeze, Luisen_US
dc.contributor.authorSampson, Adrianen_US
dc.date.accessioned2015-09-29T18:00:48Z
dc.date.available2015-09-29T18:00:48Z
dc.date.issued2015-09-29
dc.date.submitted2015en_US
dc.descriptionThesis (Ph.D.)--University of Washington, 2015en_US
dc.description.abstractApproximate computing is the idea that we are hindering computer systems' efficiency by demanding too much 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 systems waste 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 disciplined way. Application programmers should be able to exploit these richer abstractions to treat accuracy as a resource and trade it off for more traditional resources such as time, space, or energy. This 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 imprecision to make it acceptable, and from a system perspective, where the goal is to exploit programs' constraints to improve efficiency. For approximate programming, this dissertation proposes: - a type system that uses information flow to separate an application's error-resilient components from its critical control structures; - an extended type system that restricts the probability that a value is incorrect, along with type inference and optional dynamic tracking for these probabilities; and - a construct for expressing probabilistic constraints on programs along with a technique for verifying them efficiently using symbolic execution and statistical properties. For approximate execution, it describes: - two mechanisms for trading off accuracy for density, performance, energy, and lifetime in solid-state memory technologies; and - an end-to-end compiler framework for exploiting approximation on commodity hardware, which also serves as research infrastructure for experimenting with new approximation ideas.en_US
dc.embargo.termsOpen Accessen_US
dc.format.mimetypeapplication/pdfen_US
dc.identifier.otherSampson_washington_0250E_14938.pdfen_US
dc.identifier.urihttp://hdl.handle.net/1773/33693
dc.language.isoen_USen_US
dc.rightsCopyright is held by the individual authors.en_US
dc.subjectapproximate computing; compilers; computer architecture; probabilistic programming; programming languages; type systemsen_US
dc.subject.otherComputer scienceen_US
dc.subject.othercomputer science and engineeringen_US
dc.titleHardware and Software for Approximate Computingen_US
dc.typeThesisen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Sampson_washington_0250E_14938.pdf
Size:
1.76 MB
Format:
Adobe Portable Document Format