Compare commits
4 commits
c5eabf6997
...
2188c29b51
Author | SHA1 | Date | |
---|---|---|---|
2188c29b51 | |||
eb1bc1d602 | |||
2f68882783 | |||
63acbb7634 |
|
@ -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}
|
||||||
|
|
|
@ -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}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 |
|
@ -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 |
|
@ -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 |
176
slides/assets/imgs/20_foundations/sota_potato.svg
Normal 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 |
|
@ -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}
|
||||||
|
|