Fast and Efficient Bit-Level Precision Tuning
summary
POP implements a semantics-driven precision tuner that generates an ILP from source code (solved with GLPK) to pick optimal bit widths, and a refined solver using policy iteration for a less pessimistic carry model. On a pendulum benchmark original doubles use ~2,300 bits total, ILP tuning reduces that to 861 bits and policy iteration to 843 bits. Analysis is static, linear in program size, handles loops and trig, finds new formats in seconds, and outperforms Precimonious on most benchmarks (except one rotation case).
AI-written summary · about
chapters (9)
- 0:00Bit-level precision tuning intro
- 1:14Existing tools' limitations
- 2:29Error propagation modeling
- 3:40POP tool architecture
- 5:32Integer linear programming in POP
- 7:30Optimizing carry bit propagation
- 10:14Performance evaluation
- 12:45Comparison with state-of-the-art
- 13:05Future research and conclusion
related talks
14mFast Linear Programming through Transprecision Computing on Small and Sparse Data
14mFPL: Fast Presburger Arithmetic through Transprecision
30mBit-Precise Reasoning via Int-Blasting
22mOne Polynomial Approximation to Produce Correctly Rounded Results of an Elementa
15mScaling Optimization Over Uncertainty via Compilation
13mProgram Analysis via Efficient Symbolic Abstraction
19mPanel: Compilation Frameworks
58mPortable floating-point calculations
