Practical Floating-Point Divergence Detection
Student: Wei-Fan Chiang (University of Utah)
Supervisor: Ganesh Gopalakrishnan (University of Utah)
Abstract: Reducing floating-point precision allocation in HPC programs is of considerable interest from the point of view of obtaining higher performance.
However, this can lead to unexpected behavioral deviations from the programmer's intent.
In this paper, we focus on the problem of divergence detection: when a given floating-point program exhibits different control flow (or differs in terms of other discrete outputs) with respect to the same program interpreted under reals.
This problem has remained open even for everyday programs such as those that compute convex-hulls.
We propose a classification of the divergent behaviors exhibited by programs, and propose efficient heuristics to generate inputs causing divergence.
Our experimental results demonstrate that our input generation heuristics are far more efficient than random input generation for divergence detection, and can exhibit divergence even for programs with thousands of inputs.
Two-page extended abstract: pdf