z-logo
open-access-imgOpen Access
Verifying the Floating-Point Computation Equivalence of Manually and Automatically Differentiated Code
Author(s) -
Markus Schordan,
Jan Hückelheim,
PeiHung Lin,
Harshitha Me
Publication year - 2017
Publication title -
osti oai (u.s. department of energy office of scientific and technical information)
Language(s) - English
Resource type - Conference proceedings
ISBN - 978-1-4503-5127-0
DOI - 10.1145/3145344.3145489
Subject(s) - correctness , computer science , compiler , programming language , equivalence (formal languages) , computation , semantics (computer science) , floating point , set (abstract data type) , source code , point (geometry) , code (set theory) , theoretical computer science , algorithm , parallel computing , mathematics , discrete mathematics , geometry
The semantics of floating-point computations are known to be difficult to verify. Software verification tools often provide little or no support for floating-point semantics, making it difficult to prove the correctness of an optimized variant of a program involving floating-point computations. In this paper we present an approach for verifying the equivalence of two program variants involving non-trivial floating-point operations. The selected test case for our approach are two variants of a differentiated code - one automatically generated, the other manually written. The verification technique operates at the source level, therefore we also investigate the generated assembly code variants and reason on a set of selected compiler options and architectures to guarantee that the correctness proof also holds for the generated binaries.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here
Accelerating Research

Address

John Eccles House
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom