Automatically Improving Accuracy for Floating Point Expressions
Scientific and engineering applications depend on floating point arithmetic to approximate real arithmetic. Unfortunately, this approximation introduces rounding error, which can accumulate to produce unacceptable results. While the numerical methods literature provides techniques to mitigate rounding error, applying these techniques requires manually rearranging expressions and understanding the finer details of floating point arithmetic.
We introduce Herbie, a tool which automatically improves floating point accuracy by searching for error-reducing transformations. Herbie estimates and localizes rounding error, applies a database of rules to generate improvements, takes series expansions, and combines improvements for different input regions. We evaluated Herbie on every example from a chapter in a classic numerical methods textbook, and found that Herbie was able to improve accuracy on each example, some by up to 60 bits, while imposing an average performance overhead of 11%. Colleagues in machine learning have applied Herbie to significantly improve the results of a clustering algorithm, and a mathematical library has accepted a patch generated using Herbie.
Conference DayMon 15 JunDisplayed time zone: Tijuana, Baja California change
09:00 - 11:00
|Opening and Welcome|
|Automatically Improving Accuracy for Floating Point Expressions|
Pavel PanchekhaUniversity of Washington, Alex Sanchez-SternUniversity of Washington, James R. WilcoxUniversity of Washington, Zachary TatlockUniversity of Washington, SeattleMedia Attached
|Diagnosing Type Errors with Class|
Danfeng ZhangCornell University, Andrew C. Myers, Dimitrios VytiniotisMicrosoft Research, Cambridge, Simon Peyton JonesMicrosoft Research, CambridgeMedia Attached
|Provably Correct Peephole Optimizations with Alive|
Nuno P. LopesMicrosoft Research, David MenendezRutgers University, Santosh NagarakatteRutgers University, John RegehrUniversity of UtahPre-print Media Attached
|One Minute Madness|