Few more changes according to feedback
This commit is contained in:
parent
4da98f6ba6
commit
7a4ddb2b7b
3 changed files with 49 additions and 15 deletions
|
@ -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{}
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Reference in a new issue