summaryrefslogtreecommitdiffstats
path: root/evaluation.tex
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-04-13 14:08:30 +0100
committerYann Herklotz <git@yannherklotz.com>2021-04-13 14:08:30 +0100
commit388449c2df40a38e17947aceda45a87f6f97242b (patch)
tree2b3c11c6ceea2b0776a6d6ac8d19df132590524f /evaluation.tex
parent5d956c04461294a157bc9cd6e64115f07d835a36 (diff)
downloadoopsla21_fvhls-388449c2df40a38e17947aceda45a87f6f97242b.tar.gz
oopsla21_fvhls-388449c2df40a38e17947aceda45a87f6f97242b.zip
Fix bars
Diffstat (limited to 'evaluation.tex')
-rw-r--r--evaluation.tex251
1 files changed, 126 insertions, 125 deletions
diff --git a/evaluation.tex b/evaluation.tex
index 3f611cd..90ab4c7 100644
--- a/evaluation.tex
+++ b/evaluation.tex
@@ -41,7 +41,6 @@ We configured Polybench's parameters so that only integer types are used, since
ybar=0pt,
%ymode=log, %JW: normalised data ==> log scale
%log ticks with fixed point,
- %ytick = {0.25, 0.5, 1, 2},
width=1\textwidth,
height=0.4\textwidth,
/pgf/bar width=3pt,
@@ -88,6 +87,7 @@ We configured Polybench's parameters so that only integer types are used, since
},
ymode=log,
ybar=0pt,
+ ytick={0.5,1,2,4,8},
width=1\textwidth,
height=0.4\textwidth,
/pgf/bar width=3pt,
@@ -100,7 +100,7 @@ We configured Polybench's parameters so that only integer types are used, since
xtick=data,
enlarge x limits={abs=0.5},
ylabel style={font=\footnotesize},
- ymin=0.5,
+ ymin=0.3,
]
\nextgroupplot[ylabel={\legup{} / \vericert{} execution time ratio}]
@@ -120,6 +120,7 @@ We configured Polybench's parameters so that only integer types are used, since
\end{tikzpicture}
\caption{Polybench with division replaced by iterative division algorithm.}
\end{figure}
+
%
%\pgfplotstableread[col sep=comma]{results/exec-time.csv}{\nodivtimingtable}
%\begin{figure}\centering
@@ -186,76 +187,76 @@ We configured Polybench's parameters so that only integer types are used, since
% \end{tikzpicture}
%\end{figure}
-\begin{figure}\centering
-\begin{subfigure}[t]{0.48\textwidth}
-\definecolor{cyclecountcol}{HTML}{1b9e77}
-\begin{tikzpicture}
-\begin{axis}[
- xmode=log,
- ymode=log,
- height=1\textwidth,
- width=1\textwidth,
- xlabel={\legup{} cycle count},
- ylabel={\vericert{} cycle count},
- xmin=1000,
- xmax=10000000,
- ymax=10000000,
- ymin=1000,
- %log ticks with fixed point,
- ]
-
-\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.6,cyclecountcol]
- table [x=legupcycles, y=vericertcycles, col sep=comma]
- {results/poly.csv};
-
-\addplot[dotted, domain=1000:10000000]{x};
-%\addplot[dashed, domain=10:10000]{9.02*x};
-
-\end{axis}
-\end{tikzpicture}
-\caption{A comparison of the cycle count of hardware designs generated by \vericert{} and by \legup{}.}
-\label{fig:comparison_cycles}
-\end{subfigure}\hfill%
-\begin{subfigure}[t]{0.48\textwidth}
-\definecolor{polycol}{HTML}{e6ab02}
-\definecolor{polywocol}{HTML}{7570b3}
-\begin{tikzpicture}
-\begin{axis}[
- xmode=log,
- ymode=log,
- height=1\textwidth,
- width=1\textwidth,
- xlabel={\legup{} execution time (ms)},
- ylabel={\vericert{} execution time (ms)},
- xmin=10,
- xmax=1000000,
- ymax=1000000,
- ymin=10,
- legend pos=south east,
- %log ticks with fixed point,
- ]
-
-\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.8, polycol]
- table [x expr={\thisrow{legupcycles}/\thisrow{legupfreqMHz}}, y expr={\thisrow{vericertcycles}/\thisrow{vericertoldfreqMHz}}, col sep=comma]
- {results/poly.csv};
-
-\addlegendentry{PolyBench}
-
-\addplot[draw=none, mark=o, fill opacity=0, polywocol]
- table [x expr={\thisrow{legupcycles}/\thisrow{legupfreqMHz}}, y expr={\thisrow{vericertcycles}/\thisrow{vericertfreqMHz}}, col sep=comma]
- {results/poly.csv};
-
-\addlegendentry{PolyBench w/o division}
-
-\addplot[dotted, domain=10:1000000]{x};
-%\addplot[dashed, domain=10:10000]{9.02*x + 442};
-
-\end{axis}
-\end{tikzpicture}
-\caption{A comparison of the execution time of hardware designs generated by \vericert{} and by \legup{}.}
-\label{fig:comparison_time}
-\end{subfigure}
-\end{figure}
+%\begin{figure}\centering
+%\begin{subfigure}[t]{0.48\textwidth}
+%\definecolor{cyclecountcol}{HTML}{1b9e77}
+%\begin{tikzpicture}
+%\begin{axis}[
+% xmode=log,
+% ymode=log,
+% height=1\textwidth,
+% width=1\textwidth,
+% xlabel={\legup{} cycle count},
+% ylabel={\vericert{} cycle count},
+% xmin=1000,
+% xmax=10000000,
+% ymax=10000000,
+% ymin=1000,
+% %log ticks with fixed point,
+% ]
+%
+%\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.6,cyclecountcol]
+% table [x=legupcycles, y=vericertcycles, col sep=comma]
+% {results/poly.csv};
+%
+%\addplot[dotted, domain=1000:10000000]{x};
+%%\addplot[dashed, domain=10:10000]{9.02*x};
+%
+%\end{axis}
+%\end{tikzpicture}
+%\caption{A comparison of the cycle count of hardware designs generated by \vericert{} and by \legup{}.}
+%\label{fig:comparison_cycles}
+%\end{subfigure}\hfill%
+%\begin{subfigure}[t]{0.48\textwidth}
+%\definecolor{polycol}{HTML}{e6ab02}
+%\definecolor{polywocol}{HTML}{7570b3}
+%\begin{tikzpicture}
+%\begin{axis}[
+% xmode=log,
+% ymode=log,
+% height=1\textwidth,
+% width=1\textwidth,
+% xlabel={\legup{} execution time (ms)},
+% ylabel={\vericert{} execution time (ms)},
+% xmin=10,
+% xmax=1000000,
+% ymax=1000000,
+% ymin=10,
+% legend pos=south east,
+% %log ticks with fixed point,
+% ]
+%
+%\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.8, polycol]
+% table [x expr={\thisrow{legupcycles}/\thisrow{legupfreqMHz}}, y expr={\thisrow{vericertcycles}/\thisrow{vericertoldfreqMHz}}, col sep=comma]
+% {results/poly.csv};
+%
+%\addlegendentry{PolyBench}
+%
+%\addplot[draw=none, mark=o, fill opacity=0, polywocol]
+% table [x expr={\thisrow{legupcycles}/\thisrow{legupfreqMHz}}, y expr={\thisrow{vericertcycles}/\thisrow{vericertfreqMHz}}, col sep=comma]
+% {results/poly.csv};
+%
+%\addlegendentry{PolyBench w/o division}
+%
+%\addplot[dotted, domain=10:1000000]{x};
+%%\addplot[dashed, domain=10:10000]{9.02*x + 442};
+%
+%\end{axis}
+%\end{tikzpicture}
+%\caption{A comparison of the execution time of hardware designs generated by \vericert{} and by \legup{}.}
+%\label{fig:comparison_time}
+%\end{subfigure}
+%\end{figure}
%Firstly, before comparing any performance metrics, it is worth highlighting that any Verilog produced by \vericert{} is guaranteed to be \emph{correct}, whilst no such guarantee can be provided by \legup{}.
%This guarantee in itself provides a significant leap in terms of HLS reliability, compared to any other HLS tools available.
@@ -275,59 +276,59 @@ Cycle count is one factor in calculating execution times; the other is the clock
\subsection{RQ2: How area-efficient is \vericert{}-generated hardware?}
-\begin{figure}
-\begin{subfigure}[t]{0.48\textwidth}
-\definecolor{resourceutilcol}{HTML}{e7298a}
-\begin{tikzpicture}
-\begin{axis}[
- height=1\textwidth,
- width=1\textwidth,
- xlabel={\legup{} resource utilisation (\%)},
- ylabel={\vericert{} resource utilisation (\%)},
- xmin=0, ymin=0,
- xmax=1, ymax=30,
- ]
-
-\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.6,resourceutilcol]
- table [x expr=(\thisrow{legupluts}/427200*100), y expr=(\thisrow{vericertluts}/427200*100), col sep=comma]
- {results/poly.csv};
-
-% \addplot[dashed, domain=0:1]{x};
-
-\end{axis}
-\end{tikzpicture}
-\caption{A comparison of the resource utilisation of designs generated by \vericert{} and by \legup{}.}
-\label{fig:comparison_area}
-\end{subfigure}\hfill%
-\begin{subfigure}[t]{0.48\textwidth}
-\definecolor{compiltimecol}{HTML}{66a61e}
-\begin{tikzpicture}
-\begin{axis}[
- height=1\textwidth,
- width=1\textwidth,
- xlabel={\legup{} compilation time (s)},
- ylabel={\vericert{} compilation time (s)},
- yticklabel style={
- /pgf/number format/fixed,
- /pgf/number format/precision=2},
- xmin=4.6,
- xmax=5.1,
- ymin=0.06,
- ymax=0.20,
- ]
-
-\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.6,compiltimecol]
- table [x=legupcomptime, y=vericertcomptime, col sep=comma]
- {results/poly.csv};
-
- %\addplot[dashed, domain=4.5:5.1]{0.1273*x-0.5048};
-
-\end{axis}
-\end{tikzpicture}
-\caption{A comparison of compilation time for \vericert{} and for \legup{}}
-\label{fig:comparison_comptime}
-\end{subfigure}
-\end{figure}
+%\begin{figure}
+%\begin{subfigure}[t]{0.48\textwidth}
+%\definecolor{resourceutilcol}{HTML}{e7298a}
+%\begin{tikzpicture}
+%\begin{axis}[
+% height=1\textwidth,
+% width=1\textwidth,
+% xlabel={\legup{} resource utilisation (\%)},
+% ylabel={\vericert{} resource utilisation (\%)},
+% xmin=0, ymin=0,
+% xmax=1, ymax=30,
+% ]
+%
+%\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.6,resourceutilcol]
+% table [x expr=(\thisrow{legupluts}/427200*100), y expr=(\thisrow{vericertluts}/427200*100), col sep=comma]
+% {results/poly.csv};
+%
+%% \addplot[dashed, domain=0:1]{x};
+%
+%\end{axis}
+%\end{tikzpicture}
+%\caption{A comparison of the resource utilisation of designs generated by \vericert{} and by \legup{}.}
+%\label{fig:comparison_area}
+%\end{subfigure}\hfill%
+%\begin{subfigure}[t]{0.48\textwidth}
+%\definecolor{compiltimecol}{HTML}{66a61e}
+%\begin{tikzpicture}
+%\begin{axis}[
+% height=1\textwidth,
+% width=1\textwidth,
+% xlabel={\legup{} compilation time (s)},
+% ylabel={\vericert{} compilation time (s)},
+% yticklabel style={
+% /pgf/number format/fixed,
+% /pgf/number format/precision=2},
+% xmin=4.6,
+% xmax=5.1,
+% ymin=0.06,
+% ymax=0.20,
+% ]
+%
+%\addplot[draw=none, mark=*, draw opacity=0, fill opacity=0.6,compiltimecol]
+% table [x=legupcomptime, y=vericertcomptime, col sep=comma]
+% {results/poly.csv};
+%
+% %\addplot[dashed, domain=4.5:5.1]{0.1273*x-0.5048};
+%
+%\end{axis}
+%\end{tikzpicture}
+%\caption{A comparison of compilation time for \vericert{} and for \legup{}}
+%\label{fig:comparison_comptime}
+%\end{subfigure}
+%\end{figure}
Figure~\ref{fig:comparison_area} compares the resource utilisation of the Polybench programs generated by \vericert{} and \legup{}.
On average, we see that \vericert{} produces hardware that is about $21\times$ larger than \legup{}. \vericert{} designs are filling up to 30\% of a (large) FPGA chip, while \legup{} uses no more than 1\% of the chip.