summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Wickerson <j.wickerson@imperial.ac.uk>2020-09-14 21:53:42 +0000
committeroverleaf <overleaf@localhost>2020-09-14 21:53:46 +0000
commitea2eb16c0b6171e50788bd660d964986fd509e72 (patch)
tree9b1f046cd4e0a56cb56c9053bbb0bcc30874a8fd
parent8a36a7f8a1b8011f5e0c4c9161f754fa8c6d160e (diff)
downloadfccm21_esrhls-ea2eb16c0b6171e50788bd660d964986fd509e72.tar.gz
fccm21_esrhls-ea2eb16c0b6171e50788bd660d964986fd509e72.zip
Update on Overleaf.
-rw-r--r--conclusion.tex2
-rw-r--r--eval_rewrite.tex22
2 files changed, 13 insertions, 11 deletions
diff --git a/conclusion.tex b/conclusion.tex
index 186fdc5..00e02aa 100644
--- a/conclusion.tex
+++ b/conclusion.tex
@@ -1,6 +1,8 @@
\section{Conclusion}
We have shown how existing fuzzing tools can be modified so that their outputs are compatible with HLS tools. We have used this testing framework to run 10,000 test cases \JW{check numbers} through three different HLS tools. In total, we found at least 6 individual and unique bugs in all the tools, which have been reduced, analysed, and reported to the tool vendors. These bugs include crashes as well as instances of generated designs not behaving in the same way as the original code.
+One can always question how much bugs found by fuzzers really \emph{matter}, given that they are usually found by combining language features in ways that are vanishingly unlikely to happen in practice. This question is especially pertinent for our particular context of HLS tools, which are well-known to have restrictions on the language features that they handle.
+
Further work could be done on supporting more HLS tools, especially ones that claim to prove that their output is correct before terminating. This could give an indication on how effective these proofs are, and how often they are actually able to complete their equivalence proofs during compilation in a feasible time scale.
As HLS is becoming increasingly relied upon, it is important to make sure that HLS tools are also reliable. We hope that this work further motivates the design of correct HLS tools, either by validating that the output is correct or by proving the HLS tool correct.
diff --git a/eval_rewrite.tex b/eval_rewrite.tex
index c8ce23b..e464997 100644
--- a/eval_rewrite.tex
+++ b/eval_rewrite.tex
@@ -7,9 +7,9 @@
\resizebox{0.47\textwidth}{!}{%
\begin{tikzpicture}
\draw (-14.5,7.65) rectangle (0,-1);
- \draw[fill=vivado,fill opacity=0.5] (-4.4,4.4) ellipse (3.75 and 2.75);
- \draw[fill=intel,fill opacity=0.5] (-10.2,4.4) ellipse (3.75 and 2.75);
- \draw[fill=legup,fill opacity=0.5] (-7.3,2) ellipse (3.75 and 2.75);
+ \fill[vivado,fill opacity=0.5] (-4.4,4.4) ellipse (3.75 and 2.75);
+ \fill[intel,fill opacity=0.5] (-10.2,4.4) ellipse (3.75 and 2.75);
+ \fill[legup,fill opacity=0.5] (-7.3,2) ellipse (3.75 and 2.75);
\draw[black] (-4.4,4.4) ellipse (3.75 and 2.75); % making the
\draw[black] (-10.2,4.4) ellipse (3.75 and 2.75); % outlines
\draw[black] (-7.3,2) ellipse (3.75 and 2.75); % fully opaque
@@ -17,17 +17,17 @@
\node at (-4.4,6.3) {\Large\textsf{\textbf{Intel HLS}}};
\node at (-7.3,0) {\Large\textsf{\textbf{LegUp}}};
- \node at (-5.5,3) {\Huge 1 / \textcolor{red}{1}};
- \node at (-9.1,3) {\Huge 4 / \textcolor{red}{0}};
- \node at (-3,5) {\Huge 26 / \textcolor{red}{540}};
- \node at (-11.6,5) {\Huge 79 / \textcolor{red}{20}};
- \node at (-7.3,1) {\Huge 162 / \textcolor{red}{6}};
- \node at (-7.3,5.2) {\Huge 0 / \textcolor{red}{5}};
- \node at (-7.3,3.8) {\Huge 0 / \textcolor{red}{0}};
+ \node at (-5.5,3) {\Huge 1 (\textcolor{red}{1})};
+ \node at (-9.1,3) {\Huge 4 (\textcolor{red}{0})};
+ \node at (-3,5) {\Huge 26 (\textcolor{red}{540})};
+ \node at (-11.6,5) {\Huge 79 (\textcolor{red}{20})};
+ \node at (-7.3,1) {\Huge 162 (\textcolor{red}{6})};
+ \node at (-7.3,5.2) {\Huge 0 (\textcolor{red}{5})};
+ \node at (-7.3,3.8) {\Huge 0 (\textcolor{red}{0})};
\node at (-13.6,-0.5) {\Huge 5856};
\end{tikzpicture}
}
-\caption{Venn diagram showing the bug failures in each tool out of 6700 test cases that were run. Overlapping regions mean that the test cases failed in all those tools. The numbers in red represent the number of test cases that timed out after two hours.}\label{fig:existing_tools}
+\caption{A Venn diagram showing the number of failures in each tool out of 6700 test cases that were run. Overlapping regions mean that the test cases failed in all those tools. The numbers in parentheses represent the number of test cases that timed out.}\label{fig:existing_tools}
\end{figure}
\begin{table}