kirancodes.me
To Proof Maintenance & Beyond!

Floating-point precision tuning using blame analysis

Cindy Rubio-González, Cuong Nguyen, Benjamin Mehne, Koushik Sen, James Demmel, William Kahan, Costin Iancu, Wim Lavrijsen, David H. Bailey, David Hough

Abstract

While tremendously useful, automated techniques for tuning the precision of floating-point programs face important scalability challenges. We present Blame Analysis, a novel dynamic approach that speeds up precision tuning. Blame Analysis performs floating-point instructions using different levels of accuracy for their operands. The analysis determines the precision of all operands such that a given precision is achieved in the final result of the program. Our evaluation on ten scientific programs shows that Blame Analysis is successful in lowering operand precision. As it executes the program only once, the analysis is particularly useful when targeting reductions in execution time. In such case, the analysis needs to be combined with search-based tools such as Precimonious. Our experiments show that combining Blame Analysis with Precimonious leads to obtaining better results with significant reduction in analysis time: the optimized programs execute faster (in three cases, we observe as high as 39.9% program speedup) and the combined analysis time is 9x faster on average, and up to 38x faster than Precimonious alone.

BibTeX
@inproceedings{RubioGonzalez-al:ICSE16,
  author    = {Cindy Rubio{-}Gonz{\'{a}}lez and
               Cuong Nguyen and
               Benjamin Mehne and
               Koushik Sen and
               James Demmel and
               William Kahan and
               Costin Iancu and
               Wim Lavrijsen and
               David H. Bailey and
               David Hough},
  title     = {Floating-point precision tuning using blame analysis},
  booktitle = {ICSE},
  pages     = {1074--1085},
  publisher = {{ACM}},
  year      = {2016},
}

Related papers