Stochastic optimization of floating-point programs with tunable precision
Abstract
The aggressive optimization of floating-point computations is an important problem in high-performance computing. Unfortunately, floating-point instruction sets have complicated semantics that often force compilers to preserve programs as written. We present a method that treats floating-point optimization as a stochastic search problem. We demonstrate the ability to generate reduced precision implementations of Intel's handwritten C numeric library which are up to 6 times faster than the original code, and achieve end-to-end speedups of over 30% on a direct numeric simulation and a ray tracer by optimizing kernels that can tolerate a loss of precision while still remaining correct. Because these optimizations are mostly not amenable to formal verification using the current state of the art, we present a stochastic search technique for characterizing maximum error. The technique comes with an asymptotic guarantee and provides strong evidence of correctness.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Jun 05, 2014
- Source ID
- 10.1145/2666356.2594302
Entities
People
- Alex Aiken
- Eric Schkufza
- Rahul Sharma
Organizations
- Defense Advanced Research Projects Agency
- Stanford University