This Thursday (April 7th) at 9am Pacific time we will have our next FPBench Community Meeting. The meeting is a chance to talk about numerics research, share early demos, brainstorm new ideas, and stay in touch. We'll keep tweaking the format as we learn more about what works for the community.
This month, Ian Briggs will present his work on OpTuner, a tool that automatically selects math function implementations to trade off between speed and accuracy in error-tolerant applications. The abstract for his presentation is provided below.
Standard implementations of functions like sin and exp optimize for accuracy, not speed, because they are intended for general-purpose use. But just like many applications tolerate inaccuracy from cancellation, rounding error, and singularities, many applications could also tolerate less-accurate function implementations. This raises an intriguing possibility: speeding up numerical code by using different function implementations.
Enter OpTuner, an automated tool for selecting the best implementation for each mathematical function call site. OpTuner uses error Taylor series and integer linear programming to compute optimal assignments of 297 function implementations to call sites and presents the user with a speed-accuracy Pareto curve. In a case study on the POV-Ray ray tracer, OpTuner speeds up a critical computation by 2.48×, leading to a whole program speedup of 1.09× with no change in the program output; human efforts result in slower code and lower-quality output. On a broader study of 36 standard benchmarks, OpTuner demonstrates speedups of 2.05× for negligible decreases in accuracy and up to 5.37× for error-tolerant applications.
Notes: FPBench Community Minutes
Slack: Invite link
Hope to see y'all there :)