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

View file

@ -75,7 +75,10 @@
% \end{itemize} % \end{itemize}
%\end{frame} %\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''}: Pieces of code referred as \alert{``microkernels''}:
\begin{itemize} \begin{itemize}
@ -84,8 +87,23 @@
\item straight-line code (branches assumed not taken); \item straight-line code (branches assumed not taken);
\item L1-resident (memory model is out of scope). \item L1-resident (memory model is out of scope).
\end{itemize} \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! Reasonable hypotheses for the category of codes worth optimizing this way!
\end{center}
\end{columns}
\end{frame} \end{frame}
\begin{frame}{Code analyzers} \begin{frame}{Code analyzers}
@ -100,18 +118,30 @@
\end{frame} \end{frame}
\begin{frame}{Existing code analyzers} \begin{frame}{Existing code analyzers}
\begin{itemize} \begin{minipage}[t]{0.55\textwidth}
\item Intel \alert{\iaca{}}: proprietary, Intel CPUs only. First \begin{block}{Behavioural}
``good'' code analyzer, now deprecated. Was (is?) widely used. \medskip
\item \alert{\llvmmca{}}: FOSS, production-grade, many \begin{itemize}
microarchitectures. Based on data from the \texttt{llvm} compiler. \item \alert{\iaca{}}: Intel, proprietary. Intel CPUs only.
\item \alert{\uica{}} and \alert{\uopsinfo{}}: research, good accuracy. \item \alert{\llvmmca{}}: \texttt{llvm} project, FOSS.
Intel CPUs. \item \alert{\uica{}}, \alert{\uopsinfo{}}: academia. Intel CPUs
\item \alert{\ithemal{}}: machine-learning based. only.
\end{itemize} \end{itemize}
\bigskip \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!\\ models!\\
\pause{} \pause{}
\bigskip{} \bigskip{}

View file

@ -44,7 +44,7 @@ loop:
{\def\arraystretch{1.2} {\def\arraystretch{1.2}
\newcommand{\litem}{\usebeamertemplate*{itemize item}\hspace{-0.5em}} \newcommand{\litem}{\usebeamertemplate*{itemize item}\hspace{-0.5em}}
\begin{tabular}{rl l} \begin{tabular}{rl l}
\litem{} & representative of scientific computation & \litem{} & representative &
\visible<2->{\alert{Polybench}}\\ \visible<2->{\alert{Polybench}}\\
\litem{} & infinite, L1-resident loops & \litem{} & infinite, L1-resident loops &
\visible<3->{\alert{``microkernelification''} + verify} \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} \item Unaware of context: \emph{assumes no pointers alias}
\begin{itemize} \begin{itemize}
\item Intrinsic limitation of block-based code analyzers \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{itemize} \end{itemize}
\end{frame} \end{frame}