94 lines
2.8 KiB
TeX
94 lines
2.8 KiB
TeX
\section{\cesasme: evaluate and compare state-of-the-art code analyzers}
|
|
|
|
\begin{frame}[fragile]
|
|
\begin{minipage}{0.6\textwidth}
|
|
\begin{center}
|
|
Matrix multiplication:
|
|
\end{center}
|
|
\begin{lstlisting}[language={[x86masm]Assembler}]
|
|
loop:
|
|
movsd (%rcx, %rax), %xmm0
|
|
mulsd %xmm1, %xmm0
|
|
addsd (%rdx, %rax), %xmm0
|
|
movsd %xmm0, (%rdx, %rax)
|
|
addq $8, %rax
|
|
cmpq $0x2260, %rax
|
|
jne loop\end{lstlisting}
|
|
\end{minipage}\hfill\vrule\hfill
|
|
\begin{minipage}{0.38\textwidth}
|
|
\begin{tabular}{l r}
|
|
\llvmmca{}: & 1.5 cycles \\
|
|
\iaca{}: & 2.0 cycles \\
|
|
\ithemal{}: & 2.0 cycles \\
|
|
\uica{}: & 3.0 cycles \\
|
|
\end{tabular}
|
|
\end{minipage}
|
|
|
|
\vfill{}
|
|
|
|
\begin{center}
|
|
\textbf{Which prediction is correct?} \quad
|
|
\alert{\textbf{We lack a sound baseline!}}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Lifting predictions}
|
|
\begin{itemize}
|
|
\item Instrument full kernel $\kerK$: for each basic block,
|
|
$\operatorname{occur}(\text{bb})$
|
|
\item For each tool
|
|
\begin{itemize}
|
|
\item for each bb,
|
|
$\operatorname{prediction}(\text{bb})$
|
|
\item \emph{lift} predictions: \[
|
|
\operatorname{prediction}(\kerK) =
|
|
\sum_{\text{bb} \in \kerK}
|
|
\operatorname{occur}(\text{bb}) \times
|
|
\operatorname{prediction}(\text{bb})
|
|
\]
|
|
\end{itemize}
|
|
\item Measure total kernel time
|
|
\end{itemize}
|
|
|
|
\pause
|
|
\begin{center}
|
|
\textbf{Now we have a baseline.}\\
|
|
\textit{\color[HTML]{6e7581}(And \llvmmca{} was correct.)}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Generating benchmarks}
|
|
We need benchmarks\ldots \\
|
|
\vspace{1em}
|
|
{\def\arraystretch{1.2}
|
|
\newcommand{\litem}{\usebeamertemplate*{itemize item}\hspace{-0.5em}}
|
|
\begin{tabular}{rl l}
|
|
\litem{} & representative of scientific computation &
|
|
\visible<2->{\alert{Polybench}}\\
|
|
\litem{} & infinite, L1-resident loops &
|
|
\visible<3->{\alert{``microkernelification''} + verify}
|
|
\\
|
|
\litem{} & stressing diverse resources &
|
|
\visible<4->{\alert{Polyhedral transformations}}
|
|
\\
|
|
& & \visible<4->{+ \alert{unrolling} + \alert{compiler
|
|
options}} \\
|
|
\litem{} & plenty of them &
|
|
\visible<5->{\alert{Even more} of all those $\nnearrow$} \\
|
|
\end{tabular}
|
|
\let\litem\undefined
|
|
}
|
|
|
|
\begin{center}
|
|
\visible<6->{\textbf{\leadsto{} yields \alert{~3500} benchmarks}}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\vspace{0.5cm}
|
|
\begin{columns}
|
|
\column{\dimexpr\paperwidth-8pt}
|
|
\centering
|
|
\input{overview.tex}
|
|
\end{columns}
|
|
\end{frame}
|