Few more changes according to feedback

This commit is contained in:
Théophile Bastian 2024-12-05 18:34:30 +01:00
parent 4da98f6ba6
commit 7a4ddb2b7b
3 changed files with 49 additions and 15 deletions
slides
20_foundations
40_cesasme
50_staticdeps

View file

@ -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{}

View file

@ -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}

View file

@ -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}