Compare commits

...

4 commits

8 changed files with 312 additions and 111 deletions

View file

@ -16,72 +16,68 @@
\begin{column}{0.62\textwidth} \begin{column}{0.62\textwidth}
\begin{tightitemize}{0pt} \begin{tightitemize}{0pt}
\begin{itemize} \begin{itemize}
\item \alert{Frontend:} \uops{} not issued fast enough; \item \alert{Frontend:} \uops{} not issued fast enough
issuing faster would speed up computation;
\bigskip \bigskip
\item \alert{Backend:} saturated execution units; adding \item \alert{Backend:} saturated execution units
more units would speed up computation;
\bigskip \bigskip
\item \alert{Dependencies:} computation is stalled waiting \item \alert{Dependencies:} computation is stalled waiting
for previous results; removing data dependencies would for previous results
speed up computation.
\end{itemize} \end{itemize}
\end{tightitemize} \end{tightitemize}
\end{column} \end{column}
\end{columns} \end{columns}
\end{frame} \end{frame}
\begin{frame}{Dependencies and the ROB} %\begin{frame}{Dependencies and the ROB}
\begin{columns} % \begin{columns}
\begin{column}{0.35\textwidth} % \begin{column}{0.35\textwidth}
\begin{center} % \begin{center}
\includegraphics[width=\textwidth]{cpu_frontend.svg} % \includegraphics[width=\textwidth]{cpu_frontend.svg}
\end{center} % \end{center}
\end{column} % \end{column}
\hfill % \hfill
\begin{column}{0.64\textwidth} % \begin{column}{0.64\textwidth}
\begin{tightitemize}{0pt} % \begin{tightitemize}{0pt}
\begin{itemize} % \begin{itemize}
\item Dependencies can stall execution % \item Dependencies can stall execution
\item Maybe instructions further down can be executed right now? % \item Maybe instructions further down can be executed right now?
\end{itemize} % \end{itemize}
\begin{center} % \begin{center}
\textbf{\alert{$\to$ Out-of-Order CPUs}} % \textbf{\alert{$\to$ Out-of-Order CPUs}}
\end{center} % \end{center}
\begin{itemize} % \begin{itemize}
\item ROB: circular buffer of \uops{} % \item ROB: circular buffer of \uops{}
\item First possible instruction is issued % \item First possible instruction is issued
\end{itemize} % \end{itemize}
\end{tightitemize} % \end{tightitemize}
\end{column} % \end{column}
\end{columns} % \end{columns}
\end{frame} %\end{frame}
\begin{frame}{How do we get insights from this complex system?} %\begin{frame}{How do we get insights from this complex system?}
\textbf{Hardware counters} % \textbf{Hardware counters}
\begin{itemize} % \begin{itemize}
\item Built-in hardware, counters gathered at runtime % \item Built-in hardware, counters gathered at runtime
\item Very accurate % \item Very accurate
\item Available data varies from model to model % \item Available data varies from model to model
\item May not even be available at all % \item May not even be available at all
\end{itemize} % \end{itemize}
%
% \textbf{Simulation?}
% \begin{itemize}
% \item A modern CPU is \alert{$\sim$\,100e9 transistors}: very complex
% models!
% \item Very expensive, even for manufacturers for design validation
% \item CPU design is industrial secret $\leadsto$ not available anyway
% \item \ldots{}\ie{} not feasible.
% \end{itemize}
%\end{frame}
\textbf{Simulation?} \begin{frame}{Code analyzers}
\begin{itemize} \begin{itemize}
\item A modern CPU is \alert{$\sim$\,100e9 transistors}: very complex \item That predict performance of a piece of assembly
models!
\item Very expensive, even for manufacturers for design validation
\item CPU design is industrial secret $\leadsto$ not available anyway
\item \ldots{}\ie{} not feasible.
\end{itemize}
\end{frame}
\begin{frame}{Enter code analyzers}
\begin{itemize}
\item Tools that predict performance of a piece of assembly code on a
given CPU
\item Features microarchitectural models \item Features microarchitectural models
\item Most often static analyzers \item Most often static analyzers
\item Predict at least the \emph{reverse-throughput} $\cyc{\kerK}$ of a \item Predict at least the \emph{reverse-throughput} $\cyc{\kerK}$ of a
@ -127,5 +123,6 @@
\begin{frame}{When I started my PhD\ldots} \begin{frame}{When I started my PhD\ldots}
\centering \centering
\includegraphics[height=0.9\textheight]{patate_placeholder.jpg} %\includegraphics[height=0.9\textheight]{patate_placeholder.jpg}
\includegraphics[height=0.9\textheight]{sota_potato.svg}
\end{frame} \end{frame}

View file

@ -138,6 +138,17 @@ Gus & 0.00 & 20.37 & 30.59 & 0.82 & 188.04 \\
\textbf{Crucial difference:} \textbf{Crucial difference:}
\end{center} \end{center}
\begin{minipage}[t]{0.47\textwidth}
\begin{center}
\textbf{\color{red}Bad}
\end{center}
\vspace{-1em}
\begin{lstlisting}[language={[ANSI]C}]
for(c3)
tmp[c1] += A[c1][c3] * x[c3];
\end{lstlisting}
\end{minipage}
\hfill\vrule\hfill
\begin{minipage}[t]{0.47\textwidth} \begin{minipage}[t]{0.47\textwidth}
\begin{center} \begin{center}
\textbf{\color[HTML]{008f0c}Good} \textbf{\color[HTML]{008f0c}Good}
@ -147,16 +158,6 @@ Gus & 0.00 & 20.37 & 30.59 & 0.82 & 188.04 \\
for(c3) for(c3)
A[c1][c3] += u1[c1] * v1[c3] A[c1][c3] += u1[c1] * v1[c3]
+ u2[c1] * v2[c3]; + u2[c1] * v2[c3];
\end{lstlisting}
\end{minipage}\hfill\vrule\hfill
\begin{minipage}[t]{0.47\textwidth}
\begin{center}
\textbf{\color{red}Bad}
\end{center}
\vspace{-1em}
\begin{lstlisting}[language={[ANSI]C}]
for(c3)
tmp[c1] += A[c1][c3] * x[c3];
\end{lstlisting} \end{lstlisting}
\end{minipage} \end{minipage}

View file

@ -70,6 +70,14 @@ add %rbx, (%rax)
\item Loop-carried: luckily, ROB is finite and small \item Loop-carried: luckily, ROB is finite and small
\end{itemize} \end{itemize}
\end{minipage} \end{minipage}
\pause{}
\bigskip
\begin{center}
\textbf{Hypothesis:} pointers from context \alert{do not
alias}.\\
Compilers prefer passing a single pointer.
\end{center}
\end{frame} \end{frame}
@ -142,35 +150,36 @@ int fibo(int* F, int n) {
\footnotesize \footnotesize
\begin{tabular}{c c c c c c c c c l} \begin{tabular}{c c c c c c c c c l}
\toprule \toprule
\textbf{Before} & \multicolumn{2}{c}{\textbf{Registers}} && \textbf{After} & \multicolumn{2}{c}{\textbf{Registers}} &&
\multicolumn{5}{c}{\textbf{Memory}} & \textbf{Dep}\\ \multicolumn{5}{c}{\textbf{Memory}} & \textbf{Dep}\\
\textbf{instr} & \reg{rax} & \reg{edx} \textbf{instr} & \reg{rax} & \reg{edx}
&& \texttt{100} & \texttt{104} & \texttt{108} & \texttt{112} & \texttt{116} & \\ && \texttt{100} & \texttt{104} & \texttt{108} & \texttt{112} & \texttt{116} & \\
\midrule \midrule
0,0 & \unk& \unk&& \unk & \unk & \unk & \unk & \unk & \\ Start & \unk& \unk&& \unk & \unk & \unk & \unk & \unk & \\
\pause{}
0,1 & 100 & 200 && 200\h& \unk & \unk & \unk & \unk & \\
\pause{}
0,2 & 100 & 376 && 200 & 176\h& \unk & \unk & \unk & \\
\pause{}
0,3 & 100 & 376 && 200 & 176 & 376\w& \unk & \unk & \\
\pause{}
0,4 & \alert{104} & 376 && 200 & 176 & 376 & \unk & \unk & \\
0,5 & 100 & 376 && 200 & 176 & 376 & \unk & \unk & \\
\midrule \midrule
\pause{} \pause{}
1,1 & 104 & \alert{176} && 200 & 176\h& 376 & \unk & \unk & \\ 0,0 & 100 & 200 && 200\h& \unk & \unk & \unk & \unk & \\
\pause{} \pause{}
1,2 & 104 & \alert{552} && 200 & 176 & 376\h& \unk & \unk & \dep{-1,3}\\ 0,1 & 100 & 376 && 200 & 176\h& \unk & \unk & \unk & \\
\pause{} \pause{}
1,3 & 104 & 552 && 200 & 176 & 376 & 552\w& \unk & \\ 0,2 & 100 & 376 && 200 & 176 & 376\w& \unk & \unk & \\
\pause{}
0,3 & \alert{104} & 376 && 200 & 176 & 376 & \unk & \unk & \\
0,4 & 100 & 376 && 200 & 176 & 376 & \unk & \unk & \\
\midrule \midrule
\pause{} \pause{}
2,1 & 108 & \alert{376} && 200 & 176 & 376\h& 552 & \unk & \dep{-2,3}\\ 1,0 & 104 & \alert{176} && 200 & 176\h& 376 & \unk & \unk & \\
\pause{} \pause{}
2,2 & 108 & \alert{928} && 200 & 176 & 376 & 552\h& \unk & \dep{-1,3}\\ 1,1 & 104 & \alert{552} && 200 & 176 & 376\h& \unk & \unk & \dep{-1,2}\\
\pause{} \pause{}
2,3 & 108 & 928 && 200 & 176 & 376 & 552 & 928\w &\\ 1,2 & 104 & 552 && 200 & 176 & 376 & 552\w& \unk & \\
\midrule
\pause{}
2,0 & 108 & \alert{376} && 200 & 176 & 376\h& 552 & \unk & \dep{-2,2}\\
\pause{}
2,1 & 108 & \alert{928} && 200 & 176 & 376 & 552\h& \unk & \dep{-1,2}\\
\pause{}
2,2 & 108 & 928 && 200 & 176 & 376 & 552 & 928\w &\\
\bottomrule{} \bottomrule{}
\end{tabular} \end{tabular}
\end{minipage}\hfill \end{minipage}\hfill

View file

@ -7,7 +7,7 @@
viewBox="0 0 260 220" viewBox="0 0 260 220"
version="1.1" version="1.1"
id="svg1" id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="cpu_big_picture.svg" sodipodi:docname="cpu_big_picture.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
@ -23,12 +23,12 @@
inkscape:pagecheckerboard="0" inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" inkscape:document-units="mm"
inkscape:zoom="0.92729075" inkscape:zoom="1.8545815"
inkscape:cx="426.51132" inkscape:cx="396.58543"
inkscape:cy="471.80456" inkscape:cy="226.19658"
inkscape:window-width="1916" inkscape:window-width="1916"
inkscape:window-height="1041" inkscape:window-height="1041"
inkscape:window-x="0" inkscape:window-x="1920"
inkscape:window-y="18" inkscape:window-y="18"
inkscape:window-maximized="1" inkscape:window-maximized="1"
inkscape:current-layer="layer1" /> inkscape:current-layer="layer1" />
@ -375,11 +375,10 @@
y="45.209263">Decoder</tspan></text> y="45.209263">Decoder</tspan></text>
</g> </g>
<g <g
id="g14" id="g1">
transform="translate(0,-3.1049999)">
<g <g
id="g7-0" id="g7-0"
transform="matrix(1.000053,0,0,0.66658008,49.997613,14.372066)"> transform="matrix(1.000053,0,0,0.66658008,39.808405,12.934493)">
<rect <rect
style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none" style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none"
id="rect3-6" id="rect3-6"
@ -392,13 +391,13 @@
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="81.988571" x="81.988571"
y="45.122448" y="42.017448"
id="text5-1"><tspan id="text5-1"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan5-5" id="tspan5-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="81.988571" x="81.988571"
y="45.122448">Renamer</tspan></text> y="42.017448">…</tspan></text>
</g> </g>
<path <path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)"
@ -853,7 +852,7 @@
sodipodi:role="line" sodipodi:role="line"
id="tspan38" id="tspan38"
x="193.66086" x="193.66086"
y="24.500828"></tspan></text> y="24.500828" /></text>
<g <g
id="g40" id="g40"
transform="matrix(1,0,0,0.99774496,0,0.02255035)"> transform="matrix(1,0,0,0.99774496,0,0.02255035)">

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -23,13 +23,13 @@
inkscape:pagecheckerboard="0" inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" inkscape:document-units="mm"
inkscape:zoom="0.92729075" inkscape:zoom="6.1940124"
inkscape:cx="514.94097" inkscape:cx="348.23953"
inkscape:cy="422.19768" inkscape:cy="148.61126"
inkscape:window-width="1916" inkscape:window-width="1916"
inkscape:window-height="1041" inkscape:window-height="1041"
inkscape:window-x="0" inkscape:window-x="1920"
inkscape:window-y="0" inkscape:window-y="18"
inkscape:window-maximized="1" inkscape:window-maximized="1"
inkscape:current-layer="layer1" /> inkscape:current-layer="layer1" />
<defs <defs
@ -375,11 +375,10 @@
y="45.209263">Decoder</tspan></text> y="45.209263">Decoder</tspan></text>
</g> </g>
<g <g
id="g14" id="g1">
transform="translate(0,-3.1049999)">
<g <g
id="g7-0" id="g7-0"
transform="matrix(1.000053,0,0,0.66658008,49.997613,14.372066)"> transform="matrix(1.000053,0,0,0.66658008,49.997613,11.267066)">
<rect <rect
style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none" style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none"
id="rect3-6" id="rect3-6"
@ -391,14 +390,14 @@
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="81.988571" x="92.17778"
y="45.122448" y="40.350021"
id="text5-1"><tspan id="text5-1"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan5-5" id="tspan5-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="81.988571" x="92.17778"
y="45.122448">Renamer</tspan></text> y="40.350021">…</tspan></text>
</g> </g>
<path <path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)"

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -237,11 +237,10 @@
y="45.209263">Decoder</tspan></text> y="45.209263">Decoder</tspan></text>
</g> </g>
<g <g
id="g14" id="g1">
transform="translate(0,-3.1049999)">
<g <g
id="g7-0" id="g7-0"
transform="matrix(1.000053,0,0,0.66658008,49.997613,14.372066)"> transform="matrix(1.000053,0,0,0.66658008,49.997613,11.267066)">
<rect <rect
style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none" style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none"
id="rect3-6" id="rect3-6"
@ -253,14 +252,14 @@
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="81.988571" x="92.17778"
y="45.122448" y="40.350021"
id="text5-1"><tspan id="text5-1"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan5-5" id="tspan5-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="81.988571" x="92.17778"
y="45.122448">Renamer</tspan></text> y="40.350021">…</tspan></text>
</g> </g>
<path <path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)"

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="132.99132mm"
height="89.924919mm"
viewBox="0 0 132.99132 89.924919"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="sota_potato.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="2.1039601"
inkscape:cx="239.78591"
inkscape:cy="116.20943"
inkscape:window-width="1916"
inkscape:window-height="1041"
inkscape:window-x="1920"
inkscape:window-y="18"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<marker
style="overflow:visible"
id="ArrowWide"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path33" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-14.595894,-4.07008)">
<ellipse
style="fill:#aa1818;fill-opacity:0;stroke-width:0.491355;stroke-linecap:round"
id="path1"
cx="64.153732"
cy="37.484089"
rx="39.882759"
ry="20.125113" />
<path
id="path10"
style="fill:#9ee7f9;fill-opacity:1;stroke:#000000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 53.346098,7.8098592 A 65.938454,33.534351 0 0 0 15.15308,38.161495 65.938454,33.534351 0 0 0 27.368872,57.491064 c 1.142981,-1.953466 3.17229,-3.691235 5.566069,-3.47524 3.485295,-0.221173 6.903093,0.72707 10.372493,0.802535 2.438142,-0.05967 4.637228,-1.216419 6.856946,-2.081526 1.499609,-0.486997 3.3566,0.552699 3.412195,2.204516 -0.219069,1.108341 0.502193,2.451517 1.756482,2.357479 1.287109,0.06433 2.136931,-0.973916 3.05201,-1.67535 C 58.731352,55.41667 59.32924,55.057964 59.704883,54.90776 63.890171,41.33095 64.165684,27.615 53.398291,8.0925293 Z" />
<path
id="path4"
style="fill:#9ee7f9;fill-opacity:0;stroke:#000000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 59.704883,54.90776 c -0.375643,0.150204 -0.973531,0.50891 -1.319816,0.715718 -0.915079,0.701434 -1.764901,1.73968 -3.05201,1.67535 -1.254289,0.09404 -1.975551,-1.249138 -1.756482,-2.357479 -0.05559,-1.651817 -1.912586,-2.691513 -3.412195,-2.204516 -2.219718,0.865107 -4.418804,2.021856 -6.856946,2.081526 -3.4694,-0.07547 -6.887198,-1.023708 -10.372493,-0.802535 -2.393779,-0.215995 -4.423088,1.521774 -5.566069,3.47524 a 65.938454,33.534351 0 0 0 26.929106,11.261329 l 0.181901,-0.102837 c 1.999992,-4.705185 3.829759,-9.215709 5.225004,-13.741796 z" />
<path
id="path5"
style="fill:#fff5e3;fill-opacity:0;stroke:#000000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 109.09419,7.8098592 a 65.938454,33.534351 0 0 1 38.19302,30.3516358 65.938454,33.534351 0 0 1 -39.1449,30.590898 l -0.1819,-0.102837 C 99.961077,49.830305 94.685076,34.123213 109.042,8.0925293 Z" />
<path
id="ellipse5"
style="fill:#f3b0e8;fill-opacity:0;stroke:#000000;stroke-width:0.6;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
d="m 100.05487,37.972876 c -0.813202,0.887965 -0.237087,2.67278 -0.917769,3.487126 -0.518895,0.934182 -2.328058,1.697259 -2.808614,0.342098 -0.345854,-1.3538 0.906455,-2.921999 -0.397392,-4.086056 -1.010664,-1.204477 -3.011778,-0.844668 -3.765144,0.463538 -1.085338,2.152624 -3.669093,3.131002 -5.969145,2.722314 -2.830996,-0.251529 -4.935667,-2.927372 -7.867737,-2.63033 -2.50845,0.570507 -5.06814,1.352554 -7.67085,0.971 -1.784665,0.0018 -3.282596,-0.974508 -4.294828,-2.411739 -0.633136,-1.003587 -2.731669,-1.416073 -4.035412,-0.76016 0.583963,11.591926 -3.161265,21.552626 -7.8481,32.578889 l -0.181901,0.102837 c -9.15e-4,0.0016 -0.0022,0.003 -0.0031,0.0046 a 65.938454,33.534351 0 0 0 26.796814,2.938839 65.938454,33.534351 0 0 0 26.971478,-2.988448 l -0.10283,-0.05788 C 103.53178,58.23093 99.94488,48.763598 100.05487,37.972876 Z" />
<path
id="path12"
style="fill:#f3b0e8;fill-opacity:1;stroke:#000000;stroke-width:0.6;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
d="M 81.091691,4.6271077 A 65.938454,33.534351 0 0 0 53.314058,7.7726522 c 0.0099,0.012577 0.02233,0.024583 0.03204,0.037207 l 0.05219,0.2826701 c 5.945123,10.7791647 8.516964,19.7853987 8.929688,27.9781377 1.303743,-0.655913 3.402276,-0.243427 4.035412,0.76016 1.012232,1.437231 2.510163,2.413572 4.294828,2.411739 2.60271,0.381554 5.1624,-0.400493 7.67085,-0.971 2.93207,-0.297042 5.036741,2.378801 7.867737,2.63033 2.300052,0.408688 4.883807,-0.56969 5.969145,-2.722314 0.753366,-1.308206 2.75448,-1.668015 3.765144,-0.463538 1.303847,1.164057 0.05154,2.732256 0.397392,4.086056 0.480556,1.355161 2.289719,0.592084 2.808614,-0.342098 0.680682,-0.814346 0.104567,-2.599161 0.917772,-3.487126 0.0887,-8.70059 2.57839,-18.260727 8.98705,-29.8803467 l 0.0522,-0.2826701 c 10e-4,-0.00189 0.003,-0.0038 0.005,-0.00568 A 65.938454,33.534351 0 0 0 81.091691,4.6271077 Z" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:7.05556px;line-height:1.02;font-family:Sans;-inkscape-font-specification:'Sans, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="25.09129"
y="26.222841"
id="text7"><tspan
sodipodi:role="line"
id="tspan7"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="25.09129"
y="26.222841">Backend</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;line-height:1.02;font-family:Sans;-inkscape-font-specification:'Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="104.57431"
y="26.222841"
id="text8"><tspan
sodipodi:role="line"
id="tspan8"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="104.57431"
y="26.222841">Frontend</tspan></text>
<text
xml:space="preserve"
style="font-weight:bold;font-size:7.05556px;line-height:1.02;font-family:Sans;-inkscape-font-specification:'Sans, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="56.750874"
y="13.143539"
id="text9"><tspan
sodipodi:role="line"
id="tspan9"
style="stroke-width:0.264583"
x="56.750874"
y="13.143539">Dependencies</tspan></text>
<ellipse
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.11441;stroke-linecap:round;stroke-opacity:1"
id="path2"
cx="81.091553"
cy="38.161636"
rx="65.938454"
ry="33.534351" />
<path
style="fill:none;stroke:#000000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#ArrowWide)"
d="m 23.60119,48.757466 c -5.876392,6.451762 -4.309063,17.079611 1.847523,22.754678 l 0.199995,0.329837 0.05795,0.09558"
id="path32" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:7.05556px;line-height:1.02;font-family:Sans;-inkscape-font-specification:'Sans, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="18.762402"
y="76.951149"
id="text33"><tspan
sodipodi:role="line"
id="tspan33"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;font-family:Sans;-inkscape-font-specification:'Sans, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="18.762402"
y="76.951149">Palmed</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#ArrowWide)"
d="m 88.760028,31.319791 c 10.060681,14.0606 11.827412,34.796064 1.1668,49.052508"
id="path34" />
<text
xml:space="preserve"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.02;font-family:Sans;-inkscape-font-specification:'Sans, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="60.672569"
y="79.93985"
id="text34"><tspan
sodipodi:role="line"
id="tspan34"
x="60.672569"
y="79.93985"></tspan></text>
<text
xml:space="preserve"
style="font-weight:bold;font-size:7.05556px;line-height:1.02;font-family:Sans;-inkscape-font-specification:'Sans, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="95.19651"
y="85.104996"
id="text35"><tspan
sodipodi:role="line"
id="tspan35"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;font-family:Sans;-inkscape-font-specification:'Sans, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="95.19651"
y="85.104996">Through registers</tspan><tspan
sodipodi:role="line"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;font-family:Sans;-inkscape-font-specification:'Sans, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="95.19651"
y="92.301666"
id="tspan36">(widespread)</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -43,6 +43,27 @@ CORSE team}}}
\importchapter{50_staticdeps} \importchapter{50_staticdeps}
\importchapter{60_a72combined} \importchapter{60_a72combined}
\begin{frame}{Conclusion}
\begin{itemize}
\item \alert{\cesasme{}}: a framework to faithfully compare code analyzers;
\begin{itemize}
\item used to compare SotA analyzers
\item reveals dependencies through memory as clear weakness
\end{itemize}
\item \alert{\staticdeps{}}: a static analyzer to extract dependencies,
incl.\@ through memory
\item A manual \alert{frontend model} for the Cortex A72 ARM processor
\begin{itemize}
\item parametric model for future works on the frontend
\item partially automated
\end{itemize}
\medskip
\item A loosely \alert{combined model} including those,
\alert{outperforming} (manual) \alert{SotA}.
\end{itemize}
\end{frame}
\begin{frame}[standout] \begin{frame}[standout]
\Large{}Questions? \Large{}Questions?
\end{frame} \end{frame}