Automated Floating-Point Precision Analysis
Overview
As scientific computation continues to scale, it is crucial to use floating-point arithmetic processors as efficiently as possible. Lower precision allows streaming architectures to perform more operations per second and can reduce memory bandwidth pressure on all architectures. However, using a precision that is too low for a given algorithm and data set will result in inaccurate results. Thus, developers must balance speed and accuracy when choosing the floating-point precision of their subroutines and data structures. I am investigating techniques to help developers learn about the runtime floating-point behavior of their programs, and to help them make decisions concerning the choice of precision in implementation.
I am developing methods that will generate floating-point precision configurations, automatically testing and validating them using binary instrumentation. The goal is ultimately to make a recommendation to the developer regarding which parts of the program can be reduced to single-precision. My thesis statement is as follows:
Automated analysis techniques can make recommendations regarding the precision levels that each part of a computer program must use to maintain overall accuracy, with the goal of improving performance on scientific codes.
I am currently pursuing my thesis by developing a software system called CRAFT: Configurable Runtime Analysis for Floating-point Tuning. For more information, please visit the project page.
Papers/Presentations
- M. Lam. “Automatic Floating-Point Precision Analysis (Proposal).” Thesis proposal. Department of Computer Science, University of Maryland. 26 October 2011. (PDF)
- M. Lam. “Binary-Level Tools for Floating-Point Correctness Analysis.” Project report. Laurence Livermore National Lab. 29 July 2011. (PPT)
- M. Lam, G.W. Stewart, J. Hollingsworth. “Dynamic Floating-Point Cancellation Detection.” WHIST ’11. 4 June 2011. (PDF | PPT)
- M. Lam. “Dynamic Floating-Point Cancellation Detection.” Master’s degree scholarly paper. Department of Computer Science, University of Maryland. 20 April 2010. (PDF)
- M. Lam, G.W. Stewart, J. Hollingsworth. “Dynamic Floating-Point Cancellation Detection.” Presentation. Paradyn/Dyninst Week ’10. 13 April 2010. (PPT)
- M. Lam, G.W. Stewart, J. Hollingsworth. “Using Dyninst to Measure Floating-point Error.” Presentation. Paradyn/Dyninst Week ’09. 28 April 2009. (PPT)
- D. An, R. Blue, M. Lam, S. Piper, and G. Stoker. “FPInst: Floating Point Error Analysis Using Dyninst.” Report. 15 Dec 2008. (PDF)
