Formal verification of source-to-source transformations for HLS
| dc.contributor.author | Pouchet, Louis-Noël, author | |
| dc.contributor.author | Tucker, Emily, author | |
| dc.contributor.author | Zhang, Niansong, author | |
| dc.contributor.author | Chen, Hongzheng, author | |
| dc.contributor.author | Pal, Debjit, author | |
| dc.contributor.author | Rodríguez, Gabriel, author | |
| dc.contributor.author | Zhang, Zhiru, author | |
| dc.contributor.author | ACM, publisher | |
| dc.date.accessioned | 2024-11-11T19:34:34Z | |
| dc.date.available | 2024-11-11T19:34:34Z | |
| dc.date.issued | 2024-04-02 | |
| dc.description.abstract | High-level synthesis (HLS) can greatly facilitate the description of complex hardware implementations, by raising the level of abstraction up to a classical imperative language such as C/C++, usually augmented with vendor-specific pragmas and APIs. Despite productivity improvements, attaining high performance for the final design remains a challenge, and higher-level tools like source-to-source compilers have been developed to generate programs targeting HLS toolchains. These tools may generate highly complex HLS-ready C/C++ code, reducing the programming effort and enabling critical optimizations. However, whether these HLS-friendly programs are produced by a human or a tool, validating their correctness or exposing bugs otherwise remains a fundamental challenge. In this work we target the problem of efficiently checking the semantics equivalence between two programs written in C/C++ as a means to ensuring the correctness of the description provided to the HLS toolchain, by proving an optimized code version fully preserves the semantics of the unoptimized one. We introduce a novel formal verification approach that combines concrete and abstract interpretation with a hybrid symbolic analysis. Notably, our approach is mostly agnostic to how control-flow, data storage, and dataflow are implemented in the two programs. It can prove equivalence under complex bufferization and loop/syntax transformations, for a rich class of programs with statically interpretable control-flow. We present our techniques and their complete end-to-end implementation, demonstrating how our system can verify the correctness of highly complex programs generated by source-to-source compilers for HLS, and detect bugs that may elude co-simulation. | |
| dc.format.medium | born digital | |
| dc.format.medium | articles | |
| dc.identifier.bibliographicCitation | Louis-Noël Pouchet, Emily Tucker, Niansong Zhang, Hongzheng Chen, Debjit Pal, Gabriel Rodríguez, Zhiru Zhang. 2024. Formal Verification of Source- to-Source Transformations for HLS. In Proceedings of the 2024 ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA '24), March 3–5, 2024, Monterey, CA, USA. ACM, New York, NY, USA, 11 pages. https://doi.org/10.1145/3626202.3637563 | |
| dc.identifier.doi | https://doi.org/10.1145/3626202.3637563 | |
| dc.identifier.uri | https://hdl.handle.net/10217/239539 | |
| dc.language | English | |
| dc.language.iso | eng | |
| dc.publisher | Colorado State University. Libraries | |
| dc.relation.ispartof | Publications | |
| dc.relation.ispartof | ACM DL Digital Library | |
| dc.rights | Copyright and other restrictions may apply. User is responsible for compliance with all applicable laws. For information about copyright law, please see https://libguides.colostate.edu/copyright. | |
| dc.subject | program equivalence | |
| dc.subject | formal verification | |
| dc.subject | high-level synthesis | |
| dc.title | Formal verification of source-to-source transformations for HLS | |
| dc.type | Text |
Files
Original bundle
1 - 1 of 1
Loading...
- Name:
- FACF_ACMOA_3626202.3637563.pdf
- Size:
- 1.14 MB
- Format:
- Adobe Portable Document Format
