Carnegie Mellon University
Browse

HELIX: From Math to Verified Code

Download (1.95 MB)
thesis
posted on 2021-01-25, 22:32 authored by Vadim ZalivaVadim Zaliva
This thesis presents HELIX, a code generation and formal verification system with a focus on the intersection of high-performance and high-assurance numerical computing.
This allowed us to build a system that could be ?ne-tuned to generate efficient code for a broad set of computer architectures while providing formal guarantees of
such generated code's correctness. The method we used for high-performance code synthesis is the algebraic
transformation of vector and matrix computations into a data
ow optimized for parallel or vectorized processing on target hardware. The abstraction used to formalize and verify this technique is an operator language used with semantics-preserving term-rewriting. We use sparse vector abstraction to represent partial computations, enabling us to use algebraic reasoning to prove parallel decomposition properties. HELIX provides a formal verification foundation for rewriting-based algebraic code synthesis optimizations, driven by an external oracle. Presently HELIX uses SPIRAL as an oracle deriving the rule application order. The SPIRAL system was developed over the years and successfully applied to generate code for various numeric algorithms. Building on its sound algebraic foundation, we generalize and extend it in the direction of non-linear operators, towards a new theory of partial computations, applying formal language theory and formal verification techniques.
HELIX is developed and proven in Coq proof assistant and demonstrated on a real-life example of verified high-performance code generation of the dynamic window safety monitor for a cyber-physical robot system.

History

Date

2020-12-15

Degree Type

  • Dissertation

Department

  • Electrical and Computer Engineering

Degree Name

  • Doctor of Philosophy (PhD)

Advisor(s)

Franz Franchetti