diff options
author | John Wickerson <j.wickerson@imperial.ac.uk> | 2020-08-08 08:56:18 +0000 |
---|---|---|
committer | overleaf <overleaf@localhost> | 2020-08-10 14:27:14 +0000 |
commit | c45bea00f992666b09211acb1fc3f96f70426b8b (patch) | |
tree | fa06aed458a1ba3d37acdb354b14197bfda42d99 /main.tex | |
parent | cbe7b05fbbecf8cda01f251d11064caca1f93d4e (diff) | |
download | fccm21_esrhls-c45bea00f992666b09211acb1fc3f96f70426b8b.tar.gz fccm21_esrhls-c45bea00f992666b09211acb1fc3f96f70426b8b.zip |
Update on Overleaf.
Diffstat (limited to 'main.tex')
-rw-r--r-- | main.tex | 33 |
1 files changed, 18 insertions, 15 deletions
@@ -1,9 +1,5 @@ \documentclass[hyphens,prologue,x11names,rgb,sigconf]{acmart} -\def\ymhgistrue{1}\def\ymhgident% - {1} -% ^^^ Set ident to 0 for anonymous, and 1 for personal info - \usepackage[english]{babel} \usepackage{graphicx} \usepackage{siunitx} @@ -64,8 +60,8 @@ \postcode{SW7 2AZ} } -\author{Nadesh Ramanathan} -\email{email@imperial.ac.uk} +\author{Yann Herklotz} +\email{yann.herklotz15@imperial.ac.uk} \affiliation{% \institution{Imperial College London} \streetaddress{South Kensington Campus} @@ -74,8 +70,8 @@ \postcode{SW7 2AZ} } -\author{Yann Herklotz} -\email{yann.herklotz15@imperial.ac.uk} +\author{Nadesh Ramanathan} +\email{email@imperial.ac.uk} \affiliation{% \institution{Imperial College London} \streetaddress{South Kensington Campus} @@ -150,19 +146,26 @@ Abstract \section{Introduction} +High-level synthesis (HLS) is increasingly important. It is being adopted both by hardware engineers aiming to increase their productivity, and by software engineers aiming to attain the performance and energy-efficiency of custom hardware. It is even being used in safety-critical settings \cite{?}. As such, HLS tools are increasingly trusted. But are they trustworthy? In this paper, we investigate how reliable existing HLS tools are. +Our method is brought over from the compiler testing literature. We use a tool called Csmith~\cite{?} to generate well-formed C programs from the subset of the C language that is supported by all the HLS tools we test. We synthesise each C program to RTL, and use a Verilog simulator to calculate its return value. If synthesis crashes, or if this return value differs from the return value obtained by executing a binary compiled from the C program by gcc, then we have found a candidate bug. We then use trial-and-error to reduce the C program to a minimal version that still triggers a bug. -\section{Conclusion and further work} - +We have tested three widely used HLS tools: LegUp~\cite{?}, Xilinx Vivado HLS~\cite{?}, and the Intel HLS Compiler~\cite{?}. For all three tools, we were able to find valid C programs that cause crashes while compiling and valid C programs that cause wrong RTL to be generated. We have submitted a total of \ref{?} bug reports to the developers, \ref{?} of which have been confirmed and \ref{?} of which have now been fixed at the time of writing. +\section{Method} +\begin{itemize} +\item How Csmith works. +\item How we configure Csmith so that it only generates HLS-friendly programs. +\item How we process the programs generated by Csmith to add in labels on loops etc. +\item How we generate a TCL script for each program. +\item How we run each HLS tool, using timeouts as appropriate. +\end{itemize} -\begin{acks} -We acknowledge -\end{acks} +%\begin{acks} +%For final version of paper. +%\end{acks} \bibliographystyle{ACM-Reference-Format} -\addtolength{\textheight}{-310pt} -% \balance \bibliography{conference.bib} \end{document} |