Using Runtime Floating Point Accuracy Feedback to Make Automated Precision/Performance Improvements or Tradeoffs

Loading...
Thumbnail Image

Date

2015

Authors

Nathan, Ralph

Advisors

Sorin, Daniel J

Journal Title

Journal ISSN

Volume Title

Repository Usage Stats

295
views
291
downloads

Abstract

In this thesis, we design frameworks for efficient and accurate floating point computation. The principle underlying our frameworks is making information usually discarded in the hardware, specifically, in the floating point unit, visible to the programmer. The programmer, or automated tools that we developed, can use this information to make accuracy/performance improvements or tradeoffs.

We make the error of floating point additions architecturally visible to programmers and experimentally demonstrate that programmers can use this error to improve the accuracy of their applications or improve the application's performance without affecting the accuracy of the final result. To free programmers from having to manually instrument their code, we develop a compiler pass to automate this process.

We also design a framework to profile applications to measure undesirable numerical behavior at the floating point operation level. We develop a debugger that programmers can use to find variables with "bad" behavior. In addition, we present a profile driven mixed precision analysis framework that heuristically determines the precision of all variables in an application based on their numerical behavior. We experimentally evaluate the mixed precision analysis to show that it can generate a range of results with different accuracies and precisions.

Description

Provenance

Citation

Citation

Nathan, Ralph (2015). Using Runtime Floating Point Accuracy Feedback to Make Automated Precision/Performance Improvements or Tradeoffs. Dissertation, Duke University. Retrieved from https://hdl.handle.net/10161/9813.

Collections


Dukes student scholarship is made available to the public using a Creative Commons Attribution / Non-commercial / No derivative (CC-BY-NC-ND) license.