summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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}