diff --git a/slides/20_foundations/main.tex b/slides/20_foundations/main.tex index a37ce11..9de59d6 100644 --- a/slides/20_foundations/main.tex +++ b/slides/20_foundations/main.tex @@ -75,7 +75,10 @@ % \end{itemize} %\end{frame} -\begin{frame}{What do we analyze?} +\begin{frame}[fragile]{What do we analyze?} +\begin{columns} +\column{\dimexpr\paperwidth-20pt} + \begin{minipage}[c]{0.60\textwidth} Pieces of code referred as \alert{``microkernels''}: \begin{itemize} @@ -84,8 +87,23 @@ \item straight-line code (branches assumed not taken); \item L1-resident (memory model is out of scope). \end{itemize} - + \end{minipage} + \hfill\begin{minipage}[c]{0.35\textwidth} + \begin{lstlisting}[language={[x86masm]Assembler}, numbers=none] +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} + \vspace{2em} + \begin{center} Reasonable hypotheses for the category of codes worth optimizing this way! + \end{center} +\end{columns} \end{frame} \begin{frame}{Code analyzers} @@ -100,18 +118,30 @@ \end{frame} \begin{frame}{Existing code analyzers} - \begin{itemize} - \item Intel \alert{\iaca{}}: proprietary, Intel CPUs only. First - ``good'' code analyzer, now deprecated. Was (is?) widely used. - \item \alert{\llvmmca{}}: FOSS, production-grade, many - microarchitectures. Based on data from the \texttt{llvm} compiler. - \item \alert{\uica{}} and \alert{\uopsinfo{}}: research, good accuracy. - Intel CPUs. - \item \alert{\ithemal{}}: machine-learning based. - \end{itemize} - \bigskip + \begin{minipage}[t]{0.55\textwidth} + \begin{block}{Behavioural} + \medskip + \begin{itemize} + \item \alert{\iaca{}}: Intel, proprietary. Intel CPUs only. + \item \alert{\llvmmca{}}: \texttt{llvm} project, FOSS. + \item \alert{\uica{}}, \alert{\uopsinfo{}}: academia. Intel CPUs + only. + \end{itemize} + \end{block} + \end{minipage} + \hfill + \begin{minipage}[t]{0.40\textwidth} + \begin{block}{ML-based} + \medskip + \begin{itemize} + \item \alert{\ithemal{}}: academia. + \end{itemize} + \end{block} + \end{minipage} \\ - Except Ithemal, \alert{all} are (to some extent) based on manually-made + \vfill + + Behavioural tools are (to some extent) based on \alert{manually-made} models!\\ \pause{} \bigskip{} diff --git a/slides/40_cesasme/main.tex b/slides/40_cesasme/main.tex index fb48799..68ad0fc 100644 --- a/slides/40_cesasme/main.tex +++ b/slides/40_cesasme/main.tex @@ -44,7 +44,7 @@ loop: {\def\arraystretch{1.2} \newcommand{\litem}{\usebeamertemplate*{itemize item}\hspace{-0.5em}} \begin{tabular}{rl l} - \litem{} & representative of scientific computation & + \litem{} & representative & \visible<2->{\alert{Polybench}}\\ \litem{} & infinite, L1-resident loops & \visible<3->{\alert{``microkernelification''} + verify} diff --git a/slides/50_staticdeps/main.tex b/slides/50_staticdeps/main.tex index a2e8a89..a68860f 100644 --- a/slides/50_staticdeps/main.tex +++ b/slides/50_staticdeps/main.tex @@ -216,7 +216,11 @@ int fibo(int* F, int n) { \item Unaware of context: \emph{assumes no pointers alias} \begin{itemize} \item Intrinsic limitation of block-based code analyzers - \item Future works: abstract interpretation? + \item Future works: information from + \begin{itemize} + \item the compiler? + \item a light instrumentation pass? + \end{itemize} \end{itemize} \end{itemize} \end{frame}