Init staticdeps; horizontal example table

This commit is contained in:
Théophile Bastian 2024-11-27 10:18:48 +01:00
parent ce22891957
commit 1efc2ab81b
2 changed files with 82 additions and 1 deletions

View file

@ -177,7 +177,7 @@ for(c3)
\footnotesize
\begin{tabular}{l r r r r r}
\toprule
\textbf{Bencher} & Dataset &
\textbf{Bencher} & \textbf{Dataset} &
\textbf{MAPE} & \textbf{Median} & \textbf{$K_\tau$} \\
& & (\%) & (\%) & \\
\midrule

View file

@ -1 +1,82 @@
\section{\staticdeps: static extraction of memory-carried dependencies}
\begin{frame}
\todo{}
\begin{itemize}
\item Dependency through registers: easy
\item Loop-carried: still fine
\item Through memory: indirections, arithmetics, …
\item Loop-carried: ROB is finite and small-ish
\item Requires comparison of arbitrary formal expressions
\item Use randomness as a kind of hash table instead
\end{itemize}
\end{frame}
\begin{frame}{The \staticdeps{} algorithm}
\begin{itemize}
\item \alert{Unroll} kernel until $\card{\kerK} \geq \card{\text{ROB}} +
\card{\kerK_0}$
\item \alert{Simulate} execution
\item Unknown value (reg./mem.)? \alert{Sample} uniformly in $0\ldots2^{64}-1$
(\alert{``fresh''})
\item \alert{Compute arithmetics} normally (overflow is fine)
\item Float or unknown operands $\leadsto \alert{\bot}$
\item Upon write, remember from which instruction
\item Upon read, if writer known, \alert{generate dependency}
\end{itemize}
\end{frame}
\begin{frame}[fragile]{An example: memoized Fibonacci sequence}
\begin{minipage}[t]{0.46\textwidth}
\begin{lstlisting}[language=C]
int fibo(int* F, int n) {
for(int i=2; i <= n; ++i) {
F[i] = F[i-1] + F[i-2];
}
return F[n];
}
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{0.46\textwidth}
\begin{lstlisting}[language={[x86masm]Assembler}]
0: mov (%rax),%edx
1: add 0x4(%rax),%edx
2: mov %edx,0x8(%rax)
3: add $0x4,%rax
4: cmp %rcx,%rax
5: jne 0
\end{lstlisting}
\end{minipage}
\end{frame}
\begin{frame}
\newcommand{\unk}{{\color{gray}?}}
\newcommand{\h}{\cellcolor[HTML]{D0ECFF}}
\newcommand{\w}{\cellcolor[HTML]{d6bf86}}
\centering
\footnotesize
\begin{tabular}{r c c c c c c c c c c c c c c}
\toprule
\textbf{Before}
& [0,0] & [0,1] & [0,2] & [0,3] & [0,4] & [0,5]
& & [1,1] & [1,2] & [1,3]
& & [2,1] & [2,2] & [2,3] \\
\midrule
\textbf{Regs} & & & & & & & & & &\\
\reg{rax} & \unk & 100 & 100 & 100 & 104 & 104 && 104 & 104 & 104 && 108 & 108 & 108 \\
\reg{edx} & \unk & 200 & 376 & 376 & 376 & 376 && 176 & 552 & 552 && 376 & 928 & 928 \\
\reg{rcx} & \unk & \unk & \unk& \unk& \unk& 42 && 42 & 42 & 42 && 42 & 42 & 42 \\
\midrule
\textbf{Mem} & & & & & & & & & &\\
\texttt{100} & \unk & 200\h& 200 & 200 & 200 & 200 && 200 & 200 & 200 && 200 & 200 & 200 \\
\texttt{104} & \unk & \unk & 176\h& 176 & 176 & 176 && 176\h& 176 & 176 && 176 & 176 & 176 \\
\texttt{108} & \unk & \unk & \unk & 376\w& 376 & 376 && 376 & 376\h& 376 && 376\h& 376 & 376 \\
\texttt{112} & \unk & \unk & \unk & \unk & \unk& \unk&& \unk & \unk & 552\w&& 552 & 552\h& 552 \\
\texttt{116} & \unk & \unk & \unk & \unk & \unk& \unk&& \unk & \unk & \unk && \unk & \unk & 928\w\\
%\texttt{116} & \unk & \unk& \unk& \unk& \unk& \unk& & & \\
\bottomrule
\end{tabular}
\let\unk\unefined
\let\h\unefined
\let\w\unefined
\end{frame}