Hyperblock scheduling for verified high-level synthesis
File(s)3656455.pdf (360.13 KB)
Published version
Author(s)
Herklotz, Yann
Wickerson, John
Type
Journal Article
Abstract
High-level synthesis (HLS) is the automatic compilation of software programs into custom hardware designs.
With programmable hardware devices (such as FPGAs) now widespread, HLS is increasingly relied upon, but
existing HLS tools are too unreliable for safety- and security-critical applications. Herklotz et al. partially
addressed this concern by building Vericert, a prototype HLS tool that is proven correct in Coq (à la CompCert),
but it cannot compete performance-wise with unverified tools. This paper reports on our efforts to close this
performance gap, thus obtaining the first practical verified HLS tool. We achieve this by implementing a flexible
operation scheduler based on hyperblocks (basic blocks of predicated instructions) that supports operation
chaining (packing dependent operations into a single clock cycle). Correctness is proven via translation
validation: each schedule is checked using a Coq-verified validator that uses a SAT solver to reason about
predicates. Avoiding exponential blow-up in this validation process is a key challenge, which we address
by using final-state predicates and value summaries. Experiments on the PolyBench/C suite indicate that
scheduling makes Vericert-generated hardware 2.1× faster, thus bringing Vericert into competition with a
state-of-the-art open-source HLS tool when a similar set of optimisations is enabled.
With programmable hardware devices (such as FPGAs) now widespread, HLS is increasingly relied upon, but
existing HLS tools are too unreliable for safety- and security-critical applications. Herklotz et al. partially
addressed this concern by building Vericert, a prototype HLS tool that is proven correct in Coq (à la CompCert),
but it cannot compete performance-wise with unverified tools. This paper reports on our efforts to close this
performance gap, thus obtaining the first practical verified HLS tool. We achieve this by implementing a flexible
operation scheduler based on hyperblocks (basic blocks of predicated instructions) that supports operation
chaining (packing dependent operations into a single clock cycle). Correctness is proven via translation
validation: each schedule is checked using a Coq-verified validator that uses a SAT solver to reason about
predicates. Avoiding exponential blow-up in this validation process is a key challenge, which we address
by using final-state predicates and value summaries. Experiments on the PolyBench/C suite indicate that
scheduling makes Vericert-generated hardware 2.1× faster, thus bringing Vericert into competition with a
state-of-the-art open-source HLS tool when a similar set of optimisations is enabled.
Date Issued
2024-06
Date Acceptance
2024-04-01
Citation
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2024, 8 (PLDI), pp.1929-1953
ISSN
2475-1421
Publisher
Association for Computing Machinery (ACM)
Start Page
1929
End Page
1953
Journal / Book Title
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
Volume
8
Issue
PLDI
Copyright Statement
Copyright © 2024 Owner/Author.
This work is licensed under a Creative Commons Attribution International 4.0 License.
This work is licensed under a Creative Commons Attribution International 4.0 License.
License URL
Identifier
https://dl.acm.org/doi/10.1145/3656455
Publication Status
Published
Article Number
225
Date Publish Online
2024-06-20