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

Tags

Fields of Study

  • Computer science

Readers

  • Computer Programming and Software Development.
  • Parallel and Distributed Computing.
  • Systems Analysis and Design