Start slides on CesASMe
This commit is contained in:
parent
835867c970
commit
551a09731f
4 changed files with 179 additions and 1 deletions
slides
|
@ -1 +1,94 @@
|
|||
\section{\cesasme: evaluate and compare state-of-the-art code analyzers}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\begin{minipage}{0.6\textwidth}
|
||||
\begin{center}
|
||||
Matrix multiplication:
|
||||
\end{center}
|
||||
\begin{lstlisting}[language={[x86masm]Assembler}]
|
||||
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}\hfill\vrule\hfill
|
||||
\begin{minipage}{0.38\textwidth}
|
||||
\begin{tabular}{l r}
|
||||
\llvmmca{}: & 1.5 cycles \\
|
||||
\iaca{}: & 2.0 cycles \\
|
||||
\ithemal{}: & 2.0 cycles \\
|
||||
\uica{}: & 3.0 cycles \\
|
||||
\end{tabular}
|
||||
\end{minipage}
|
||||
|
||||
\vfill{}
|
||||
|
||||
\begin{center}
|
||||
\textbf{Which prediction is correct?} \quad
|
||||
\alert{\textbf{We lack a sound baseline!}}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Lifting predictions}
|
||||
\begin{itemize}
|
||||
\item Instrument full kernel $\kerK$: for each basic block,
|
||||
$\operatorname{occur}(\text{bb})$
|
||||
\item For each tool
|
||||
\begin{itemize}
|
||||
\item for each bb,
|
||||
$\operatorname{prediction}(\text{bb})$
|
||||
\item \emph{lift} predictions: \[
|
||||
\operatorname{prediction}(\kerK) =
|
||||
\sum_{\text{bb} \in \kerK}
|
||||
\operatorname{occur}(\text{bb}) \times
|
||||
\operatorname{prediction}(\text{bb})
|
||||
\]
|
||||
\end{itemize}
|
||||
\item Measure total kernel time
|
||||
\end{itemize}
|
||||
|
||||
\pause
|
||||
\begin{center}
|
||||
\textbf{Now we have a baseline.}\\
|
||||
\textit{\color[HTML]{6e7581}(And \llvmmca{} was correct.)}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Generating benchmarks}
|
||||
We need benchmarks\ldots \\
|
||||
\vspace{1em}
|
||||
{\def\arraystretch{1.2}
|
||||
\newcommand{\litem}{\usebeamertemplate*{itemize item}\hspace{-0.5em}}
|
||||
\begin{tabular}{rl l}
|
||||
\litem{} & representative of scientific computation &
|
||||
\visible<2->{\alert{Polybench}}\\
|
||||
\litem{} & infinite, L1-resident loops &
|
||||
\visible<3->{\alert{``microkernelification''} + verify}
|
||||
\\
|
||||
\litem{} & stressing diverse resources &
|
||||
\visible<4->{\alert{Polyhedral transformations}}
|
||||
\\
|
||||
& & \visible<4->{+ \alert{unrolling} + \alert{compiler
|
||||
options}} \\
|
||||
\litem{} & plenty of them &
|
||||
\visible<5->{\alert{Even more} of all those $\nnearrow$} \\
|
||||
\end{tabular}
|
||||
\let\litem\undefined
|
||||
}
|
||||
|
||||
\begin{center}
|
||||
\visible<6->{\textbf{\leadsto{} yields \alert{~3500} benchmarks}}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\vspace{0.5cm}
|
||||
\begin{columns}
|
||||
\column{\dimexpr\paperwidth-8pt}
|
||||
\centering
|
||||
\input{overview.tex}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
|
79
slides/40_cesasme/overview.tex
Normal file
79
slides/40_cesasme/overview.tex
Normal file
|
@ -0,0 +1,79 @@
|
|||
\definecolor{col_bench_gen}{HTML}{5a7eff}
|
||||
\definecolor{col_bench_gen_bg}{HTML}{dbeeff}
|
||||
\definecolor{col_bench_harness}{HTML}{ffa673}
|
||||
\definecolor{col_results}{HTML}{000000}
|
||||
|
||||
\centering
|
||||
\begin{tikzpicture}[
|
||||
hiddennode/.style={rectangle,draw=normal text.bg, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||||
normnode/.style={rectangle,draw=black, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||||
resultnode/.style={rectangle,draw=col_results, fill=black!2, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||||
bluenode/.style={rectangle, draw=col_bench_gen, fill=col_bench_gen_bg, very thick, minimum height=5mm, minimum width=4cm, align=center, font=\footnotesize},
|
||||
rednode/.style={rectangle, draw=col_bench_harness, fill=orange!5, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||||
bencher/.style={rednode, minimum width=2.5cm, minimum height=5mm},
|
||||
genarrow/.style={draw=col_bench_gen},
|
||||
harnarrow/.style={draw=col_bench_harness},
|
||||
]
|
||||
\centering
|
||||
%Nodes
|
||||
\node[bluenode] (bench) {Benchmark suite \figref{ssec:bench_suite}};
|
||||
\node[bluenode] (pocc) [below=of bench] {Loop nest optimizers \figref{ssec:loop_nest_optimizer}};
|
||||
\node[bluenode] (kernel) [below=of pocc] {Constraining utility \figref{ssec:kernelify}};
|
||||
\node[bluenode] (gcc) [below=of kernel] {Compilations \figref{ssec:compile}};
|
||||
\node[rednode] (gdb) [right=0.1\textwidth of gcc] {Basic block \\extraction \figref{ssec:bb_extr}};
|
||||
\node[bencher] (ithemal) [right=4cm of gdb] {Ithemal};
|
||||
\node[bencher] (iaca) [above=0.5em of ithemal] {IACA};
|
||||
\node[bencher] (uica) [above=0.5em of iaca] {uiCA};
|
||||
\node[bencher] (llvm) [above=0.5em of uica] {llvm-mca};
|
||||
\node[bencher] (bhive) [above=0.5em of llvm] {BHive (measure)};
|
||||
\node[rednode] (ppapi) [left=1cm of bhive] {perf (measure)};
|
||||
\node[rednode] (gus) [below=0.5em of ppapi] {Gus};
|
||||
%% \node[rednode] (uica) [below=of gdb] {uiCA};
|
||||
\node[rednode] (lifting) [below right=1em and 0.2cm of gdb] {
|
||||
Prediction lifting};
|
||||
\node[
|
||||
draw=black,
|
||||
very thick,
|
||||
dotted,
|
||||
fit=(ppapi) (gus) (bhive) (llvm) (uica) (iaca) (ithemal)
|
||||
] (comps) {};
|
||||
\node (throughput_label) [above=0.2em of comps,align=center] {
|
||||
\footnotesize Throughput predictions \\\footnotesize \& measures
|
||||
\figref{ssec:throughput_pred_meas}};
|
||||
\node[draw=black,
|
||||
very thick,
|
||||
dotted,
|
||||
%% label={below:\footnotesize Variations},
|
||||
label={[above,xshift=1cm]\footnotesize Variations},
|
||||
fit=(pocc) (kernel) (gcc)
|
||||
] (vars) {};
|
||||
\node[resultnode] (bench2) [right=of lifting] {Evaluation metrics \\ for
|
||||
code analyzers};
|
||||
|
||||
% Key
|
||||
\node[] (keyblue1) [below left=0.7cm and 0cm of vars] {};
|
||||
\node[hiddennode] (keyblue2) [right=0.5cm of keyblue1] {Generating microbenchmarks};
|
||||
\node[] (keyred1) [below=.5em of keyblue1] {};
|
||||
\node[hiddennode] (keyred2) [right=0.5cm of keyred1] {Benchmarking harness};
|
||||
\node[] (keyresult1) [below=.5em of keyred1] {};
|
||||
\node[hiddennode] (keyresult2) [right=0.5cm of keyresult1]
|
||||
{Results analysis};
|
||||
|
||||
%Lines
|
||||
\draw[-, very thick, harnarrow] (keyred1.east) -- (keyred2.west);
|
||||
\draw[-, very thick, genarrow] (keyblue1.east) -- (keyblue2.west);
|
||||
\draw[-, very thick] (keyresult1.east) -- (keyresult2.west);
|
||||
\draw[->, very thick, genarrow] (bench.south) -- (pocc.north);
|
||||
\draw[->, very thick, genarrow] (pocc.south) -- (kernel.north);
|
||||
\draw[->, very thick, genarrow] (kernel.south) -- (gcc.north);
|
||||
\draw[->, very thick, genarrow] (gcc.east) -- (gdb.west);
|
||||
\draw[->, very thick, genarrow] (gcc.east) -- (ppapi.west);
|
||||
\draw[->, very thick, genarrow] (gcc.east) -- (gus.west);
|
||||
\draw[->, very thick, harnarrow] (gdb.east) -- (uica.west);
|
||||
\draw[->, very thick, harnarrow] (gdb.east) -- (iaca.west);
|
||||
\draw[->, very thick, harnarrow] (gdb.east) -- (ithemal.west);
|
||||
\draw[->, very thick, harnarrow] (gdb.east) -- (bhive.west);
|
||||
\draw[->, very thick, harnarrow] (gdb.east) -- (llvm.west);
|
||||
\draw[->, very thick, harnarrow] (comps.south-|lifting) -- (lifting.north);
|
||||
\draw[->, very thick] (lifting.east) -- (bench2.west);
|
||||
\end{tikzpicture}
|
|
@ -69,7 +69,7 @@
|
|||
|
||||
\newcommand{\coeq}{CO$_{2}$eq}
|
||||
|
||||
\newcommand{\figref}[1]{[§\ref{#1}]}
|
||||
\newcommand{\figref}[1]{}
|
||||
|
||||
\newcommand{\reg}[1]{\texttt{\%#1}}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{stmaryrd}
|
||||
\usepackage{amsthm}
|
||||
\usepackage{xfrac}
|
||||
\usepackage{csquotes}
|
||||
|
@ -17,6 +18,7 @@
|
|||
\usepackage{appendixnumberbeamer}
|
||||
\usepackage[bottom]{footmisc} % footnotes are below floats
|
||||
\usepackage[final]{microtype}
|
||||
\usepackage{tikz} % Alas.
|
||||
|
||||
% Local sty files
|
||||
\usepackage{include/my_listings}
|
||||
|
@ -25,6 +27,10 @@
|
|||
|
||||
\emergencystretch=1em
|
||||
|
||||
% Tikz
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{fit}
|
||||
|
||||
% Graphics location
|
||||
\def\basegraphicspath{assets/imgs/}
|
||||
\newcommand{\resetgraphicspath}
|
||||
|
|
Loading…
Add table
Reference in a new issue