diff --git a/slides/40_cesasme/main.tex b/slides/40_cesasme/main.tex index 88bf5d0..3feb7cd 100644 --- a/slides/40_cesasme/main.tex +++ b/slides/40_cesasme/main.tex @@ -123,3 +123,78 @@ Gus & 0.00 & 20.37 & 30.59 & 0.82 & 188.04 \\ \end{minipage} \end{columns} \end{frame} + +\begin{frame}[fragile]{Searching for areas of improvement} + \begin{itemize} + \item{} Tools often wrong on the \emph{same} rows + \begin{itemize} + \item \llvmmca{}, \iaca{} and \uica{} share 80\,\% of their + worst 30\,\% + \end{itemize} + \item{} Often \texttt{-O1} rows + \end{itemize} + + \begin{center} + \textbf{Crucial difference:} + \end{center} + +\begin{minipage}[t]{0.47\textwidth} + \begin{center} + \textbf{\color[HTML]{008f0c}Good} + \end{center} + \vspace{-1em} +\begin{lstlisting}[language={[ANSI]C}] +for(c3) + A[c1][c3] += u1[c1] * v1[c3] + + u2[c1] * v2[c3]; +\end{lstlisting} +\end{minipage}\hfill\vrule\hfill + \begin{minipage}[t]{0.47\textwidth} + \begin{center} + \textbf{\color{red}Bad} + \end{center} + \vspace{-1em} +\begin{lstlisting}[language={[ANSI]C}] +for(c3) + tmp[c1] += A[c1][c3] * x[c3]; +\end{lstlisting} + \end{minipage} + + \pause{} + \begin{center} + \alert{\textbf{Dependencies through memory!}} + \end{center} +\end{frame} + +\begin{frame}{Pruning memory-carried dependencies (Intel Skylake on Grid5000)} + \newcommand{\full}{{\color[HTML]{c7805a}Full}} + \newcommand{\pruned}{{\color[HTML]{4360be}Pruned}} + \begin{columns} + \column{\dimexpr\paperwidth-8pt} + \centering + \begin{minipage}[c]{0.55\textwidth} + \centering + \footnotesize + \begin{tabular}{l r r r r r} + \toprule + \textbf{Bencher} & Dataset & +\textbf{MAPE} & \textbf{Median} & \textbf{$K_\tau$} \\ + & & (\%) & (\%) & \\ +\midrule +llvm-mca & \full{} & 36.71 & 59.80 & 0.57 \\ +UiCA & \full{} & 29.59 & 52.99 & 0.58 \\ +Iaca & \full{} & 30.23 & 57.18 & 0.59 \\ +\bottomrule + \end{tabular} + \end{minipage} + \hfill\vrule\hfill + \begin{minipage}[c]{0.43\textwidth} + \centering + \includegraphics[width=\textwidth]{nomemdeps_boxplot.svg}\\ + {\small\textit{Outliers > 250\,\% trimmed}} + \end{minipage} + \end{columns} + \let\full\undefined + \let\pruned\undefined +\end{frame} +