diff options
author | Yann Herklotz <ymh15@ic.ac.uk> | 2020-11-21 00:03:19 +0000 |
---|---|---|
committer | overleaf <overleaf@localhost> | 2020-11-21 00:04:19 +0000 |
commit | 15aab23c1e89e9369b631eb3cefc7fc708d6da36 (patch) | |
tree | 1fa2ba7cf2b0af2f369918959326555368fd0b1f /introduction.tex | |
parent | 5f228d3512b2e3e39305e6f53bc873c76439e96f (diff) | |
download | oopsla21_fvhls-15aab23c1e89e9369b631eb3cefc7fc708d6da36.tar.gz oopsla21_fvhls-15aab23c1e89e9369b631eb3cefc7fc708d6da36.zip |
Update on Overleaf.
Diffstat (limited to 'introduction.tex')
-rw-r--r-- | introduction.tex | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/introduction.tex b/introduction.tex index 865dfd1..af148ac 100644 --- a/introduction.tex +++ b/introduction.tex @@ -1,4 +1,5 @@ \section{Introduction} +\label{sec:intro} %% Motivation for why HLS might be needed @@ -8,7 +9,7 @@ \paragraph{Can you trust your high-level synthesis tool?} -As latency, throughput and energy efficiency become increasingly important, custom hardware accelerators are being designed for numerous applications~\cite{??}. +As latency, throughput and energy efficiency become increasingly important, custom hardware accelerators are being designed for numerous applications. Alas, designing these accelerators can be a tedious and error-prone process using a hardware description language (HDL) such as Verilog. An attractive alternative is high-level synthesis (HLS), in which hardware designs are automatically compiled from software written in a language like C. Modern HLS tools such as \legup{}~\cite{canis11_legup}, Vivado HLS~\cite{xilinx20_vivad_high_synth}, Intel i++~\cite{intel_hls}, and Bambu HLS~\cite{bambu_hls} promise designs with comparable performance and energy-efficiency to hand-written HDL designs~\cite{homsirikamol+14, silexicahlshdl, 7818341}, while offering the convenient abstractions and rich ecosystems of software development. @@ -41,7 +42,7 @@ The contributions of this paper are as follows: \begin{itemize} \item We present \vericert{}, the first mechanically verified HLS tool that compiles C to Verilog. In Section~\ref{sec:design}, we describe the design of \vericert{}. \item We prove \vericert{} correct w.r.t. an existing semantics for Verilog due to \citet{loow19_proof_trans_veril_devel_hol}. In Section~\ref{sec:verilog}, we describe how we lightly extended this semantics to make it suitable as an HLS target. Then, in Section~\ref{sec:proof}, we describe the proof. - \item We evaluate \vericert{} on the Polybench/C benchmark suite~\cite{polybench}, and compare the performance of our generated hardware against and the well-known but unverified \legup{} HLS tool~\cite{canis11_legup}. In Section~\ref{sec:evaluation}, we show that \vericert{}-generated Polybench hardware is 10x slower and 21x larger than, HLS-optimised but unverified, \legup{} hardware. We intend to bridge this performance gap in the future by introducing HLS optimisations of our own, such as scheduling and memory analysis. + \item We evaluate \vericert{} on the Polybench/C benchmark suite~\cite{polybench}, and compare the performance of our generated hardware against and the well-known but unverified \legup{} HLS tool~\cite{canis11_legup}. In Section~\ref{sec:evaluation}, we show that \vericert{}-generated Polybench hardware is \slowdownOrig$\times$ slower and \areaIncr$\times$ larger than, HLS-optimised but unverified, \legup{} hardware. We intend to bridge this performance gap in the future by introducing HLS optimisations of our own, such as scheduling and memory analysis. \end{itemize} \vericert{} is fully open source and available online. |