Results 1 -
2 of
2
Symbolic Crosschecking of Floating-Point and SIMD Code
"... We present an effective technique for crosschecking an IEEE 754 floating-point program and its SIMD-vectorized version, implemented in KLEE-FP, an extension to the KLEE symbolic execution tool that supports symbolic reasoning on the equivalence between floating-point values. The key insight behind o ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
We present an effective technique for crosschecking an IEEE 754 floating-point program and its SIMD-vectorized version, implemented in KLEE-FP, an extension to the KLEE symbolic execution tool that supports symbolic reasoning on the equivalence between floating-point values. The key insight behind our approach is that floatingpoint values are only reliably equal if they are essentially built by the same operations. As a result, our technique works by lowering the Intel Streaming SIMD Extension (SSE) instruction set to primitive integer and floating-point operations, and then using an algorithm based on symbolic expression matching augmented with canonicalization rules. Under symbolic execution, we have to verify equivalence along every feasible control-flow path. We reduce the branching factor of this process by aggressively merging conditionals, if-converting branches into select operations via an aggressive phi-node folding transformation. We applied KLEE-FP to OpenCV, a popular open source computer vision library. KLEE-FP was able to successfully crosscheck 51 SIMD/SSE implementations against their corresponding scalar versions, proving the bounded equivalence of 41 of them (i.e., on images up to a certain size), and finding inconsistencies in the other 10.
Metatheory and Operational Reasoning: Real Languages and Executable Code
, 2006
"... In my PhD thesis [34] I described novel ways to improve the automation in current interactive theorem provers. I also addressed the application of theorem provers to other areas of research, in particular, to the formalisation and mechanisation of proofs about distributed algorithms. I proved severa ..."
Abstract
- Add to MetaCart
In my PhD thesis [34] I described novel ways to improve the automation in current interactive theorem provers. I also addressed the application of theorem provers to other areas of research, in particular, to the formalisation and mechanisation of proofs about distributed algorithms. I proved several key properties of algorithms that, for example, allow streaming of television over the internet. I give more details below. As an undergraduate, I studied mathematics, and later gained a distinction in the Computer Science Diploma. After several years as a professional programmer, I returned to academia and completed a PhD at the Laboratory for the Foundations of Computer Science, Edinburgh, under the supervision of Dr Paul

