All Projects → vzaliva → helix

vzaliva / helix

Licence: other
Formally verified operator language and rewriting engine for high-performance computing

Programming Languages

Coq
218 projects
GAP
223 projects
haskell
3896 projects
LLVM
166 projects
ocaml
1615 projects
c
50402 projects - #5 most used programming language

HELIX

https://travis-ci.com/vzaliva/helix.svg?token=x87izvm44MdTPLHzuxzF&branch=master

HELIX project allows for the synthesis of high-performance implementations of numerical algorithms by providing a certified compiler for formally-specified DSL. Based on the existing SPIRAL system, HELIX adds the rigor of formal verification of its correctness using the Coq proof assistant. It formally defines a series of domain-specific languages starting with HCOL, which represents a computation data flow. HELIX works by transforming the original program through a series of intermediate languages, culminating in LLVM IR.

  • HELIX focuses on automatic translation a class of mathematical. expressions to code.
  • It works by revealing implicit iteration constructs and re-shaping them to match target platform parallelizm and vectorization capabilities.
  • HELIX is rigorously defined and formally verified.
  • HELIX is implemented in Coq proof assistant.
  • It supports non-linear operators.
  • Presently, HELIX uses SPIRAL as an optimization oracle, but it certifies its findings.
  • LLVM is used machine code generation backend.
  • Main application: Cyber-physical systems.

Example

An application of HELIX to a real-life situation of high-assurance vehicle control (paper) using a dynamic window vehicle control approach (paper)​ is shown below:

doc/bigpicture.png

Dependencies

To install all required dependenceis:

opam repo add coq-released https://coq.inria.fr/opam/released
make -j 4 install-deps

To install optional dependencies:

opam install coq-dpdgraph

Bulding and Running

Clone the repository with submodules:

git clone --recurse-submodules https://github.com/vzaliva/helix

Build:

make

Run unit tests:

make test

Papers

How to cite

Recommended citation:

@phdthesis{zaliva2020helix,
  title  = {{HELIX}: From Math to Verified Code},
  author = {Zaliva, Vadim},
  year   = {2020},
  school = {Carnegie Mellon University}
}

Contact

Vadim Zaliva

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].